Revert "meson: add cxx bindings"

This reverts commit 5aaf2cbb5d.

The cxx bindings were accidently merged. Things are missing (like .eot.h
files)
This commit is contained in:
Marcel Hollerbach 2018-10-18 16:11:22 +02:00
parent 2643ce0aad
commit 52e0b8440b
26 changed files with 21 additions and 576 deletions

View File

@ -58,7 +58,6 @@ 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')
@ -66,15 +65,18 @@ local_benchmark = join_paths('src', 'benchmarks')
local_examples = join_paths('src', 'examples')
local_scripts = join_paths('src', 'scripts')
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
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')
config_h = configuration_data()
config_h.set_quoted('MODULE_ARCH', version_name)
@ -95,6 +97,7 @@ 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 = []
@ -228,7 +231,6 @@ 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
@ -237,8 +239,7 @@ foreach package : subprojects
endforeach
if (package[3])
subdir(join_paths(local_lib, package_name))
set_variable(package_name + '_eo_files', pub_eo_files)
subdir(join_paths(local_lib, package_name))
endif
if (package[2])
subdir(join_paths(local_module, package_name))
@ -293,14 +294,7 @@ subdir(join_paths('src', 'bin', 'efl'))
subdir(join_paths('src', 'generic', 'evas'))
subdir(join_paths('src', 'generic', 'emotion'))
bindings = ['luajit', 'cxx']
foreach binding : bindings
if get_option(binding)
subdir(join_paths('src', 'bindings', binding))
endif
endforeach
subdir(join_paths('src', 'bindings', 'luajit'))
subdir(join_paths('src', 'edje_external'))

View File

@ -309,15 +309,3 @@ 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'
)

View File

@ -1,6 +0,0 @@
eolian_cxx_gen = executable('eolian_cxx',
'eolian_cxx.cc',
dependencies: [eolian_cxx, eina_cxx, eolian],
install: true,
cpp_args : package_c_args,
)

View File

@ -1,4 +0,0 @@
cxx_header_src += files(
'Ecore.hh',
'Ecore_Manual.hh',
)

View File

@ -1,6 +0,0 @@
cxx_header_src += files(
'eet_type.hh',
'eet_register.hh',
'eet_composite.hh',
'Eet.hh'
)

View File

@ -1,2 +0,0 @@
cxx_header_src += join_paths(file_location, 'Efl.hh')
cxx_header_src += join_paths(file_location, 'cxx', 'efl_part_impl.hh')

View File

@ -1,54 +0,0 @@
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
)

View File

@ -1,14 +0,0 @@
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',
)

View File

@ -1,11 +0,0 @@
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'
)

View File

@ -1,72 +0,0 @@
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,
)

View File

@ -1,101 +0,0 @@
# ['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

View File

@ -107,8 +107,6 @@ 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',
@ -128,13 +126,7 @@ foreach eo_file : pub_eo_types_files
'-gh', '@INPUT@'])
endforeach
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 = []
pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
efl_src += files([
'efl_interfaces_main.c',

View File

@ -24,8 +24,10 @@ 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']

View File

@ -77,8 +77,6 @@ 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

View File

@ -7,8 +7,6 @@ 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,

View File

@ -173,5 +173,3 @@ install_headers(evas_header_src,
)
automatic_pkgfile = false
pub_eo_files = []
evas_eo_subdirs = ['canvas', 'gesture']

View File

@ -7,11 +7,9 @@ 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 : evas_pub_deps,
dependencies : [eina, ecore, ector, emile, evas_pre],
include_directories : evas_include_directories
)

View File

@ -1,29 +0,0 @@
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
)

View File

@ -1,9 +0,0 @@
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()+'"']
)

View File

@ -1,21 +0,0 @@
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
)

View File

@ -1,57 +0,0 @@
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
)

View File

@ -1,21 +0,0 @@
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
)

View File

@ -1,9 +0,0 @@
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()+'"']
)

View File

@ -1,20 +0,0 @@
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
)

View File

@ -1,78 +0,0 @@
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
)

View File

@ -1,9 +0,0 @@
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()+'"']
)