diff options
author | L. E. Segovia <amy@amyspark.me> | 2022-12-03 11:02:26 -0300 |
---|---|---|
committer | L. E. Segovia <amy@amyspark.me> | 2022-12-06 17:37:38 +0000 |
commit | 7a7d1e592d7349bc96fa8beb68e136042b08e4aa (patch) | |
tree | 743a17a33b7ee11db412a2a5b55e95405cdae298 | |
parent | b2422b192d57385f7acbc3d9b0ca1a94dd89b706 (diff) | |
download | lcms2-7a7d1e592d7349bc96fa8beb68e136042b08e4aa.tar.gz |
meson: Refactor the Meson build files
-rw-r--r-- | include/meson.build | 8 | ||||
-rw-r--r-- | meson.build | 80 | ||||
-rw-r--r-- | src/meson.build | 48 |
3 files changed, 73 insertions, 63 deletions
diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 0000000..3d6fa1c --- /dev/null +++ b/include/meson.build @@ -0,0 +1,8 @@ +lcms2_headers = files( + 'lcms2.h', + 'lcms2_plugin.h', +) + +install_headers(lcms2_headers) + +inc_dirs = include_directories('.') diff --git a/meson.build b/meson.build index e963e47..03e9485 100644 --- a/meson.build +++ b/meson.build @@ -1,4 +1,6 @@ -project('Little-CMS', 'c', +project( + 'Little-CMS', + 'c', version: '2.14', meson_version: '>=0.48.0', ) @@ -7,48 +9,11 @@ library_version = '2.0.13' 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', -] +cargs = [] -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'] +if cc.has_function_attribute('visibility:hidden') + cargs += '-DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1' +endif # Check for threadsafe variants of gmtime if cc.has_function('gmtime_r', prefix: '#include <time.h>') @@ -57,30 +22,19 @@ 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' -endif +m_dep = cc.find_library('m', required: false) -if host_machine.system() == 'windows' - win = import('windows') - lcms2_srcs += win.compile_resources('Projects/VC2019/lcms2.rc') - cargs += '-DCMS_DLL_BUILD=1' -endif +threads_dep = dependency('threads') -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, -) +if cc.has_function('pthread_mutex_lock', dependencies: threads_dep) + cargs += '-DHasTHREADS=1' +else + cargs += '-DHasTHREADS=0' +endif +deps = [m_dep, threads_dep] -liblcms2_dep = declare_dependency( - link_with : liblcms2_lib, - include_directories : inc_dirs -) +subdir('include') +subdir('src') pkg = import('pkgconfig') pkg.generate(liblcms2_lib) diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..179c01b --- /dev/null +++ b/src/meson.build @@ -0,0 +1,48 @@ +lcms2_srcs = files( + 'cmsalpha.c', + 'cmscam02.c', + 'cmscgats.c', + 'cmscnvrt.c', + 'cmserr.c', + 'cmsgamma.c', + 'cmsgmt.c', + 'cmshalf.c', + 'cmsintrp.c', + 'cmsio0.c', + 'cmsio1.c', + 'cmslut.c', + 'cmsmd5.c', + 'cmsmtrx.c', + 'cmsnamed.c', + 'cmsopt.c', + 'cmspack.c', + 'cmspcs.c', + 'cmsplugin.c', + 'cmsps2.c', + 'cmssamp.c', + 'cmssm.c', + 'cmstypes.c', + 'cmsvirt.c', + 'cmswtpnt.c', + 'cmsxform.c', +) + +if host_machine.system() == 'windows' + cargs += '-DCMS_DLL_BUILD=1' +endif + +liblcms2_lib = library( + 'lcms2', + lcms2_srcs, + include_directories: inc_dirs, + gnu_symbol_visibility: 'hidden', + dependencies: deps, + c_args: cargs, + version: library_version, + install: true, +) + +liblcms2_dep = declare_dependency( + link_with: liblcms2_lib, + include_directories: [inc_dirs, include_directories('.')], +) |