summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2021-10-14 19:10:03 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2021-10-23 09:48:11 -0400
commitc5c86f94178db822c45a0b08f3a136bf55c3199e (patch)
tree9b4259edae331aef1be2890e906661daf6ddf120
parentc6d1c9c07cfd03642d154973d036fccc59a2075c (diff)
downloadlcms2-c5c86f94178db822c45a0b08f3a136bf55c3199e.tar.gz
Add initial Meson build system
-rw-r--r--meson.build87
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)