forked from enlightenment/efl
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:
parent
a974c864ad
commit
c8c374ef48
|
@ -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'
|
||||
]
|
||||
|
||||
|
|
|
@ -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
|
|
@ -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')
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue