meson.build 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. project('cglm', 'c',
  2. version : '0.8.3',
  3. license : 'mit',
  4. default_options : [
  5. 'c_std=c11',
  6. 'werror=true',
  7. 'warning_level=2',
  8. 'buildtype=release'
  9. ]
  10. )
  11. cc = meson.get_compiler('c')
  12. cglm_install = get_option('install')
  13. cglm_deps = cc.find_library('m', required : false)
  14. cglm_args = []
  15. build_args = []
  16. if get_option('default_library') == 'static'
  17. cglm_args = '-DCGLM_STATIC'
  18. endif
  19. if host_machine.system() == 'windows'
  20. build_args = '-DCGLM_EXPORTS'
  21. endif
  22. cglm_inc = include_directories('include')
  23. cglm_src = files(
  24. 'src/affine.c',
  25. 'src/affine2d.c',
  26. 'src/bezier.c',
  27. 'src/box.c',
  28. 'src/cam.c',
  29. 'src/curve.c',
  30. 'src/ease.c',
  31. 'src/euler.c',
  32. 'src/frustum.c',
  33. 'src/io.c',
  34. 'src/mat2.c',
  35. 'src/mat3.c',
  36. 'src/mat4.c',
  37. 'src/plane.c',
  38. 'src/project.c',
  39. 'src/quat.c',
  40. 'src/ray.c',
  41. 'src/sphere.c',
  42. 'src/vec2.c',
  43. 'src/vec3.c',
  44. 'src/vec4.c'
  45. )
  46. cglm_lib = library('cglm',
  47. cglm_src,
  48. install : cglm_install,
  49. dependencies : cglm_deps,
  50. c_args : [ build_args, cglm_args ]
  51. )
  52. cglm_dep = declare_dependency(
  53. link_with : cglm_lib,
  54. dependencies : cglm_deps,
  55. compile_args : cglm_args,
  56. include_directories : cglm_inc,
  57. version : meson.project_version()
  58. )
  59. if meson.version().version_compare('>= 0.54.0')
  60. meson.override_dependency('cglm', cglm_dep)
  61. endif
  62. if cglm_install
  63. install_subdir('include/cglm', install_dir : get_option('includedir'))
  64. pkg = import('pkgconfig')
  65. pkg.generate(
  66. name : 'cglm',
  67. libraries : cglm_lib,
  68. extra_cflags : cglm_args,
  69. version : meson.project_version(),
  70. url : 'https://github.com/recp/cglm',
  71. description : 'OpenGL Mathematics (glm) for C'
  72. )
  73. endif
  74. if get_option('build_tests') == true
  75. test_src = files(
  76. 'test/runner.c',
  77. 'test/src/test_euler.c',
  78. 'test/src/test_bezier.c',
  79. 'test/src/test_cam.c',
  80. 'test/src/test_struct.c',
  81. 'test/src/test_clamp.c',
  82. 'test/src/test_common.c',
  83. 'test/src/tests.c'
  84. )
  85. test_exe = executable('tests',
  86. test_src,
  87. dependencies : cglm_dep,
  88. c_args : '-DGLM_TESTS_NO_COLORFUL_OUTPUT'
  89. )
  90. test('cglm.tests', test_exe)
  91. endif