meson.build 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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'
  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/glx/gl_funcs.c',
  25. 'src/pltf/glx/internal.c',
  26. 'src/pltf/glx/pltf.c',
  27. 'src/pltf/glx/util.c',
  28. ]
  29. dependencies += [
  30. dependency('x11'),
  31. dependency('glx'),
  32. dependency('libglvnd'),
  33. ]
  34. libcmocka = cc.find_library(
  35. 'libcmocka',
  36. dirs: [ vendor_dir_abs + 'cmocka-2.0.2/linux/' ]
  37. )
  38. elif host_machine.system() == 'windows'
  39. pltf_src = [
  40. 'src/pltf/win32/gl_funcs.c',
  41. 'src/pltf/win32/internal.c',
  42. 'src/pltf/win32/pltf.c',
  43. 'src/pltf/win32/win_proc.c',
  44. ]
  45. libcmocka = cc.find_library(
  46. 'libcmocka',
  47. dirs: [ vendor_dir_abs + 'cmocka-2.0.2/win/' ]
  48. )
  49. link_args += [
  50. '-lopengl32'
  51. ]
  52. test_link_args += [
  53. '-lwinpthread'
  54. ]
  55. cargs += [
  56. '-DUNICODE',
  57. '-D__UNICODE',
  58. '-municode'
  59. ]
  60. endif
  61. executable(
  62. 'scuffedcraft',
  63. 'src/DynArray.c',
  64. 'src/DynString.c',
  65. 'src/log.c',
  66. 'src/main.c',
  67. 'src/shader.c',
  68. pltf_src,
  69. c_args: cargs,
  70. dependencies: dependencies,
  71. link_args: link_args,
  72. include_directories: include_directories(include_dirs),
  73. )
  74. executable(
  75. 'tests',
  76. 'tests/main.c',
  77. 'src/DynString.c',
  78. 'src/log.c',
  79. c_args: cargs,
  80. include_directories: include_directories(test_include_dirs),
  81. link_args: test_link_args,
  82. dependencies: [
  83. libcmocka
  84. ]
  85. )