meson.build 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. project('Little-CMS', 'c',
  2. version: '2.13',
  3. meson_version: '>=0.48.0',
  4. )
  5. library_version = '2.0.13'
  6. cc = meson.get_compiler('c')
  7. lcms2_srcs = [
  8. 'src/cmsalpha.c',
  9. 'src/cmscgats.c',
  10. 'src/cmserr.c',
  11. 'src/cmsgmt.c',
  12. 'src/cmsintrp.c',
  13. 'src/cmsio1.c',
  14. 'src/cmsmd5.c',
  15. 'src/cmsnamed.c',
  16. 'src/cmspack.c',
  17. 'src/cmsplugin.c',
  18. 'src/cmssamp.c',
  19. 'src/cmstypes.c',
  20. 'src/cmswtpnt.c',
  21. 'src/cmscam02.c',
  22. 'src/cmscnvrt.c',
  23. 'src/cmsgamma.c',
  24. 'src/cmshalf.c',
  25. 'src/cmsio0.c',
  26. 'src/cmslut.c',
  27. 'src/cmsmtrx.c',
  28. 'src/cmsopt.c',
  29. 'src/cmspcs.c',
  30. 'src/cmsps2.c',
  31. 'src/cmssm.c',
  32. 'src/cmsvirt.c',
  33. 'src/cmsxform.c',
  34. ]
  35. install_headers([
  36. 'include/lcms2.h',
  37. 'include/lcms2_plugin.h'
  38. ])
  39. inc_dirs = include_directories('include')
  40. deps = [
  41. cc.find_library('m', required: false),
  42. dependency('threads'),
  43. ]
  44. cargs = ['-DHasTHREADS=1']
  45. # Check for threadsafe variants of gmtime
  46. if cc.has_function('gmtime_r', prefix: '#include <time.h>')
  47. cargs += '-DHAVE_GMTIME_R=1'
  48. elif cc.has_function('gmtime_s', prefix: '#include <time.h>')
  49. cargs += '-DHAVE_GMTIME_S=1'
  50. endif
  51. if cc.has_function_attribute('visibility:hidden')
  52. cargs +='-DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1'
  53. endif
  54. if host_machine.system() == 'windows'
  55. win = import('windows')
  56. lcms2_srcs += win.compile_resources('Projects/VC2019/lcms2.rc')
  57. cargs += '-DCMS_DLL_BUILD=1'
  58. endif
  59. liblcms2_lib = library('lcms2', lcms2_srcs,
  60. include_directories : inc_dirs,
  61. gnu_symbol_visibility: 'hidden',
  62. dependencies: deps,
  63. c_args: cargs,
  64. version: library_version,
  65. vs_module_defs: 'src/lcms2.def',
  66. install: true,
  67. )
  68. liblcms2_dep = declare_dependency(
  69. link_with : liblcms2_lib,
  70. include_directories : inc_dirs
  71. )
  72. pkg = import('pkgconfig')
  73. pkg.generate(liblcms2_lib)