meson.build 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 = []
  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/pltf.c',
  49. 'src/DynArray.c',
  50. 'src/DynString.c',
  51. 'src/log.c',
  52. 'src/main.c',
  53. 'src/shader.c',
  54. c_args: cargs,
  55. dependencies: dependencies,
  56. link_args: link_args,
  57. include_directories: include_directories(include_dirs),
  58. )
  59. executable(
  60. 'tests',
  61. 'tests/main.c',
  62. 'src/DynString.c',
  63. 'src/log.c',
  64. c_args: cargs,
  65. include_directories: include_directories(test_include_dirs),
  66. link_args: test_link_args,
  67. dependencies: [
  68. cc.find_library(
  69. 'libcmocka',
  70. dirs: [ vendor_dir_abs + 'cmocka/' ]
  71. )
  72. ]
  73. )