meson.build 1.7 KB

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