aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-08-18 17:05:27 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-10-18 16:01:07 +0200
commit5aaf2cbb5defd64a2048fe90e80004d435bbca1a (patch)
tree40085c97f5b1493c00cb1898dbb0607f803bcaf9
parentRemove engine check script for direct3d. (diff)
downloadefl-5aaf2cbb5defd64a2048fe90e80004d435bbca1a.tar.gz
meson: add cxx bindings
this commit adds cxx bindings to meson. Differential Revision: https://phab.enlightenment.org/D7169
-rw-r--r--meson.build36
-rw-r--r--meson_options.txt12
-rw-r--r--src/bin/eolian_cxx/meson.build6
-rw-r--r--src/bindings/cxx/ecore_cxx/meson.build4
-rw-r--r--src/bindings/cxx/eet_cxx/meson.build6
-rw-r--r--src/bindings/cxx/efl_cxx/meson.build2
-rw-r--r--src/bindings/cxx/eina_cxx/meson.build54
-rw-r--r--src/bindings/cxx/eldbus_cxx/meson.build14
-rw-r--r--src/bindings/cxx/eo_cxx/meson.build11
-rw-r--r--src/bindings/cxx/eolian_cxx/meson.build72
-rw-r--r--src/bindings/cxx/meson.build101
-rw-r--r--src/lib/efl/interfaces/meson.build10
-rw-r--r--src/lib/efl/meson.build6
-rw-r--r--src/lib/evas/canvas/meson.build2
-rw-r--r--src/lib/evas/gesture/meson.build2
-rw-r--r--src/lib/evas/meson.build2
-rw-r--r--src/lib/evas_goal/meson.build4
-rw-r--r--src/tests/ecore_cxx/meson.build29
-rw-r--r--src/tests/edje_cxx/meson.build9
-rw-r--r--src/tests/eet_cxx/meson.build21
-rw-r--r--src/tests/eina_cxx/meson.build57
-rw-r--r--src/tests/eldbus_cxx/meson.build21
-rw-r--r--src/tests/elementary_cxx/meson.build9
-rw-r--r--src/tests/eo_cxx/meson.build20
-rw-r--r--src/tests/eolian_cxx/meson.build78
-rw-r--r--src/tests/evas_cxx/meson.build9
26 files changed, 576 insertions, 21 deletions
diff --git a/meson.build b/meson.build
index 0a8870eea6..0c2e997573 100644
--- a/meson.build
+++ b/meson.build
@@ -58,6 +58,7 @@ dir_lib = join_paths(dir_prefix, get_option('libdir'))
#local paths
local_lib = join_paths('src', 'lib')
+local_bindings = join_paths('src', 'bindings')
local_bin = join_paths('src', 'bin')
local_module = join_paths('src', 'modules')
local_tests = join_paths('src', 'tests')
@@ -65,18 +66,15 @@ local_benchmark = join_paths('src', 'benchmarks')
local_examples = join_paths('src', 'examples')
local_scripts = join_paths('src', 'scripts')
-add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
-add_global_arguments('-D_GNU_SOURCE=1', language: 'c')
-add_global_arguments('-fPIC', language: 'c')
-
-add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'c')
-add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'c')
-add_global_arguments('-DNEED_RUN_IN_TREE=1', language: 'c')
-add_global_arguments('-DEFL_BUILD=1', language: 'c')
-add_global_arguments('-DEFL_BUILD=1', language: 'objc')
-add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'objc')
-add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'objc')
-add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: 'c')
+foreach lang : ['c', 'objc', 'cpp']
+ add_global_arguments('-DHAVE_CONFIG_H=1', language: lang)
+ add_global_arguments('-D_GNU_SOURCE=1', language: lang)
+ add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: lang)
+ add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: lang)
+ add_global_arguments('-DNEED_RUN_IN_TREE=1', language: lang)
+ add_global_arguments('-DEFL_BUILD=1', language: lang)
+ add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: lang)
+endforeach
config_h = configuration_data()
config_h.set_quoted('MODULE_ARCH', version_name)
@@ -97,7 +95,6 @@ config_h.set_quoted('PACKAGE_SYSCONF_DIR', dir_sysconf)
config_h.set_quoted('BINDIR', dir_bin)
config_h.set_quoted('DATADIR', dir_data)
config_h.set10('EFL_HAVE_THREADS', true)
-config_h.set('NEED_RUN_IN_TREE', '1')
config_dir = [include_directories('.')]
eolian_include_directories = []
@@ -231,6 +228,7 @@ foreach package : subprojects
#ensure that we really dont copy the eo file targets from a previous library
pub_eo_file_target = []
priv_eo_file_target = []
+ pub_eo_files = []
foreach static_lib : package[9]
if get_variable(static_lib, tmp_empty) == tmp_empty
@@ -239,7 +237,8 @@ foreach package : subprojects
endforeach
if (package[3])
- subdir(join_paths(local_lib, package_name))
+ subdir(join_paths(local_lib, package_name))
+ set_variable(package_name + '_eo_files', pub_eo_files)
endif
if (package[2])
subdir(join_paths(local_module, package_name))
@@ -294,7 +293,14 @@ subdir(join_paths('src', 'bin', 'efl'))
subdir(join_paths('src', 'generic', 'evas'))
subdir(join_paths('src', 'generic', 'emotion'))
-subdir(join_paths('src', 'bindings', 'luajit'))
+bindings = ['luajit', 'cxx']
+
+foreach binding : bindings
+ if get_option(binding)
+ subdir(join_paths('src', 'bindings', binding))
+ endif
+endforeach
+
subdir(join_paths('src', 'edje_external'))
diff --git a/meson_options.txt b/meson_options.txt
index 4460c703aa..5ad5d6c8a6 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -309,3 +309,15 @@ option('nls',
value: true,
description: 'enable localization: (default=true)'
)
+
+option('luajit',
+ type: 'boolean',
+ value: true,
+ description: 'Flag for handling lua bindings'
+)
+
+option('cxx',
+ type: 'boolean',
+ value: true,
+ description: 'Flag for handling cxx bindings'
+)
diff --git a/src/bin/eolian_cxx/meson.build b/src/bin/eolian_cxx/meson.build
new file mode 100644
index 0000000000..540a067cdc
--- /dev/null
+++ b/src/bin/eolian_cxx/meson.build
@@ -0,0 +1,6 @@
+eolian_cxx_gen = executable('eolian_cxx',
+ 'eolian_cxx.cc',
+ dependencies: [eolian_cxx, eina_cxx, eolian],
+ install: true,
+ cpp_args : package_c_args,
+ )
diff --git a/src/bindings/cxx/ecore_cxx/meson.build b/src/bindings/cxx/ecore_cxx/meson.build
new file mode 100644
index 0000000000..06e648d57b
--- /dev/null
+++ b/src/bindings/cxx/ecore_cxx/meson.build
@@ -0,0 +1,4 @@
+cxx_header_src += files(
+ 'Ecore.hh',
+ 'Ecore_Manual.hh',
+)
diff --git a/src/bindings/cxx/eet_cxx/meson.build b/src/bindings/cxx/eet_cxx/meson.build
new file mode 100644
index 0000000000..ddc9724ff5
--- /dev/null
+++ b/src/bindings/cxx/eet_cxx/meson.build
@@ -0,0 +1,6 @@
+cxx_header_src += files(
+ 'eet_type.hh',
+ 'eet_register.hh',
+ 'eet_composite.hh',
+ 'Eet.hh'
+)
diff --git a/src/bindings/cxx/efl_cxx/meson.build b/src/bindings/cxx/efl_cxx/meson.build
new file mode 100644
index 0000000000..6ad93df23c
--- /dev/null
+++ b/src/bindings/cxx/efl_cxx/meson.build
@@ -0,0 +1,2 @@
+cxx_header_src += join_paths(file_location, 'Efl.hh')
+cxx_header_src += join_paths(file_location, 'cxx', 'efl_part_impl.hh')
diff --git a/src/bindings/cxx/eina_cxx/meson.build b/src/bindings/cxx/eina_cxx/meson.build
new file mode 100644
index 0000000000..fbe6f55ede
--- /dev/null
+++ b/src/bindings/cxx/eina_cxx/meson.build
@@ -0,0 +1,54 @@
+eina_cxx_deps = [eina, eo]
+eina_cxx_pub_deps = []
+
+eina_cxx_header_src = files(
+ 'eina_accessor.hh',
+ 'eina_aligned_union.hh',
+ 'eina_array.hh',
+ 'eina_clone_allocators.hh',
+ 'eina_deleter.hh',
+ 'eina_error.hh',
+ 'eina_future.hh',
+ 'eina_eo_concrete_fwd.hh',
+ 'eina_fold.hh',
+ 'eina_function.hh',
+ 'eina_inarray.hh',
+ 'eina_inlist.hh',
+ 'eina_integer_sequence.hh',
+ 'eina_iterator.hh',
+ 'eina_lists_auxiliary.hh',
+ 'eina_list.hh',
+ 'eina_log.hh',
+ 'eina_logical.hh',
+ 'eina_optional.hh',
+ 'eina_pp.hh',
+ 'eina_ptrarray.hh',
+ 'eina_ptrlist.hh',
+ 'eina_range_types.hh',
+ 'eina_ref.hh',
+ 'eina_stringshare.hh',
+ 'eina_strbuf.hh',
+ 'eina_string_view.hh',
+ 'eina_thread.hh',
+ 'eina_throw.hh',
+ 'eina_tuple.hh',
+ 'eina_tuple_c.hh',
+ 'eina_tuple_unwrap.hh',
+ 'eina_type_traits.hh',
+ 'eina_value.hh',
+ 'eina_workarounds.hh',
+ 'eina_copy_traits.hh',
+ 'eina_variant.hh',
+ 'Eina.hh'
+)
+
+eina_cxx_lib = disabler()
+
+eina_cxx = declare_dependency(
+ include_directories: [include_directories('.')],
+ dependencies: eina_cxx_deps
+)
+
+install_headers(eina_cxx_header_src,
+ subdir: dir_package_include
+)
diff --git a/src/bindings/cxx/eldbus_cxx/meson.build b/src/bindings/cxx/eldbus_cxx/meson.build
new file mode 100644
index 0000000000..dbd038d11b
--- /dev/null
+++ b/src/bindings/cxx/eldbus_cxx/meson.build
@@ -0,0 +1,14 @@
+cxx_header_src += files(
+ 'eldbus_basic.hh',
+ 'eldbus_error.hh',
+ 'eldbus_freedesktop.hh',
+ 'Eldbus.hh',
+ 'eldbus_integer_sequence.hh',
+ 'eldbus_message_arguments.hh',
+ 'eldbus_message.hh',
+ 'Eldbus_Model.hh',
+ 'eldbus_proxy_call.hh',
+ 'eldbus_raw_tuple.hh',
+ 'eldbus_service.hh',
+ 'eldbus_signature_traits.hh',
+)
diff --git a/src/bindings/cxx/eo_cxx/meson.build b/src/bindings/cxx/eo_cxx/meson.build
new file mode 100644
index 0000000000..3b1bc25ec6
--- /dev/null
+++ b/src/bindings/cxx/eo_cxx/meson.build
@@ -0,0 +1,11 @@
+cxx_header_src = files(
+ 'eo_concrete.hh',
+ 'eo_cxx_interop.hh',
+ 'eo_event.hh',
+ 'Eo.hh',
+ 'eo_init.hh',
+ 'eo_ops.hh',
+ 'eo_wref.hh',
+ 'eo_private.hh',
+ 'efl_object_impl.hh'
+)
diff --git a/src/bindings/cxx/eolian_cxx/meson.build b/src/bindings/cxx/eolian_cxx/meson.build
new file mode 100644
index 0000000000..219ffa334b
--- /dev/null
+++ b/src/bindings/cxx/eolian_cxx/meson.build
@@ -0,0 +1,72 @@
+
+name_eolian_cxx_header_src= [
+ 'Eolian_Cxx.hh'
+]
+
+name_grammer_eolian_cxx_header_src= [
+ 'address_of.hpp',
+ 'alternative.hpp',
+ 'attribute_conditional.hpp',
+ 'attribute_reorder.hpp',
+ 'attribute_replace.hpp',
+ 'attributes.hpp',
+ 'blacklist.hpp',
+ 'base_class_definition.hpp',
+ 'case.hpp',
+ 'class_declaration.hpp',
+ 'class_definition.hpp',
+ 'class_implementation.hpp',
+ 'container.hpp',
+ 'context.hpp',
+ 'converting_argument.hpp',
+ 'c_type.hpp',
+ 'eps.hpp',
+ 'function_declaration.hpp',
+ 'function_definition.hpp',
+ 'generator.hpp',
+ 'header_guards.hpp',
+ 'header.hpp',
+ 'header_include_directive.hpp',
+ 'html_escaped_string.hpp',
+ 'implementation_include_directive.hpp',
+ 'impl_header.hpp',
+ 'indentation.hpp',
+ 'integral.hpp',
+ 'keyword.hpp',
+ 'klass_def.hpp',
+ 'kleene.hpp',
+ 'list.hpp',
+ 'meta.hpp',
+ 'namespace.hpp',
+ 'parameter.hpp',
+ 'part_declaration.hpp',
+ 'part_implementation.hpp',
+ 'qualifier_def.hpp',
+ 'sequence.hpp',
+ 'string.hpp',
+ 'type_function_declaration.hpp',
+ 'type.hpp',
+ 'type_impl.hpp',
+ 'types_definition.hpp',
+ 'type_traits.hpp'
+]
+
+cxx_header_src = []
+
+foreach header : name_eolian_cxx_header_src
+ cxx_header_src += files(join_paths('..', '..', '..', 'lib', 'eolian_cxx', header))
+endforeach
+
+foreach header : name_grammer_eolian_cxx_header_src
+ cxx_header_src += files(join_paths('..', '..', '..', 'lib', 'eolian_cxx', 'grammar', header))
+endforeach
+
+inc_dir = include_directories(join_paths('..', '..', '..', 'lib', 'eolian_cxx'))
+
+eolian_cxx_gen = executable('eolian_cxx',
+ join_paths('..', '..', '..', 'bin', 'eolian_cxx', 'eolian_cxx.cc'),
+ dependencies: [eina_cxx, eolian],
+ install: true,
+ include_directories : inc_dir,
+ cpp_args : package_c_args,
+ )
diff --git a/src/bindings/cxx/meson.build b/src/bindings/cxx/meson.build
new file mode 100644
index 0000000000..7a7000084c
--- /dev/null
+++ b/src/bindings/cxx/meson.build
@@ -0,0 +1,101 @@
+
+# ['eina', 'eolian', 'eo'] those three are build in the root meson.build reason for this is the super special handling
+cxx_sublibs = [
+ ['Eina', true, true, false, [eo]],
+ ['Eolian', true, true, false, []],
+ ['Eo', true, true, false, []],
+ ['Ecore', true, true, true, []],
+ ['Eet', true, true, false, []],
+ ['Efl', true, false, true, []],
+ ['Eio', false, false, true, []],
+ ['Evas', false, true, true, []],
+ ['Edje', false, false, true, []],
+ ['Eldbus', true, true, true, []],
+ ['Elementary', false, true, true, []]
+]
+
+increased_dependency = []
+
+foreach lib : cxx_sublibs
+ package_name = lib[0].to_lower()
+ package_version_name = '-'.join(package_name.split('_')) + '-cxx-' + version_major
+ package_c_args = [
+ '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"',
+ '-DNEED_RUN_IN_TREE=1'
+ ]
+
+ dir_package_include = join_paths(dir_include, package_version_name)
+ dir_package_modules = join_paths(dir_lib, package_name, 'modules')
+ cxx_generator_target = []
+ cxx_header_src = []
+ file_location = join_paths('..', '..', 'lib', package_name)
+ eo_file_list = []
+ eo_file_subdirs = get_variable(package_name + '_eo_subdirs', [''])
+
+ #generate files for each .eo files
+ foreach eo_file_subdir : eo_file_subdirs
+ if eo_file_subdir != ''
+ cxx_pub_eo_files = get_variable(package_name + '_' + eo_file_subdir +'_eo_files')
+ else
+ cxx_pub_eo_files = get_variable(package_name +'_eo_files')
+ endif
+ subdir_file_location = join_paths(file_location, eo_file_subdir)
+ foreach cxx_gen_file : cxx_pub_eo_files
+ cxx_generator_target += custom_target('eolian_cxx_gen_'+cxx_gen_file.underscorify()+'',
+ input : join_paths(subdir_file_location, cxx_gen_file),
+ output : [cxx_gen_file + '.hh', cxx_gen_file + '.impl.hh'],
+ install : true,
+ install_dir : join_paths(dir_package_include, eo_file_subdir),
+ command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', join_paths(meson.current_build_dir(), cxx_gen_file + '.hh'),
+ '@INPUT@'])
+ eo_file_list += files(join_paths(subdir_file_location, cxx_gen_file))
+ endforeach
+ endforeach
+
+ #generate the package.eo.hh file
+ if lib[3]
+ cxx_generator_target += custom_target('eolian_cxx_gen_'+package_name+'.eo.hh',
+ input : eo_file_list,
+ output : [lib[0] + '.eo.hh'],
+ install : true,
+ install_dir : join_paths(dir_package_include),
+ command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-m',
+ '-o', '@OUTPUT@',
+ '@INPUT@'])
+ endif
+
+ if lib[1]
+ inc_dir = include_directories(package_name+'_cxx', '.')
+ subdir(package_name+'_cxx')
+ else
+ inc_dir = include_directories(file_location, '.')
+ cxx_header_src += files(join_paths(file_location, lib[0]+'.hh'))
+ endif
+
+ dep = declare_dependency(
+ include_directories: inc_dir,
+ sources : cxx_generator_target,
+ dependencies: [get_variable(package_name)] + get_variable(package_name + '_pub_deps') + lib[4] + increased_dependency
+ )
+
+ increased_dependency += dep
+
+ set_variable(package_name + '_cxx', dep)
+
+ install_headers(cxx_header_src,
+ subdir: dir_package_include
+ )
+ if lib[2]
+ test_dirs += package_name + '_cxx'
+ endif
+ pkgconfig.generate(
+ name : '-'.join(package_name.split('_')) + '-cxx',
+ description : lib[0]+' cxx bindings',
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : dep,
+ #for now - just drag the whole elementary in
+ requires : 'elementary',
+ )
+endforeach
diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build
index 8d29c404a8..078e43f8c6 100644
--- a/src/lib/efl/interfaces/meson.build
+++ b/src/lib/efl/interfaces/meson.build
@@ -107,6 +107,8 @@ foreach eo_file : pub_eo_files
'-gch', '@INPUT@'])
endforeach
+pub_eo_files += pub_legacy_eo_files
+
pub_eo_types_files = [
'efl_gfx_types.eot',
'efl_ui_types.eot',
@@ -126,7 +128,13 @@ foreach eo_file : pub_eo_types_files
'-gh', '@INPUT@'])
endforeach
-pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
+install_data(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+efl_interfaces_eo_files = pub_eo_files
+
+pub_eo_files = []
efl_src += files([
'efl_interfaces_main.c',
diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build
index 75acef3b54..6677cf2327 100644
--- a/src/lib/efl/meson.build
+++ b/src/lib/efl/meson.build
@@ -24,10 +24,8 @@ efl = declare_dependency(
sources : pub_eo_file_target
)
-install_data(pub_eo_files,
- install_dir: join_paths(eolian_include_dir, package_version_name)
-)
-
install_headers(efl_header_src,
install_dir : dir_package_include,
)
+
+efl_eo_subdirs = ['interfaces']
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
index 47db33de4b..e6298f70cd 100644
--- a/src/lib/evas/canvas/meson.build
+++ b/src/lib/evas/canvas/meson.build
@@ -77,6 +77,8 @@ pub_eo_files = [
'efl_canvas_text.eo'
]
+evas_canvas_eo_files = pub_eo_files
+
pub_evas_eo_files += files(pub_eo_files)
foreach eo_file : pub_eo_files
diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build
index 62d9b27599..cd755f51c3 100644
--- a/src/lib/evas/gesture/meson.build
+++ b/src/lib/evas/gesture/meson.build
@@ -7,6 +7,8 @@ pub_eo_files = [
'efl_canvas_gesture_manager.eo'
]
+evas_gesture_eo_files = pub_eo_files
+
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index d72032d957..8175c87565 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -173,3 +173,5 @@ install_headers(evas_header_src,
)
automatic_pkgfile = false
+pub_eo_files = []
+evas_eo_subdirs = ['canvas', 'gesture']
diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build
index 057006884c..28db42f00b 100644
--- a/src/lib/evas_goal/meson.build
+++ b/src/lib/evas_goal/meson.build
@@ -7,9 +7,11 @@ evas_lib = library('evas',
version : meson.project_version()
)
+evas_pub_deps = [eina, ecore, ector, emile, evas_pre]
+
evas = declare_dependency(
link_with : [evas_lib],
- dependencies : [eina, ecore, ector, emile, evas_pre],
+ dependencies : evas_pub_deps,
include_directories : evas_include_directories
)
diff --git a/src/tests/ecore_cxx/meson.build b/src/tests/ecore_cxx/meson.build
new file mode 100644
index 0000000000..75547f1258
--- /dev/null
+++ b/src/tests/ecore_cxx/meson.build
@@ -0,0 +1,29 @@
+ecore_cxx_suite_deps = [check, ecore_cxx]
+
+ecore_cxx_suite_src = [
+ 'ecore_cxx_suite.cc',
+ 'ecore_cxx_suite.h',
+ 'ecore_cxx_test_safe_call.cc',
+]
+
+
+ecore_cxx_suite = executable('ecore_cxx_suite',
+ ecore_cxx_suite_src,
+ dependencies: [ecore_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+executable('ecore_cxx_suite_compile_test',
+ 'cxx_compile_test.cc',
+ dependencies: [ecore_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('ecore_cxx-suite', ecore_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/edje_cxx/meson.build b/src/tests/edje_cxx/meson.build
new file mode 100644
index 0000000000..0d706a294f
--- /dev/null
+++ b/src/tests/edje_cxx/meson.build
@@ -0,0 +1,9 @@
+edje_cxx_suite_deps = [check, edje_cxx]
+
+executable('edje_cxx_suite_compile_test',
+ 'cxx_compile_test.cc',
+ dependencies: [edje_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
diff --git a/src/tests/eet_cxx/meson.build b/src/tests/eet_cxx/meson.build
new file mode 100644
index 0000000000..f3f3fb8046
--- /dev/null
+++ b/src/tests/eet_cxx/meson.build
@@ -0,0 +1,21 @@
+eet_cxx_suite_deps = [check, eet_cxx]
+
+eet_cxx_suite_src = [
+ 'eet_cxx_suite.cc',
+ 'eet_cxx_suite.h',
+ 'eet_cxx_test_descriptors.cc',
+]
+
+eet_cxx_suite = executable('eet_cxx_suite',
+ eet_cxx_suite_src,
+ dependencies: [eet_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+
+test('ecore_cxx-suite', eet_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/eina_cxx/meson.build b/src/tests/eina_cxx/meson.build
new file mode 100644
index 0000000000..c5f0f23bb4
--- /dev/null
+++ b/src/tests/eina_cxx/meson.build
@@ -0,0 +1,57 @@
+eina_cxx_suite_deps = [check]
+
+eina_cxx_suite_src = [
+ 'eina_cxx_suite.cc',
+ 'eina_cxx_test_inlist.cc',
+ 'eina_cxx_test_log.cc',
+ 'eina_cxx_test_inarray.cc',
+ 'eina_cxx_test_iterator.cc',
+ 'eina_cxx_test_ptrarray.cc',
+ 'eina_cxx_test_ptrlist.cc',
+ 'eina_cxx_test_stringshare.cc',
+ 'eina_cxx_test_error.cc',
+ 'eina_cxx_test_accessor.cc',
+ 'eina_cxx_test_thread.cc',
+ 'eina_cxx_test_optional.cc',
+ 'eina_cxx_test_value.cc',
+ 'simple.c',
+ 'eina_cxx_suite.h'
+]
+
+
+pub_eo_files = [
+ 'simple.eo'
+]
+
+foreach eo_file : pub_eo_files
+ priv_eo_file_target += custom_target('eolian_gen_eina_cxx_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+ priv_eo_file_target += custom_target('eolian_cxx_gen_eina_cxx_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.hh'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', join_paths(meson.current_build_dir(), eo_file + '.hh'),
+ '@INPUT@'])
+endforeach
+
+eina_cxx_suite = executable('eina_cxx_suite',
+ eina_cxx_suite_src + priv_eo_file_target,
+ include_directories : config_dir,
+ dependencies: [eina_cxx_suite_deps, check, eina, eina_cxx, eo_cxx, ecore],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'
+ ]
+)
+
+test('eina_cxx-suite', eina_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/eldbus_cxx/meson.build b/src/tests/eldbus_cxx/meson.build
new file mode 100644
index 0000000000..e3e04e5290
--- /dev/null
+++ b/src/tests/eldbus_cxx/meson.build
@@ -0,0 +1,21 @@
+eldbus_cxx_suite_deps = [check, eldbus_cxx]
+
+eldbus_cxx_suite_src = [
+ 'eldbus_cxx_suite.cc',
+ 'eldbus_cxx_suite.h',
+ 'eldbus_cxx_test_eldbus_client.cc',
+ 'eldbus_cxx_test_eldbus_connect.cc',
+]
+
+eldbus_cxx_suite = executable('eldbus_cxx_suite',
+ eldbus_cxx_suite_src,
+ dependencies: [eldbus_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eldbus_cxx-suite', eldbus_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/elementary_cxx/meson.build b/src/tests/elementary_cxx/meson.build
new file mode 100644
index 0000000000..1ced02bdca
--- /dev/null
+++ b/src/tests/elementary_cxx/meson.build
@@ -0,0 +1,9 @@
+elementary_cxx_suite_deps = [check, elementary_cxx]
+
+executable('elementary_cxx_suite_compile_test',
+ ['cxx_compile_test.cc', 'cxx_dummy_compile_test.cc'],
+ dependencies: [elementary_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
diff --git a/src/tests/eo_cxx/meson.build b/src/tests/eo_cxx/meson.build
new file mode 100644
index 0000000000..43e487da57
--- /dev/null
+++ b/src/tests/eo_cxx/meson.build
@@ -0,0 +1,20 @@
+eo_cxx_suite_deps = [check, eina_cxx, eo_cxx]
+
+eo_cxx_suite_src = [
+ 'eo_cxx_suite.cc',
+ 'eo_cxx_suite.h'
+]
+
+eo_cxx_suite = executable('eo_cxx_suite',
+ eo_cxx_suite_src,
+ include_directories : config_dir,
+ dependencies: [eo_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo_cxx-suite', eo_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/eolian_cxx/meson.build b/src/tests/eolian_cxx/meson.build
new file mode 100644
index 0000000000..f4daf82a85
--- /dev/null
+++ b/src/tests/eolian_cxx/meson.build
@@ -0,0 +1,78 @@
+eolian_cxx_suite_deps = [check, eolian_cxx, eina_cxx, eo_cxx, ecore]
+
+eolian_cxx_suite_src = files([
+ 'eolian_cxx_suite.cc',
+ 'eolian_cxx_test_parse.cc',
+ 'a.c',
+ 'b.c',
+ 'c.c',
+ 'd.c',
+ 'eolian_cxx_test_binding.cc',
+ 'eolian_cxx_test_address_of.cc',
+ 'eolian_cxx_test_wrapper.cc',
+ 'simple.c',
+ 'name_name.c',
+ 'name_name_cxx.cc',
+ 'generic.c',
+ 'name1_name2_type_generation.c',
+ 'eolian_cxx_test_inheritance.cc',
+ 'eolian_cxx_test_generate.cc',
+ 'eolian_cxx_test_documentation.cc',
+ 'eolian_cxx_test_cyclic.cc',
+ 'complex.c',
+ 'complex_cxx.cc',
+ 'eolian_cxx_suite.h'
+])
+
+pub_eo_files = [
+ 'a.eo',
+ 'b.eo',
+ 'c.eo',
+ 'd.eo',
+ 'complex.eo',
+ 'cyclic1.eo',
+ 'cyclic2.eo',
+ 'docs.eo',
+ 'generic.eo',
+ 'name1_name2_type_generation.eo',
+ 'name_name.eo',
+ 'ns_name.eo',
+ 'ns_name_other.eo',
+ 'simple.eo'
+]
+
+pub_eo_file_target = []
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_cxx_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.hh'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', join_paths(meson.current_build_dir(), eo_file + '.hh'),
+ '@INPUT@'])
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+eolian_cxx_suite = executable('eolian_cxx_suite',
+ eolian_cxx_suite_src + pub_eo_file_target,
+ dependencies: [eolian_cxx_suite_deps, eo_cxx, check],
+ # package_c_args contains -D definitions for the package
+ cpp_args : package_c_args +[
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eolian_cxx-suite', eolian_cxx_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/evas_cxx/meson.build b/src/tests/evas_cxx/meson.build
new file mode 100644
index 0000000000..d84c1e2c12
--- /dev/null
+++ b/src/tests/evas_cxx/meson.build
@@ -0,0 +1,9 @@
+evas_cxx_suite_deps = [check, evas_cxx]
+
+executable('evas_cxx_suite_compile_test',
+ 'cxx_compile_test.cc',
+ dependencies: [evas_cxx_suite_deps, check],
+ cpp_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)