bu5hm4n pushed a commit to branch feature/meson. http://git.enlightenment.org/core/efl.git/commit/?id=ec29de6bf50af3a24976873a2c4596315425b6da
commit ec29de6bf50af3a24976873a2c4596315425b6da Author: Marcel Hollerbach <mar...@osg.samsung.com> Date: Wed Dec 27 14:57:56 2017 +0000 meson: let there be emile --- meson.build | 15 ++++++++---- meson_options.txt | 6 +++++ src/examples/emile/meson.build | 7 ++++++ src/examples/meson.build | 1 + src/lib/emile/meson.build | 50 ++++++++++++++++++++++++++++++++++++++ src/static_libs/lz4/meson.build | 13 ++++++++++ src/static_libs/rg_etc/meson.build | 16 ++++++++++++ src/tests/emile/meson.build | 18 ++++++++++++++ src/tests/meson.build | 1 + 9 files changed, 122 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index d42980de8f..d9c719d95f 100644 --- a/meson.build +++ b/meson.build @@ -79,11 +79,12 @@ eolian_include_directories = [] subdir('header_checks') subprojects = [ -# name | mod | lib | bin | bench | -['eina' , true, true, true, true], -['eolian', false, true, true, false], -['eo' , false, true, false, true], -['efl' , false, true, false, false] +# name | mod | lib | bin | bench | name of static libs +['eina' , true, true, true, true, []], +['eolian', false, true, true, false, []], +['eo' , false, true, false, true, []], +['efl' , false, true, false, false, []], +['emile' , false, true, false, false, ['lz4', 'rg_etc']], ] @@ -96,6 +97,10 @@ foreach package : subprojects dir_package_include = join_paths(dir_include, package_version_name) + foreach static_lib : package[5] + subdir(join_paths('src', 'static_libs', static_lib)) + endforeach + if (package[1]) subdir(join_paths(local_module, package_name)) endif diff --git a/meson_options.txt b/meson_options.txt index f9985b7d64..88e3c9e208 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -26,3 +26,9 @@ option('build-tests', value : true, description : 'build examples' ) + +option('crypto', + type : 'combo', + choices : ['gnutls', 'openssl', 'none'], + value : 'openssl' +) diff --git a/src/examples/emile/meson.build b/src/examples/emile/meson.build new file mode 100644 index 0000000000..c628f08ccc --- /dev/null +++ b/src/examples/emile/meson.build @@ -0,0 +1,7 @@ +examples = [ + 'emile_base64' +] + +foreach example : examples + executable(example, example + '.c', dependencies: emile) +endforeach diff --git a/src/examples/meson.build b/src/examples/meson.build index 39eb335298..36219b40a2 100644 --- a/src/examples/meson.build +++ b/src/examples/meson.build @@ -1 +1,2 @@ subdir('eina') +subdir('emile') diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build new file mode 100644 index 0000000000..19430dfe26 --- /dev/null +++ b/src/lib/emile/meson.build @@ -0,0 +1,50 @@ +emile_headers = [ + 'Emile.h', + 'emile_cipher.h', + 'emile_compress.h', + 'emile_image.h', + 'emile_base64.h' +] + +emile_src = [ + 'emile_private.h', + 'emile_main.c', + 'emile_compress.c', + 'emile_image.c', + 'emile_base64.c', +] + +emile_dep = [] +emile_dep += cc.find_library('jpeg') +emile_dep += dependency('zlib') + +if (get_option('crypto') == 'gnutls') + emile_dep += dependency('gnutls') + emile_src += 'emile_cipher_gnutls.c' + config_h.set('HAVE_GNUTLS', '1') +elif (get_option('crypto') == 'openssl') + emile_dep += dependency('openssl') + emile_src += 'emile_cipher_openssl.c' + config_h.set('HAVE_OPENSSL', '1') +else + emile_src += 'emile_cipher.c' + config_h.set('HAVE_CIPHER', '1') + message('No cipher selected, testsuite will not complete') +endif + +emile_lib = library('emile', + emile_src, + include_directories: config_dir, + dependencies: [eina, lz4, rg_etc, m, efl, emile_dep], + install: true, +) + +emile = declare_dependency( + include_directories: include_directories('.'), + link_with: emile_lib, + dependencies: [eina, efl], +) + +install_headers(emile_headers, + install_dir: dir_package_include +) diff --git a/src/static_libs/lz4/meson.build b/src/static_libs/lz4/meson.build new file mode 100644 index 0000000000..cb93e65ab3 --- /dev/null +++ b/src/static_libs/lz4/meson.build @@ -0,0 +1,13 @@ +lz4_src = [ +'lz4.c', +'lz4hc.c' +] + +lz4_lib = static_library('lz4', lz4_src, + include_directories : config_dir, +) + +lz4 = declare_dependency( + include_directories: include_directories('.'), + link_with: lz4_lib +) diff --git a/src/static_libs/rg_etc/meson.build b/src/static_libs/rg_etc/meson.build new file mode 100644 index 0000000000..3dad342457 --- /dev/null +++ b/src/static_libs/rg_etc/meson.build @@ -0,0 +1,16 @@ +rg_etc_src = [ +'etc2_encoder.c', +'rg_etc1.c', +'rg_etc1.h', +'rg_etc2.c', +] + +rg_etc_lib = static_library('rg_etc', rg_etc_src, + dependencies : eina, + include_directories : config_dir, +) + +rg_etc = declare_dependency( + include_directories: include_directories('.'), + link_with: rg_etc_lib +) diff --git a/src/tests/emile/meson.build b/src/tests/emile/meson.build new file mode 100644 index 0000000000..37e5bfc44f --- /dev/null +++ b/src/tests/emile/meson.build @@ -0,0 +1,18 @@ +emile_suite_src = [ + 'emile_suite.c', + 'emile_suite.h', + 'emile_test_base.c', + 'emile_test_base64.c' +] + +emile_suite = executable('emile_suite', + emile_suite_src, + dependencies: [emile, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('emile-suite', emile_suite, + is_parallel: true, +) diff --git a/src/tests/meson.build b/src/tests/meson.build index fcc1ee5b4b..121f6b8688 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -4,3 +4,4 @@ subdir('eolian') subdir('eo') #disabled for now we need ecore first #subdir('efl') +subdir('emile') --