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')

-- 


Reply via email to