meson.build 1.6 KB

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