diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore @@ -95,3 +95,9 @@ efl_libs.csv .vscode/ .uuid + +# Subprojects +subprojects/pcre-* +subprojects/zlib-* +subprojects/packagecache +subprojects/check* diff --git a/header_checks/meson.build b/header_checks/meson.build --- a/header_checks/meson.build +++ b/header_checks/meson.build @@ -211,21 +211,33 @@ config_h.set10('HAVE_XATTR', true) endif -regexp = [] -if sys_windows == true - regexp = cc.find_library('regex', - has_headers: ['regex.h', 'fnmatch.h'], - required: true) - if regexp.found() == false - error('regex can not be found') - endif + +# libraries + +# zlib +zlib = dependency('zlib', fallback : ['zlib', 'zlib_dep']) + +if sys_windows + # For pcre, since the wrap doesn't provide a dependency-object for the posix + # implementation (just the multiplatform one), we need to make some + # workarounds in order to use the posix-compliant part of the lib + pcre_project = subproject('pcre') + + pcre_lib = pcre_project.get_variable('pcre8') + pcre_posix_lib = pcre_project.get_variable('pcre_posix') + original_pcre = pcre_project.get_variable('pcre_dep') + + regexp = declare_dependency(link_with : [pcre_lib, pcre_posix_lib], dependencies : original_pcre) else - if cc.has_header_symbol('fnmatch.h', 'fnmatch') == false - error('fnmatch can not be found') - endif - if cc.has_header_symbol('regex.h', 'regcomp') == false - error('regcomp can not be found') - endif + regexp = declare_dependency() + + if not cc.has_header_symbol('regex.h', 'regcomp') + error('regcomp can not be found') + endif + + if not cc.has_header_symbol('fnmatch.h', 'fnmatch') + error('fnmatch can not be found') + endif endif config_h.set('VMAJ', version_major) diff --git a/meson.build b/meson.build --- a/meson.build +++ b/meson.build @@ -583,7 +583,8 @@ subdir(join_paths('data')) if get_option('build-tests') - check = dependency('check') + check = dependency('check', fallback : ['check', 'check_dep']) + subdir(join_paths('src', 'tests')) foreach test : test_dirs package_c_args = [ diff --git a/src/generic/evas/xcf/meson.build b/src/generic/evas/xcf/meson.build --- a/src/generic/evas/xcf/meson.build +++ b/src/generic/evas/xcf/meson.build @@ -4,5 +4,5 @@ 'pixelfuncs.c' ]) -generic_deps = [eina, dependency('zlib')] +generic_deps = [eina, zlib] generic_support = ['xcf.gz'] diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build --- a/src/lib/emile/meson.build +++ b/src/lib/emile/meson.build @@ -1,6 +1,6 @@ emile_deps = [] emile_pub_deps = [eina, efl] -emile_ext_deps = [jpeg, crypto, dependency('zlib'), lz4, rg_etc, m] +emile_ext_deps = [jpeg, crypto, zlib, lz4, rg_etc, m] emile_headers = [ 'Emile.h', diff --git a/subprojects/check.wrap b/subprojects/check.wrap new file mode 100644 --- /dev/null +++ b/subprojects/check.wrap @@ -0,0 +1,3 @@ +[wrap-git] +url = https://github.com/expertisesolutions/check +revision = windows-mutex-lock-meson diff --git a/subprojects/pcre.wrap b/subprojects/pcre.wrap new file mode 100644 --- /dev/null +++ b/subprojects/pcre.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = pcre-8.37 + +source_url = https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.bz2 +source_filename = pcre-8.37.tar.bz2 +source_hash = 51679ea8006ce31379fb0860e46dd86665d864b5020fc9cd19e71260eef4789d + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/pcre/8.37/1/get_zip +patch_filename = pcre-8.37-1-wrap.zip +patch_hash = c0e179b0e8bcf0ecfb17d7154cc666070e3bde698126c2b2fefa37b6120328bf diff --git a/subprojects/zlib.wrap b/subprojects/zlib.wrap new file mode 100644 --- /dev/null +++ b/subprojects/zlib.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = zlib-1.2.11 + +source_url = http://zlib.net/fossils/zlib-1.2.11.tar.gz +source_filename = zlib-1.2.11.tar.gz +source_hash = c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 + +patch_url = https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/4/get_zip +patch_filename = zlib-1.2.11-4-wrap.zip +patch_hash = f733976fbfc59e0bcde01aa9469a24eeb16faf0a4280b17e9eaa60a301d75657