diff --git a/meson.build b/meson.build index 330694951c..1533d984f7 100644 --- a/meson.build +++ b/meson.build @@ -295,48 +295,48 @@ endif subprojects = [ # name | option | mod | lib | bin | bench | tests | examples | true if build in efl-one | pkg-config options | name of static libs -['evil' ,[] , false, true, false, false, false, false, false, [], []], -['eina' ,[] , false, true, true, true, true, true, false, [], []], +['evil' ,[] , false, true, false, false, false, false, true, [], []], +['eina' ,[] , false, true, true, true, true, true, true, [], []], ['eolian' ,[] , false, true, true, false, true, false, false, ['eina'], []], -['eo' ,[] , false, true, false, true, true, false, false, ['eina'], []], -['efl' ,[] , false, true, false, false, true, false, false, ['eo'], []], -['emile' ,[] , false, true, false, false, true, true, false, ['eina', 'efl'], ['lz4', 'rg_etc']], -['eet' ,[] , false, true, true, false, true, true, false, ['eina', 'emile', 'efl'], []], -['ecore' ,[] , false, true, false, false, false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']], -['eldbus' ,[] , false, true, true, false, true, true, false, ['eina', 'eo', 'efl'], []], -['ecore' ,[] , true, false, false, false, true, true, false, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus -['ecore_audio' ,['audio'] , false, true, false, false, false, false, false, ['eina', 'eo'], []], +['eo' ,[] , false, true, false, true, true, false, true, ['eina'], []], +['efl' ,[] , false, true, false, false, true, false, true, ['eo'], []], +['emile' ,[] , false, true, false, false, true, true, true, ['eina', 'efl'], ['lz4', 'rg_etc']], +['eet' ,[] , false, true, true, false, true, true, true, ['eina', 'emile', 'efl'], []], +['ecore' ,[] , false, true, false, false, false, false, true, ['eina', 'eo', 'efl'], ['buildsystem']], +['eldbus' ,[] , false, true, true, false, true, true, true, ['eina', 'eo', 'efl'], []], +['ecore' ,[] , true, false, false, false, true, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus +['ecore_audio' ,['audio'] , false, true, false, false, false, false, true, ['eina', 'eo'], []], ['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, false, ['eina', 'ecore'], []], -['ecore_con' ,[] , false, true, true, false, true, false, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']], -['ecore_file' ,[] , false, true, false, false, false, false, false, ['eina'], []], -['eeze' ,['eeze'] , true, true, true, false, true, false, false, ['eina', 'efl'], []], -['ecore_input' ,[] , false, true, false, false, false, false, false, ['eina', 'eo'], []], -['ecore_x' ,['x11'] , false, true, false, false, false, false, false, ['eina', 'efl'], []], -['ecore_fb' ,['fb'] , false, true, false, false, false, false, false, ['eina'], []], -['ecore_wl2' ,['wl'] , true, true, false, false, true, false, false, ['eina'], ['libdrm']], -['ecore_sdl' ,['sdl'] , false, true, false, false, false, false, false, ['eina'], []], -['ecore_win32' ,[] , false, true, false, false, false, false, false, ['eina'], []], -['ecore_ipc' ,[] , false, true, false, false, false, false, false, ['eina'], []], -['ecore_buffer' ,['buffer'] , true, true, true, false, false, false, false, ['eina'], []], -['ector' ,[] , false, true, false, false, true, false, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']], -['elput' ,['drm'] , false, true, false, false, true, false, false, ['eina', 'eldbus'], []], -['ecore_drm2' ,['drm'] , false, true, false, false, false, false, false, ['ecore'], ['libdrm']], -['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, false, ['eina'], []], -['evas' ,[] , true, true, false, false, true, true, false, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']], -['efreet' ,[] , false, true, false, false, true, false, false, ['eina', 'efl', 'eo'], []], -['ecore_input_evas' ,[] , false, true, false, false, false, false, false, ['eina', 'evas'], []], -['ecore_evas' ,[] , true, true, true, false, false, false, false, ['evas', 'ector'], []], -['ecore_imf' ,[] , true, true, false, false, false, false, false, ['eina'], []], -['embryo' ,[] , false, true, true, false, false, false, false, ['eina', 'efl', 'eo'], []], -['eio' ,[] , false, true, false, false, true, true, false, ['eina', 'eet'], []], -['efreet' ,[] , false, false, true, false, false, false, false, ['eina', 'efl', 'eo'], []], -['ecore_imf_evas' ,[] , false, true, false, false, false, false, false, ['eina', 'efl', 'eo'], []], -['ephysics' ,['physics'] , false, true, false, false, false, false, false, ['eina', 'efl', 'eo'], []], -['edje' ,[] , false, true, true, false, true, true, false, ['evas', 'eo', 'efl', lua_pc_name], []], -['emotion' ,[] , true, true, false, false, true, true, false, ['eina', 'efl', 'eo'], []], -['ethumb' ,[] , true, true, true, false, false, false, false, ['eina', 'efl', 'eo'], []], -['ethumb_client' ,[] , false, true, true, false, false, true, false, ['eina', 'efl', 'eo', 'ethumb'], []], -['elementary' ,[] , true, true, true, true, true, true, false, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], +['ecore_con' ,[] , false, true, true, false, true, false, true, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']], +['ecore_file' ,[] , false, true, false, false, false, false, true, ['eina'], []], +['eeze' ,['eeze'] , true, true, true, false, true, false, true, ['eina', 'efl'], []], +['ecore_input' ,[] , false, true, false, false, false, false, true, ['eina', 'eo'], []], +['ecore_x' ,['x11'] , false, true, false, false, false, false, true, ['eina', 'efl'], []], +['ecore_fb' ,['fb'] , false, true, false, false, false, false, true, ['eina'], []], +['ecore_wl2' ,['wl'] , true, true, false, false, true, false, true, ['eina'], ['libdrm']], +['ecore_sdl' ,['sdl'] , false, true, false, false, false, false, true, ['eina'], []], +['ecore_win32' ,[] , false, true, false, false, false, false, true, ['eina'], []], +['ecore_ipc' ,[] , false, true, false, false, false, false, true, ['eina'], []], +['ecore_buffer' ,['buffer'] , true, true, true, false, false, false, true, ['eina'], []], +['ector' ,[] , false, true, false, false, true, false, true, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']], +['elput' ,['drm'] , false, true, false, false, true, false, true, ['eina', 'eldbus'], []], +['ecore_drm2' ,['drm'] , false, true, false, false, false, false, true, ['ecore'], ['libdrm']], +['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, true, ['eina'], []], +['evas' ,[] , true, true, false, false, true, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']], +['efreet' ,[] , false, true, false, false, true, false, true, ['eina', 'efl', 'eo'], []], +['ecore_input_evas' ,[] , false, true, false, false, false, false, true, ['eina', 'evas'], []], +['ecore_evas' ,[] , true, true, true, false, false, false, true, ['evas', 'ector'], []], +['ecore_imf' ,[] , true, true, false, false, false, false, true, ['eina'], []], +['embryo' ,[] , false, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], +['eio' ,[] , false, true, false, false, true, true, true, ['eina', 'eet'], []], +['efreet' ,[] , false, false, true, false, false, false, true, ['eina', 'efl', 'eo'], []], +['ecore_imf_evas' ,[] , false, true, false, false, false, false, true, ['eina', 'efl', 'eo'], []], +['ephysics' ,['physics'] , false, true, false, false, false, false, true, ['eina', 'efl', 'eo'], []], +['edje' ,[] , false, true, true, false, true, true, true, ['evas', 'eo', 'efl', lua_pc_name], []], +['emotion' ,[] , true, true, false, false, true, true, true, ['eina', 'efl', 'eo'], []], +['ethumb' ,[] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], +['ethumb_client' ,[] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []], +['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], ['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, false, ['eina', 'efl', 'eo', 'evas', 'ecore'], []], ['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', 'luajit'], []], ['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []], @@ -357,6 +357,10 @@ ecore_audio = declare_dependency() test_dirs = [] example_dirs = [] +efl_one_parts = [] +efl_one_deps = [] +efl_one_eo_deps = [] +efl_one_include_dirs = [] tmp_empty = declare_dependency() foreach package : subprojects @@ -406,6 +410,28 @@ foreach package : subprojects set_variable(package_name + '_eot_files', pub_eo_types_files) set_variable(package_name + '_header_subdirs', package_header_subdirs) set_variable(package_name + '_eo_subdirs', package_eo_subdirs) + if (package[8] and get_option('efl-one')) + src = get_variable(package_name+'_src') + external_deps = get_variable(package_name+'_ext_deps') + efl_one_include_dirs += [include_directories('.'), include_directories(join_paths(local_lib, package_name))] + + foreach subdirs : package_eo_subdirs + efl_one_include_dirs += include_directories(join_paths(local_lib, package_name)) + endforeach + + tmp = static_library('efl_one_part_'+package_name, + src, pub_eo_file_target, priv_eo_file_target, + include_directories: efl_one_include_dirs, + dependencies: external_deps + efl_one_eo_deps, + c_args : package_c_args, + ) + # dependency for all the .eo file targets + efl_one_eo_deps += declare_dependency( + sources: pub_eo_file_target, + ) + efl_one_deps += external_deps + efl_one_parts += tmp + endif endif #special case for eolian, this is never efl-one, but will be required in the library if (package_name == 'eolian') @@ -498,9 +524,20 @@ endif foreach package : subprojects package_name = package[0] if package[1].length() == 0 or get_option(package[1][0]) + dir_package_include = join_paths(dir_include, package_version_name) + dir_package_modules = join_paths(dir_lib, package_name, 'modules') + package_c_args = [ + '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"', + '-DNEED_RUN_IN_TREE=1', + '-DEFL_BUILD=1', + ] if (package[2]) subdir(join_paths(local_module, package_name)) endif + package_c_args = [ + '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"', + '-DNEED_RUN_IN_TREE=1', + ] if (package[4] and package_name != 'eolian') subdir(join_paths(local_bin, package_name)) endif @@ -523,13 +560,21 @@ if get_option('build-tests') check = dependency('check') subdir(join_paths('src', 'tests')) foreach test : test_dirs - subdir(join_paths(local_tests, test)) + package_c_args = [ + '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, test)+'"', + '-DNEED_RUN_IN_TREE=1', + ] + subdir(join_paths(local_tests, test)) endforeach endif if get_option('build-examples') foreach example : example_dirs - subdir(join_paths(local_examples, example)) + package_c_args = [ + '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, example)+'"', + '-DNEED_RUN_IN_TREE=1', + ] + subdir(join_paths(local_examples, example)) endforeach endif diff --git a/meson_options.txt b/meson_options.txt index 0d07d396fc..159f2c2649 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -364,3 +364,9 @@ option('mono-friend-assemblies', value : [], description : 'List of friend assemblies that can access efl_mono assembly\'s internal types and members.' ) + +option('efl-one', + type: 'boolean', + value : false, + description : 'Build special set of .so´s as a single .so' +) diff --git a/src/lib/ecore_evas/meson.build b/src/lib/ecore_evas/meson.build index 554c77cf44..2ce2b0fcd2 100644 --- a/src/lib/ecore_evas/meson.build +++ b/src/lib/ecore_evas/meson.build @@ -52,3 +52,6 @@ ecore_evas = declare_dependency( install_headers(ecore_evas_header_src, install_dir : dir_package_include, ) + +#a custom directory that must be added to efl_one +efl_one_include_dirs += [include_directories(join_paths('..', '..', 'modules', 'evas', 'engines', 'buffer'))] diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index 5799685e87..0ff0535e4f 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -320,3 +320,5 @@ install_headers(evas_header_src, pub_eo_files = [] package_eo_subdirs += ['canvas', 'gesture'] package_header_subdirs += ['canvas', 'gesture'] +#special case becase evas has a more structures subfolder +efl_one_include_dirs += evas_include_directories