meson: move build definitions of software_generic to libevas

Summary:
with this we don't have any static module anymore in the engine
directory. This means either *all* modules in the enignes directory are
static OR shared. There is no mixture anymore. This is a requirement for
the directory to be build whenever we want it to be build.
Depends on D8667

Reviewers: zmike, stefan_schmidt, cedric, vtorri

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8668
This commit is contained in:
Marcel Hollerbach 2019-04-19 14:39:22 -04:00 committed by Mike Blumenkrantz
parent a974c864ad
commit c8c374ef48
17 changed files with 73 additions and 83 deletions

View File

@ -12,16 +12,21 @@
# For now loaders and savers are ALWAYS build statically.
#
rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 'software_generic')
evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl]
pub_eo_file_target = []
priv_eo_files = []
evas_include_directories = []
pub_eo_files = []
pub_evas_eo_files = []
pub_evas_eot_files = []
pub_legacy_eo_files = [
]
evas_src = []
subdir('software_generic')
foreach eo_file : pub_legacy_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
@ -37,15 +42,11 @@ foreach eo_file : pub_legacy_eo_files
'-gchd', '@INPUT@'])
endforeach
pub_eo_files = [
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
pub_eo_file_target += custom_target('eolian_gen_' + eo_file.underscorify(),
input : eo_file,
output : [eo_file + '.h'],
depfile : eo_file + '.d',
output : [eo_file.underscorify() + '.h'],
depfile : eo_file.underscorify() + '.d',
install : true,
install_dir : dir_package_include,
command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
@ -75,6 +76,8 @@ endforeach
eolian_include_directories += ['-I', meson.current_source_dir()]
evas_src += pub_eo_file_target
evas_header_src = [
'Evas.h',
'Evas_Common.h',
@ -84,7 +87,7 @@ evas_header_src = [
'Evas_Loader.h',
]
evas_include_directories = [
evas_include_directories += [
include_directories('.'),
include_directories('common'),
include_directories('common3d'),
@ -94,7 +97,7 @@ evas_include_directories = [
vg_common_inc_dir
]
evas_src = [
evas_src += [
'main.c'
]

View File

@ -1,6 +1,6 @@
engine_include_dir += include_directories('.')
evas_include_directories += include_directories(join_paths('..', rel_evas_modules, 'filters'))
engine_src += files([
raw_evas_src = [
'evas_engine_filter.h',
'evas_filter_blend.c',
'evas_filter_blur.c',
@ -10,4 +10,8 @@ engine_src += files([
'evas_filter_fill.c',
'evas_filter_mask.c',
'evas_filter_transform.c',
])
]
foreach file : raw_evas_src
evas_src += files(join_paths('..', rel_evas_modules, 'filters', file))
endforeach

View File

@ -0,0 +1,36 @@
raw_evas_src = [
'evas_engine.c',
'Evas_Engine_Software_Generic.h',
'Evas_Engine_Software_Shared.h',
'evas_native_tbm.c',
'evas_native_dmabuf.c',
'evas_ector_software_buffer.c',
'evas_native_common.h',
'evas_ector_software.h',
]
gen_src = []
raw_pub_eo_files = [
'evas_ector_software_buffer.eo'
]
foreach eo_file : raw_pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file.underscorify(),
input : join_paths(rel_evas_modules, eo_file),
output : [eo_file + '.h'],
depfile : eo_file + '.d',
install : true,
install_dir : dir_package_include,
command : eolian_gen + [ '-I', join_paths(meson.current_source_dir(), rel_evas_modules), 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'),
'-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
'-gchd', '@INPUT@'])
endforeach
foreach file : raw_evas_src
evas_src += files(join_paths(rel_evas_modules, file))
endforeach
subdir('filters')

View File

@ -13,7 +13,7 @@ install_headers('Evas_Engine_Buffer.h',
install_dir : dir_package_include,
)
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -7,7 +7,7 @@ engine_src = files([
engine_deps = [ecore_drm2, libdrm]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -9,7 +9,7 @@ engine_src = files([
engine_deps = [ecore_fb]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -7,7 +7,7 @@ engine_src = files([
engine_deps = [ecore_cocoa, gl_deps]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -7,7 +7,7 @@ engine_src = files([
engine_deps = [ecore_drm2, libdrm, gl_deps, dependency('gbm')]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -69,10 +69,10 @@ engine_deps = [gl_deps]
engine_include_dir = include_directories(join_paths('..','software_generic'), join_paths('..', 'gl_common'))
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps + [software_generic],
dependencies : [eina, evas_pre] + engine_deps,
install : true,
install_dir : mod_install_dir,
name_suffix : sys_mod_extension

View File

@ -7,7 +7,7 @@ engine_src = files([
engine_deps = [ecore_x_deps, gl_deps]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -9,7 +9,7 @@ engine_src = files([
engine_deps = []
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -9,7 +9,7 @@ engine_src = files([
engine_deps = []
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -1,45 +0,0 @@
engine_src = files([
'evas_engine.c',
'Evas_Engine_Software_Generic.h',
'Evas_Engine_Software_Shared.h',
'evas_native_tbm.c',
'evas_native_dmabuf.c',
'evas_ector_software_buffer.c',
'evas_native_common.h',
'evas_ector_software.h',
])
gen_src = []
pub_eo_files = [
'evas_ector_software_buffer.eo'
]
subdir('filters')
foreach eo_file : pub_eo_files
gen_src += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
depfile : eo_file + '.d',
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'),
'-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
'-gchd', '@INPUT@'])
endforeach
engine_src += gen_src
engine_deps = [draw, dl]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,
install : true,
install_dir : mod_install_dir,
name_suffix : sys_mod_extension
)
module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
endif

View File

@ -28,7 +28,7 @@ config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
#it looks weird but is right, gl_deps is needed for evas_x_egl.c
engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps]
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -9,7 +9,7 @@ engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps]
engine_include_dir = include_directories(join_paths('..','wayland_common'))
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -8,7 +8,7 @@ engine_deps = [ecore_wl2]
engine_include_dir = include_directories(join_paths('..','wayland_common'))
if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
if get_option('evas-modules') == 'shared'
shared_module(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,

View File

@ -1,6 +1,5 @@
engines = [
['buffer', []],
['software_generic', []],
['fb', ['fb']],
['drm', ['drm']],
['software_x11', ['x11']],
@ -21,7 +20,6 @@ if get_option('opengl') == 'es-egl'
endif
#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later
evas_force_static = ['software_generic']
evas_static_list = []
#fixed dependencies by efl
@ -60,20 +58,11 @@ foreach engine_conf : engines
subdir(join_paths('engines', engine))
if get_option('evas-modules') == 'static' or evas_force_static.contains(engine)
if get_option('evas-modules') == 'static'
tmp = static_library(mod_full_name, engine_src,
include_directories : config_dir + [engine_include_dir],
dependencies : [eina, evas_pre] + engine_deps,
)
if engine == 'software_generic'
software_generic = declare_dependency(
include_directories: engine_include_dir,
sources : gen_src,
dependencies : [eina, evas_pre] + engine_deps,
link_with : tmp
)
endif
evas_static_list += declare_dependency(
include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
link_with: tmp,
@ -94,3 +83,6 @@ foreach engine_conf : engines
config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
endif
endforeach
config_h.set('EVAS_STATIC_BUILD_SOFTWARE_GENERIC', '1')
config_h.set('BUILD_ENGINE_SOFTWARE_GENERIC', '1')