summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-10-19 16:18:39 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-10-24 12:05:58 +0200
commite85311c99286988f98ce081148f6f9e298086c2d (patch)
tree9479f9b7c887904044b08fd2fb217f8b41971837
parente19d2391476965d7b8e8865a766734947cc3099f (diff)
meson: here comes cxx bindings
this commits is bringing cxx bindings. You can enable / disable them with the cxx option. Differential Revision: https://phab.enlightenment.org/D7181
-rw-r--r--meson.build9
-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.build5
-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.build112
-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.build55
-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.build74
-rw-r--r--src/tests/evas_cxx/meson.build9
20 files changed, 551 insertions, 1 deletions
diff --git a/meson.build b/meson.build
index a80b80d2e2..83e9dc8117 100644
--- a/meson.build
+++ b/meson.build
@@ -313,7 +313,14 @@ subdir(join_paths('src', 'bin', 'efl'))
313subdir(join_paths('src', 'generic', 'evas')) 313subdir(join_paths('src', 'generic', 'evas'))
314subdir(join_paths('src', 'generic', 'emotion')) 314subdir(join_paths('src', 'generic', 'emotion'))
315 315
316subdir(join_paths('src', 'bindings', 'luajit')) 316bindings = ['luajit', 'cxx']
317
318foreach binding : bindings
319 if get_option(binding)
320 subdir(join_paths('src', 'bindings', binding))
321 endif
322endforeach
323
317subdir(join_paths('src', 'edje_external')) 324subdir(join_paths('src', 'edje_external'))
318 325
319 326
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',
309 value: true, 309 value: true,
310 description: 'enable localization: (default=true)' 310 description: 'enable localization: (default=true)'
311) 311)
312
313option('luajit',
314 type: 'boolean',
315 value: true,
316 description: 'Flag for handling lua bindings'
317)
318
319option('cxx',
320 type: 'boolean',
321 value: true,
322 description: 'Flag for handling cxx bindings'
323)
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 @@
1eolian_cxx_gen = executable('eolian_cxx',
2 'eolian_cxx.cc',
3 dependencies: [eolian_cxx, eina_cxx, eolian],
4 install: true,
5 cpp_args : package_c_args,
6 )
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 @@
1cxx_header_src += files(
2 'Ecore.hh',
3 'Ecore_Manual.hh',
4)
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 @@
1cxx_header_src += files(
2 'eet_type.hh',
3 'eet_register.hh',
4 'eet_composite.hh',
5 'Eet.hh'
6)
diff --git a/src/bindings/cxx/efl_cxx/meson.build b/src/bindings/cxx/efl_cxx/meson.build
new file mode 100644
index 0000000000..44113d324a
--- /dev/null
+++ b/src/bindings/cxx/efl_cxx/meson.build
@@ -0,0 +1,5 @@
1cxx_header_src += join_paths(file_location, 'Efl.hh')
2
3install_headers(join_paths('..', file_location, 'cxx', 'efl_part_impl.hh'),
4 subdir: join_paths(dir_package_include, 'cxx')
5)
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 @@
1eina_cxx_deps = [eina, eo]
2eina_cxx_pub_deps = []
3
4eina_cxx_header_src = files(
5 'eina_accessor.hh',
6 'eina_aligned_union.hh',
7 'eina_array.hh',
8 'eina_clone_allocators.hh',
9 'eina_deleter.hh',
10 'eina_error.hh',
11 'eina_future.hh',
12 'eina_eo_concrete_fwd.hh',
13 'eina_fold.hh',
14 'eina_function.hh',
15 'eina_inarray.hh',
16 'eina_inlist.hh',
17 'eina_integer_sequence.hh',
18 'eina_iterator.hh',
19 'eina_lists_auxiliary.hh',
20 'eina_list.hh',
21 'eina_log.hh',
22 'eina_logical.hh',
23 'eina_optional.hh',
24 'eina_pp.hh',
25 'eina_ptrarray.hh',
26 'eina_ptrlist.hh',
27 'eina_range_types.hh',
28 'eina_ref.hh',
29 'eina_stringshare.hh',
30 'eina_strbuf.hh',
31 'eina_string_view.hh',
32 'eina_thread.hh',
33 'eina_throw.hh',
34 'eina_tuple.hh',
35 'eina_tuple_c.hh',
36 'eina_tuple_unwrap.hh',
37 'eina_type_traits.hh',
38 'eina_value.hh',
39 'eina_workarounds.hh',
40 'eina_copy_traits.hh',
41 'eina_variant.hh',
42 'Eina.hh'
43)
44
45eina_cxx_lib = disabler()
46
47eina_cxx = declare_dependency(
48 include_directories: [include_directories('.')],
49 dependencies: eina_cxx_deps
50)
51
52install_headers(eina_cxx_header_src,
53 subdir: dir_package_include
54)
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 @@
1cxx_header_src += files(
2 'eldbus_basic.hh',
3 'eldbus_error.hh',
4 'eldbus_freedesktop.hh',
5 'Eldbus.hh',
6 'eldbus_integer_sequence.hh',
7 'eldbus_message_arguments.hh',
8 'eldbus_message.hh',
9 'Eldbus_Model.hh',
10 'eldbus_proxy_call.hh',
11 'eldbus_raw_tuple.hh',
12 'eldbus_service.hh',
13 'eldbus_signature_traits.hh',
14)
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 @@
1cxx_header_src = files(
2 'eo_concrete.hh',
3 'eo_cxx_interop.hh',
4 'eo_event.hh',
5 'Eo.hh',
6 'eo_init.hh',
7 'eo_ops.hh',
8 'eo_wref.hh',
9 'eo_private.hh',
10 'efl_object_impl.hh'
11)
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 @@
1
2name_eolian_cxx_header_src= [
3 'Eolian_Cxx.hh'
4]
5
6name_grammer_eolian_cxx_header_src= [
7 'address_of.hpp',
8 'alternative.hpp',
9 'attribute_conditional.hpp',
10 'attribute_reorder.hpp',
11 'attribute_replace.hpp',
12 'attributes.hpp',
13 'blacklist.hpp',
14 'base_class_definition.hpp',
15 'case.hpp',
16 'class_declaration.hpp',
17 'class_definition.hpp',
18 'class_implementation.hpp',
19 'container.hpp',
20 'context.hpp',
21 'converting_argument.hpp',
22 'c_type.hpp',
23 'eps.hpp',
24 'function_declaration.hpp',
25 'function_definition.hpp',
26 'generator.hpp',
27 'header_guards.hpp',
28 'header.hpp',
29 'header_include_directive.hpp',
30 'html_escaped_string.hpp',
31 'implementation_include_directive.hpp',
32 'impl_header.hpp',
33 'indentation.hpp',
34 'integral.hpp',
35 'keyword.hpp',
36 'klass_def.hpp',
37 'kleene.hpp',
38 'list.hpp',
39 'meta.hpp',
40 'namespace.hpp',
41 'parameter.hpp',
42 'part_declaration.hpp',
43 'part_implementation.hpp',
44 'qualifier_def.hpp',
45 'sequence.hpp',
46 'string.hpp',
47 'type_function_declaration.hpp',
48 'type.hpp',
49 'type_impl.hpp',
50 'types_definition.hpp',
51 'type_traits.hpp'
52]
53
54cxx_header_src = []
55
56foreach header : name_eolian_cxx_header_src
57 cxx_header_src += files(join_paths('..', '..', '..', 'lib', 'eolian_cxx', header))
58endforeach
59
60foreach header : name_grammer_eolian_cxx_header_src
61 cxx_header_src += files(join_paths('..', '..', '..', 'lib', 'eolian_cxx', 'grammar', header))
62endforeach
63
64inc_dir = include_directories(join_paths('..', '..', '..', 'lib', 'eolian_cxx'))
65
66eolian_cxx_gen = executable('eolian_cxx',
67 join_paths('..', '..', '..', 'bin', 'eolian_cxx', 'eolian_cxx.cc'),
68 dependencies: [eina_cxx, eolian],
69 install: true,
70 include_directories : inc_dir,
71 cpp_args : package_c_args,
72 )
diff --git a/src/bindings/cxx/meson.build b/src/bindings/cxx/meson.build
new file mode 100644
index 0000000000..f4b99f6c46
--- /dev/null
+++ b/src/bindings/cxx/meson.build
@@ -0,0 +1,112 @@
1
2# ['eina', 'eolian', 'eo'] those three are build in the root meson.build reason for this is the super special handling
3cxx_sublibs = [
4 ['Eina', true, true, false, [eo]],
5 ['Eolian', true, true, false, []],
6 ['Eo', true, true, false, []],
7 ['Ecore', true, true, true, []],
8 ['Eet', true, true, false, []],
9 ['Efl', true, false, true, []],
10 ['Eio', false, false, true, []],
11 ['Evas', false, true, true, []],
12 ['Edje', false, false, true, []],
13 ['Eldbus', true, true, true, []],
14 ['Elementary', false, true, true, []]
15]
16
17increased_dependency = []
18growing_deps = []
19
20foreach lib : cxx_sublibs
21 package_name = lib[0].to_lower()
22 package_top_header = lib[3]
23 package_has_tests = lib[2]
24 package_manual_binded = lib[1]
25 package_version_name = '-'.join(package_name.split('_')) + '-cxx-' + version_major
26 tmp_package_subdirs = [package_version_name]
27
28 package_c_args = [
29 '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"',
30 '-DNEED_RUN_IN_TREE=1'
31 ]
32
33 dir_package_include = join_paths(dir_include, package_version_name)
34 dir_package_modules = join_paths(dir_lib, package_name, 'modules')
35 cxx_generator_target = []
36 cxx_header_src = []
37 file_location = join_paths('..', '..', 'lib', package_name)
38 eo_file_list = []
39 eo_file_subdirs = get_variable(package_name + '_eo_subdirs')
40 #generate files for each .eo files
41 foreach eo_file_subdir : eo_file_subdirs
42 if eo_file_subdir != ''
43 cxx_pub_eo_files = get_variable(package_name + '_' + eo_file_subdir +'_eo_files')
44 else
45 cxx_pub_eo_files = get_variable(package_name +'_eo_files')
46 endif
47 subdir_file_location = join_paths(file_location, eo_file_subdir)
48 foreach cxx_gen_file : cxx_pub_eo_files
49 cxx_generator_target += custom_target('eolian_cxx_gen_'+cxx_gen_file.underscorify()+'',
50 input : join_paths(subdir_file_location, cxx_gen_file),
51 output : [cxx_gen_file + '.hh', cxx_gen_file + '.impl.hh'],
52 install : true,
53 install_dir : join_paths(dir_package_include, eo_file_subdir),
54 command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
55 '-o', join_paths(meson.current_build_dir(), cxx_gen_file + '.hh'),
56 '@INPUT@'])
57 eo_file_list += files(join_paths(subdir_file_location, cxx_gen_file))
58 endforeach
59 endforeach
60
61 #generate the package.eo.hh file
62 if package_top_header
63 cxx_generator_target += custom_target('eolian_cxx_gen_'+package_name+'.eo.hh',
64 input : eo_file_list,
65 output : [lib[0] + '.eo.hh'],
66 install : true,
67 install_dir : join_paths(dir_package_include),
68 command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories, '-m',
69 '-o', '@OUTPUT@',
70 '@INPUT@'])
71 endif
72
73 if package_manual_binded
74 inc_dir = include_directories(package_name+'_cxx', '.')
75 subdir(package_name+'_cxx')
76 else
77 inc_dir = include_directories(file_location, '.')
78 cxx_header_src += files(join_paths(file_location, lib[0]+'.hh'))
79 endif
80
81 dep = declare_dependency(
82 include_directories: inc_dir,
83 sources : cxx_generator_target,
84 dependencies: [get_variable(package_name)] + get_variable(package_name + '_pub_deps') + lib[4] + increased_dependency
85 )
86
87 increased_dependency += dep
88
89 set_variable(package_name + '_cxx', dep)
90
91 if package_has_tests
92 test_dirs += package_name + '_cxx'
93 endif
94
95 foreach subdir : get_variable(package_name + '_eo_subdirs')
96 tmp_package_subdirs += join_paths(package_version_name, subdir)
97 endforeach
98
99 install_headers(cxx_header_src,
100 subdir: dir_package_include
101 )
102
103 pkgconfig.generate(
104 name : '-'.join(package_name.split('_')) + '-cxx',
105 description : lib[0]+' cxx bindings',
106 subdirs : tmp_package_subdirs,
107 version : version_major + '.' + version_minor,
108 libraries : dep,
109 requires : growing_deps + [package_name],
110 )
111 growing_deps += package_name + '-cxx'
112endforeach
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 @@
1ecore_cxx_suite_deps = [check, ecore_cxx]
2
3ecore_cxx_suite_src = [
4 'ecore_cxx_suite.cc',
5 'ecore_cxx_suite.h',
6 'ecore_cxx_test_safe_call.cc',
7]
8
9
10ecore_cxx_suite = executable('ecore_cxx_suite',
11 ecore_cxx_suite_src,
12 dependencies: [ecore_cxx_suite_deps, check],
13 cpp_args : [
14 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
15 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
16)
17
18executable('ecore_cxx_suite_compile_test',
19 'cxx_compile_test.cc',
20 dependencies: [ecore_cxx_suite_deps, check],
21 cpp_args : [
22 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
23 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
24)
25
26test('ecore_cxx-suite', ecore_cxx_suite,
27 timeout : 10*60,
28 env : test_env
29)
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 @@
1edje_cxx_suite_deps = [check, edje_cxx]
2
3executable('edje_cxx_suite_compile_test',
4 'cxx_compile_test.cc',
5 dependencies: [edje_cxx_suite_deps, check],
6 cpp_args : [
7 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
8 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
9)
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 @@
1eet_cxx_suite_deps = [check, eet_cxx]
2
3eet_cxx_suite_src = [
4 'eet_cxx_suite.cc',
5 'eet_cxx_suite.h',
6 'eet_cxx_test_descriptors.cc',
7]
8
9eet_cxx_suite = executable('eet_cxx_suite',
10 eet_cxx_suite_src,
11 dependencies: [eet_cxx_suite_deps, check],
12 cpp_args : [
13 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
14 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
15)
16
17
18test('ecore_cxx-suite', eet_cxx_suite,
19 timeout : 10*60,
20 env : test_env
21)
diff --git a/src/tests/eina_cxx/meson.build b/src/tests/eina_cxx/meson.build
new file mode 100644
index 0000000000..07470a2e0d
--- /dev/null
+++ b/src/tests/eina_cxx/meson.build
@@ -0,0 +1,55 @@
1eina_cxx_suite_deps = [check]
2
3eina_cxx_suite_src = [
4 'eina_cxx_suite.cc',
5 'eina_cxx_test_inlist.cc',
6 'eina_cxx_test_log.cc',
7 'eina_cxx_test_inarray.cc',
8 'eina_cxx_test_iterator.cc',
9 'eina_cxx_test_ptrarray.cc',
10 'eina_cxx_test_ptrlist.cc',
11 'eina_cxx_test_stringshare.cc',
12 'eina_cxx_test_error.cc',
13 'eina_cxx_test_accessor.cc',
14 'eina_cxx_test_thread.cc',
15 'eina_cxx_test_optional.cc',
16 'eina_cxx_test_value.cc',
17 'simple.c',
18 'eina_cxx_suite.h'
19]
20
21
22pub_eo_files = [
23 'simple.eo'
24]
25
26foreach eo_file : pub_eo_files
27 priv_eo_file_target += custom_target('eolian_gen_eina_cxx_' + eo_file,
28 input : eo_file,
29 output : [eo_file + '.h'],
30 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
31 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
32 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
33 '-gch', '@INPUT@'])
34 priv_eo_file_target += custom_target('eolian_cxx_gen_eina_cxx_' + eo_file,
35 input : eo_file,
36 output : [eo_file + '.hh'],
37 command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
38 '-o', join_paths(meson.current_build_dir(), eo_file + '.hh'),
39 '@INPUT@'])
40endforeach
41
42eina_cxx_suite = executable('eina_cxx_suite',
43 eina_cxx_suite_src + priv_eo_file_target,
44 include_directories : config_dir,
45 dependencies: [eina_cxx_suite_deps, check, eina, eina_cxx, eo_cxx, ecore],
46 cpp_args : [
47 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
48 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'
49 ]
50)
51
52test('eina_cxx-suite', eina_cxx_suite,
53 timeout : 10*60,
54 env : test_env
55)
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 @@
1eldbus_cxx_suite_deps = [check, eldbus_cxx]
2
3eldbus_cxx_suite_src = [
4 'eldbus_cxx_suite.cc',
5 'eldbus_cxx_suite.h',
6 'eldbus_cxx_test_eldbus_client.cc',
7 'eldbus_cxx_test_eldbus_connect.cc',
8]
9
10eldbus_cxx_suite = executable('eldbus_cxx_suite',
11 eldbus_cxx_suite_src,
12 dependencies: [eldbus_cxx_suite_deps, check],
13 cpp_args : [
14 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
15 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
16)
17
18test('eldbus_cxx-suite', eldbus_cxx_suite,
19 timeout : 10*60,
20 env : test_env
21)
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 @@
1elementary_cxx_suite_deps = [check, elementary_cxx]
2
3executable('elementary_cxx_suite_compile_test',
4 ['cxx_compile_test.cc', 'cxx_dummy_compile_test.cc'],
5 dependencies: [elementary_cxx_suite_deps, check],
6 cpp_args : [
7 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
8 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
9)
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 @@
1eo_cxx_suite_deps = [check, eina_cxx, eo_cxx]
2
3eo_cxx_suite_src = [
4 'eo_cxx_suite.cc',
5 'eo_cxx_suite.h'
6]
7
8eo_cxx_suite = executable('eo_cxx_suite',
9 eo_cxx_suite_src,
10 include_directories : config_dir,
11 dependencies: [eo_cxx_suite_deps, check],
12 cpp_args : [
13 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
14 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
15)
16
17test('eo_cxx-suite', eo_cxx_suite,
18 timeout : 10*60,
19 env : test_env
20)
diff --git a/src/tests/eolian_cxx/meson.build b/src/tests/eolian_cxx/meson.build
new file mode 100644
index 0000000000..1c7a961277
--- /dev/null
+++ b/src/tests/eolian_cxx/meson.build
@@ -0,0 +1,74 @@
1eolian_cxx_suite_deps = [check, eolian_cxx, eina_cxx, eo_cxx, ecore]
2
3eolian_cxx_suite_src = files([
4 'eolian_cxx_suite.cc',
5 'eolian_cxx_test_parse.cc',
6 'a.c',
7 'b.c',
8 'c.c',
9 'd.c',
10 'eolian_cxx_test_binding.cc',
11 'eolian_cxx_test_address_of.cc',
12 'eolian_cxx_test_wrapper.cc',
13 'simple.c',
14 'name_name.c',
15 'name_name_cxx.cc',
16 'generic.c',
17 'name1_name2_type_generation.c',
18 'eolian_cxx_test_inheritance.cc',
19 'eolian_cxx_test_generate.cc',
20 'eolian_cxx_test_documentation.cc',
21 'eolian_cxx_test_cyclic.cc',
22 'complex.c',
23 'complex_cxx.cc',
24 'eolian_cxx_suite.h'
25])
26
27pub_eo_files = [
28 'a.eo',
29 'b.eo',
30 'c.eo',
31 'd.eo',
32 'complex.eo',
33 'cyclic1.eo',
34 'cyclic2.eo',
35 'docs.eo',
36 'generic.eo',
37 'name1_name2_type_generation.eo',
38 'name_name.eo',
39 'ns_name.eo',
40 'ns_name_other.eo',
41 'simple.eo'
42]
43
44pub_eo_file_target = []
45
46foreach eo_file : pub_eo_files
47 pub_eo_file_target += custom_target('eolian_cxx_gen_' + eo_file,
48 input : eo_file,
49 output : [eo_file + '.hh'],
50 command : [eolian_cxx_gen, '-I', meson.current_source_dir(), eolian_include_directories,
51 '-o', join_paths(meson.current_build_dir(), eo_file + '.hh'),
52 '@INPUT@'])
53 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
54 input : eo_file,
55 output : [eo_file + '.h'],
56 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
57 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
58 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
59 '-gch', '@INPUT@'])
60endforeach
61
62eolian_cxx_suite = executable('eolian_cxx_suite',
63 eolian_cxx_suite_src + pub_eo_file_target,
64 dependencies: [eolian_cxx_suite_deps, eo_cxx, check],
65 # package_c_args contains -D definitions for the package
66 cpp_args : package_c_args +[
67 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
68 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
69)
70
71test('eolian_cxx-suite', eolian_cxx_suite,
72 timeout : 10*60,
73 env : test_env
74)
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 @@
1evas_cxx_suite_deps = [check, evas_cxx]
2
3executable('evas_cxx_suite_compile_test',
4 'cxx_compile_test.cc',
5 dependencies: [evas_cxx_suite_deps, check],
6 cpp_args : [
7 '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
8 '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
9)