meson.build 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. project('scuffedcraft', 'c')
  2. cc = meson.get_compiler('c')
  3. vendor_dir_abs = meson.current_source_dir() + '/vendor/'
  4. cargs = [
  5. '-std=c99',
  6. '-Og',
  7. '-g',
  8. '-DBOUNDS_CHECK',
  9. '-DSHADERS_PATH="../src/shaders/"',
  10. ]
  11. dependencies = [
  12. ]
  13. link_args = []
  14. test_link_args = [ '-static' ]
  15. include_dirs = [
  16. 'vendor/',
  17. 'src/'
  18. ]
  19. test_include_dirs = [
  20. 'src/',
  21. 'vendor/'
  22. ]
  23. if host_machine.system() == 'linux'
  24. dependencies += [
  25. dependency('libglvnd')
  26. ]
  27. elif host_machine.system() == 'windows'
  28. link_args += [
  29. '-lopengl32'
  30. ]
  31. test_link_args += [
  32. '-lwinpthread'
  33. ]
  34. cargs += [
  35. '-DUNICODE',
  36. '-D__UNICODE',
  37. '-municode'
  38. ]
  39. if meson.is_cross_build() and build_machine.system() == 'linux'
  40. link_args += [
  41. '-Lvendor/wine/',
  42. ]
  43. endif
  44. endif
  45. executable(
  46. 'scuffedcraft',
  47. 'src/pltf/win32/gl_funcs.c',
  48. 'src/pltf/win32/internal.c',
  49. 'src/pltf/win32/pltf.c',
  50. 'src/pltf/win32/win_proc.c',
  51. 'src/DynArray.c',
  52. 'src/DynString.c',
  53. 'src/log.c',
  54. 'src/main.c',
  55. 'src/shader.c',
  56. c_args: cargs,
  57. dependencies: dependencies,
  58. link_args: link_args,
  59. include_directories: include_directories(include_dirs),
  60. )
  61. executable(
  62. 'tests',
  63. 'tests/main.c',
  64. 'src/DynString.c',
  65. 'src/log.c',
  66. c_args: cargs,
  67. include_directories: include_directories(test_include_dirs),
  68. link_args: test_link_args,
  69. dependencies: [
  70. cc.find_library(
  71. 'libcmocka',
  72. dirs: [ vendor_dir_abs + 'cmocka/' ]
  73. )
  74. ]
  75. )