diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-10-14 19:10:03 -0400 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.com> | 2021-10-23 09:48:11 -0400 |
commit | c5c86f94178db822c45a0b08f3a136bf55c3199e (patch) | |
tree | 9b4259edae331aef1be2890e906661daf6ddf120 | |
parent | c6d1c9c07cfd03642d154973d036fccc59a2075c (diff) | |
download | lcms2-c5c86f94178db822c45a0b08f3a136bf55c3199e.tar.gz |
Add initial Meson build system
-rw-r--r-- | meson.build | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..5d9b45f --- /dev/null +++ b/meson.build @@ -0,0 +1,87 @@ +project('Little-CMS', 'c', + version: '2.12', + meson_version: '>=0.48.0', +) + +library_version = '2.0.12' + +cc = meson.get_compiler('c') + +lcms2_srcs = [ + 'src/cmsalpha.c', + 'src/cmscgats.c', + 'src/cmserr.c', + 'src/cmsgmt.c', + 'src/cmsintrp.c', + 'src/cmsio1.c', + 'src/cmsmd5.c', + 'src/cmsnamed.c', + 'src/cmspack.c', + 'src/cmsplugin.c', + 'src/cmssamp.c', + 'src/cmstypes.c', + 'src/cmswtpnt.c', + 'src/cmscam02.c', + 'src/cmscnvrt.c', + 'src/cmsgamma.c', + 'src/cmshalf.c', + 'src/cmsio0.c', + 'src/cmslut.c', + 'src/cmsmtrx.c', + 'src/cmsopt.c', + 'src/cmspcs.c', + 'src/cmsps2.c', + 'src/cmssm.c', + 'src/cmsvirt.c', + 'src/cmsxform.c', +] + +install_headers([ + 'include/lcms2.h', + 'include/lcms2_plugin.h' +]) + +inc_dirs = include_directories('include') + +deps = [ + cc.find_library('m', required: false), + dependency('threads'), +] + +cargs = ['-DHasTHREADS=1'] + +# Check for threadsafe variants of gmtime +if cc.has_function('gmtime_r', prefix: '#include <time.h>') + cargs += '-DHAVE_GMTIME_R=1' +elif cc.has_function('gmtime_s', prefix: '#include <time.h>') + cargs += '-DHAVE_GMTIME_S=1' +endif + +if cc.has_function_attribute('visibility:hidden') + cargs +='-DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1' +elif cc.get_id() == 'msvc' + cargs += '-DCMS_DLL_BUILD=1' +endif + +if host_machine.system() == 'windows' + win = import('windows') + lcms2_srcs += win.compile_resources('Projects/VC2019/lcms2.rc') +endif + +liblcms2_lib = library('lcms2', lcms2_srcs, + include_directories : inc_dirs, + gnu_symbol_visibility: 'hidden', + dependencies: deps, + c_args: cargs, + version: library_version, + vs_module_defs: 'src/lcms2.def', + install: true, +) + +liblcms2_dep = declare_dependency( + link_with : liblcms2_lib, + include_directories : inc_dirs +) + +pkg = import('pkgconfig') +pkg.generate(liblcms2_lib) |