meson: make source and build_root functions version specific

This commit is contained in:
Dmitri Chudinov 2023-12-04 19:22:49 +05:00
parent 9d7fc64ca3
commit c7007dd50b
Signed by: dimmus
GPG Key ID: D4AED7D0CD0B767C
23 changed files with 77 additions and 68 deletions

View File

@ -109,12 +109,12 @@ foreach text_filter_property : text_filter_properties
font = text_filter_property[1]
size = text_filter_property[2]
name = text_filter_property[3]
filter_code = run_command('cat', join_paths(meson.source_root(), 'src', 'examples', 'evas', 'filters', 'filter_'+name+'.lua'))
filter_code = run_command('cat', join_paths(source_root, 'src', 'examples', 'evas', 'filters', 'filter_'+name+'.lua'), check: false)
doc_target += custom_target('preview_text_filters_'+name,
command: [
env, 'EFL_RUN_IN_TREE=1',
'EFL_EVAS_FILTER_LUA_PREFIX=' + join_paths(meson.source_root(), 'src', 'lib', 'evas'),
'EFL_EVAS_FILTER_LUA_PREFIX=' + join_paths(source_root, 'src', 'lib', 'evas'),
preview_text_filter.full_path(), text, filter_code.stdout(), '@OUTPUT@', font, size
],
depends: preview_text_filter,
@ -132,7 +132,7 @@ foreach widget_preview : widget_previews
dependencies: elementary,
build_by_default: false,
c_args : [
'-DPACKAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DPACKAGE_DATA_DIR="'+join_paths(source_root, 'data', 'elementary')+'"',
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DDOCW_DIR="'+meson.current_build_dir()+'"']
@ -152,7 +152,7 @@ foreach widget_preview : widget_previews
widget_executable = get_variable(binary)
screen_shot_dir = join_paths(meson.build_root(), 'html', 'img', 'widget', directory)
screen_shot_dir = join_paths(build_root, 'html', 'img', 'widget', directory)
create_preview = custom_target('widget_preview_'+('_'.join([directory, ss, x, y])),
command: [shot_sh, screen_shot_dir, ss, widget_executable.full_path(), x, y],
@ -181,7 +181,7 @@ doc_target += custom_target('doxygen',
)
compress_target = custom_target('package_doc_tar',
command: [tar, '-C', meson.build_root(), '--xz', '-cf', 'efl-'+meson.project_version()+'-doc.tar.xz', 'html', 'man'],
command: [tar, '-C', build_root, '--xz', '-cf', 'efl-'+meson.project_version()+'-doc.tar.xz', 'html', 'man'],
output: 'efl-'+meson.project_version()+'-doc.tar.xz',
depends: [doc_target],
build_by_default: false
@ -195,8 +195,8 @@ run_target('doc',
doxyfile_conf = configuration_data()
doxyfile_conf.merge_from(config_h)
doxyfile_conf.set('srcdir', meson.current_source_dir())
doxyfile_conf.set('top_builddir', meson.build_root())
doxyfile_conf.set('top_srcdir', meson.source_root())
doxyfile_conf.set('top_builddir', build_root)
doxyfile_conf.set('top_srcdir', source_root)
configure_file(
input: 'Doxyfile.in',

View File

@ -80,7 +80,7 @@ function_checks = [
['dirfd', ['dirent.h sys/types.h']],
['fchmod', ['sys/stat.h']],
['fcntl', ['fcntl.h']],
['fork', ['unistd.h']],
# ['fork', ['unistd.h']],
['fpathconf', ['unistd.h']],
['geteuid', ['unistd.h']],
['getpagesize', ['unistd.h']],

View File

@ -4,6 +4,14 @@ project('efl', ['c','cpp'],
meson_version : '>=0.50'
)
if meson.version().version_compare('>=0.56')
source_root = meson.project_source_root()
build_root = meson.project_build_root()
else
source_root = meson.source_root()
build_root = meson.build_root()
endif
if host_machine.system() == 'darwin'
add_languages('objc')
endif
@ -141,7 +149,7 @@ config_h.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project
config_h.set_quoted('PACKAGE_NAME', meson.project_name())
config_h.set_quoted('PACKAGE_BIN_DIR', dir_bin)
config_h.set_quoted('PACKAGE_LIB_DIR', dir_lib)
config_h.set_quoted('PACKAGE_SRC_DIR', meson.source_root())
config_h.set_quoted('PACKAGE_SRC_DIR', source_root)
config_h.set_quoted('PACKAGE_BUILD_DIR', meson.current_build_dir())
config_h.set_quoted('PACKAGE_SYSCONF_DIR', dir_sysconf)
config_h.set_quoted('BINDIR', dir_bin)
@ -487,15 +495,15 @@ foreach package : subprojects
requires : package[9],
variables : package_pc_variables
)
if package_name == 'ethumb_client'
pkgconfig.generate(tmp_lib,
name : package_name,
subdirs : [package_version_name] + tmp_package_subdirs,
version : version_major + '.' + version_minor + '.' + version_micro,
libraries : tmp_pub_deps,
requires : package[9],
)
endif
# if package_name == 'ethumb_client'
# pkgconfig.generate(tmp_lib,
# name : package_name,
# subdirs : [package_version_name] + tmp_package_subdirs,
# version : version_major + '.' + version_minor + '.' + version_micro,
# libraries : tmp_pub_deps,
# requires : package[9],
# )
# endif
endif
else
message(package_name+' disabled!')

View File

@ -14,5 +14,5 @@ eo_bench = executable('eo_bench',
)
benchmark('eo', eo_bench,
args: run_command('date','+%F_%s').stdout()
args: run_command('date','+%F_%s', check: false).stdout()
)

View File

@ -25,8 +25,8 @@ edjs = custom_target('player_entry',
install : true,
install_dir : 'share/exactness',
command : edje_cc_exe + [
'-id', join_paths(meson.source_root(), 'data', 'elementary', 'themes', 'img'),
'-sd', join_paths(meson.source_root(), 'data', 'elementary', 'themes', 'snd'),
'-id', join_paths(source_root, 'data', 'elementary', 'themes', 'img'),
'-sd', join_paths(source_root, 'data', 'elementary', 'themes', 'snd'),
'@INPUT@', '@OUTPUT@'],
depends : edje_depends)

View File

@ -9,7 +9,7 @@ mono_files += files(
bash = find_program('bash')
map = run_command('map_generate.sh').stdout()
map = run_command('map_generate.sh', check: false).stdout()
efl_libs = configuration_data()

View File

@ -243,7 +243,7 @@ if (get_option('dotnet'))
lib_csproj_conf_data.set('NETSTANDARD_VERSION', dotnet_standard_version)
lib_csproj_conf_data.set('BINDING_SRC', meson.current_source_dir())
lib_csproj_conf_data.set('CA_RULESET', join_paths(meson.build_root(), '@0@'.format(ca_ruleset)))
lib_csproj_conf_data.set('CA_RULESET', join_paths(build_root, '@0@'.format(ca_ruleset)))
lib_csproj_conf_data.set('EFL_VERSION', meson.project_version())
if get_option('mono-beta')
@ -299,7 +299,7 @@ else
cs_args : extra_cs_args + ['-doc:' + efl_mono_xml_doc, '-warnaserror+'],
)
meson.add_install_script(join_paths(meson.source_root(), 'meson', 'meson_csharp_docs.sh'),
meson.add_install_script(join_paths(source_root, 'meson', 'meson_csharp_docs.sh'),
efl_mono_xml_doc,
efl_mono_install_dir)
endif

View File

@ -1,4 +1,4 @@
eolian_include_directories += ['-I', join_paths(meson.source_root(), 'src', 'lib')]
eolian_include_directories += ['-I', join_paths(source_root, 'src', 'lib')]
pub_legacy_eo_files = [
'efl_gfx_fill.eo',

View File

@ -78,18 +78,18 @@ deprecated_efreet_trash_lib = library('efreet_trash',
install: true,
version : meson.project_version()
)
pkgconfig.generate(efreet_lib,
name : 'efreet-mime',
description : 'Deprecated, please just use efreet',
subdirs : package_version_name,
version : version_major + '.' + version_minor + '.' + version_micro,
libraries : efreet_pub_deps,
)
# pkgconfig.generate(efreet_lib,
# name : 'efreet-mime',
# description : 'Deprecated, please just use efreet',
# subdirs : package_version_name,
# version : version_major + '.' + version_minor + '.' + version_micro,
# libraries : efreet_pub_deps,
# )
pkgconfig.generate(efreet_lib,
name : 'efreet-trash',
description : 'Deprecated, please just use efreet',
subdirs : package_version_name,
version : version_major + '.' + version_minor + '.' + version_micro,
libraries : efreet_pub_deps,
)
# pkgconfig.generate(efreet_lib,
# name : 'efreet-trash',
# description : 'Deprecated, please just use efreet',
# subdirs : package_version_name,
# version : version_major + '.' + version_minor + '.' + version_micro,
# libraries : efreet_pub_deps,
# )

View File

@ -235,9 +235,8 @@ elif get_option('buildtype') == 'release'
want_cow_magic=false
endif
if with_max_log_level != -1
config_h.set('EINA_LOG_LEVEL_MAXIMUM', with_max_log_level)
endif
# config_h.set('EINA_LOG_LEVEL_MAXIMUM', 3)
config_h.set('EINA_LOG_LEVEL', 1)
if stringshare_usage
config_h.set('EINA_STRINGSHARE_USAGE', 1)

View File

@ -261,7 +261,7 @@ eolian_include_directories += ['-I', meson.current_source_dir()]
embed_script = find_program('config_embed')
embed_config = custom_target('create_embedded_default_config',
input: join_paths(meson.source_root(), 'data', 'elementary', 'config', 'standard', 'base.src.in'),
input: join_paths(source_root, 'data', 'elementary', 'config', 'standard', 'base.src.in'),
output: 'elm_default_config.x',
command: [embed_script, '@INPUT@', '@OUTPUT@']
)
@ -955,7 +955,7 @@ elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_inp
elementary_ext_deps = [atspi, dl, intl, buildsystem_simple]
elm_options = configuration_data()
config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root())
config_h.set_quoted('ELM_TOP_BUILD_DIR', build_root)
config_h.set_quoted('MODULES_PATH', join_paths(dir_lib, 'modules'))
config_h.set_quoted('ELEMENTARY_BASE_DIR', get_option('elementary-base-dir'))
config_h.set_quoted('ICON_DIR', join_paths(dir_lib, 'icons'))

View File

@ -239,7 +239,7 @@ foreach loader_inst : evas_image_loaders_file
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'static'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
evas_static_list += [declare_dependency(
sources: file,
@ -258,7 +258,7 @@ foreach loader_inst : evas_image_savers_file
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'static'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
evas_static_list += [declare_dependency(
sources: file,
@ -275,7 +275,7 @@ foreach loader_inst : evas_vg_loaders_file
loader_deps = loader_inst[1]
if (get_option('evas-loaders-disabler').contains(loader) == false)
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'vg_loaders', loader, 'evas_vg_load_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'vg_loaders', loader, 'evas_vg_load_'+loader+'.c')
evas_static_list += [declare_dependency(
sources: file,
dependencies: loader_deps,
@ -286,7 +286,7 @@ endforeach
foreach loader : evas_vg_savers_file
if (get_option('evas-loaders-disabler').contains(loader) == false)
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'vg_savers', loader, 'evas_vg_save_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'vg_savers', loader, 'evas_vg_save_'+loader+'.c')
evas_static_list += [declare_dependency(
sources: file,
dependencies: [eo, ector, emile, freetype, eet],

View File

@ -5,7 +5,7 @@ foreach loader_inst : evas_image_loaders_file
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'shared'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c')
evas_package_modules = join_paths(dir_lib, 'evas', 'modules')
mod_install_dir = join_paths(evas_package_modules, 'image_loaders', loader, version_name)
shared_module('shared_loader_'+loader, file,

View File

@ -5,7 +5,7 @@ foreach loader_inst : evas_image_savers_file
if get_option('evas-loaders-disabler').contains(loader) == false
if loader_type == 'shared'
config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
file = join_paths(source_root, 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c')
evas_package_modules = join_paths(dir_lib, 'evas', 'modules')
mod_install_dir = join_paths(evas_package_modules, 'image_savers', loader, version_name)
shared_module('shared_saver_'+loader, file,

View File

@ -10,7 +10,7 @@ buildsystem_lib = static_library('buildsystem',
dependencies : [eina, efl],
include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))],
install: false,
c_args : ['-DPACKAGE_SRC_DIR="'+ meson.source_root() +'"'],
c_args : ['-DPACKAGE_SRC_DIR="'+ source_root +'"'],
)
buildsystem = declare_dependency(

View File

@ -26,7 +26,7 @@ foreach edc_file : edc_files
input : edc_file,
output : '@BASENAME@.edj',
command : edje_cc_exe + [ '-beta', '-fastcomp',
'-id', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'),
'-id', join_paths(source_root, 'src', 'tests', 'emotion', 'data'),
'-fd', meson.current_source_dir(),
'-sd', meson.current_source_dir(),
'-vd', meson.current_source_dir(),

View File

@ -7,7 +7,7 @@ foreach edc_file : edc_files
input : edc_file,
output : '@BASENAME@.edj',
command : edje_cc_exe + [ '-beta', '-fastcomp',
'-id', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'),
'-id', join_paths(source_root, 'src', 'tests', 'emotion', 'data'),
'-fd', meson.current_source_dir(),
'-sd', meson.current_source_dir(),
'-vd', meson.current_source_dir(),

View File

@ -94,7 +94,7 @@ if get_option('dotnet')
dotnet_test_conf_data.set('BINDING_BUILD', join_paths(meson.current_build_dir(),
'..', '..', 'bindings', 'mono'))
dotnet_test_conf_data.set('BINDING_TEST_SRC', meson.current_source_dir())
dotnet_test_conf_data.set('CA_RULESET', join_paths(meson.build_root(), '@0@'.format(ca_ruleset)))
dotnet_test_conf_data.set('CA_RULESET', join_paths(build_root, '@0@'.format(ca_ruleset)))
dotnet_test_conf_data.set('NETCOREAPP_VERSION', dotnet_core_app_version)

View File

@ -113,8 +113,8 @@ elementary_suite = executable('elementary_suite',
c_args : [
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(source_root, 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(build_root, 'data', 'elementary')+'"',
]
)
@ -177,8 +177,8 @@ efl_ui_suite = executable('efl_ui_suite',
c_args : [
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(source_root, 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(build_root, 'data', 'elementary')+'"',
]
)
@ -193,7 +193,8 @@ executable('efl_ui_window_cnp_dnd_slave',
)
test('elementary-suite', elementary_suite,
env : test_env
env : test_env,
timeout: 60
)
test('efl-ui-suite', efl_ui_suite,
@ -203,4 +204,5 @@ test('efl-ui-suite', efl_ui_suite,
install_data(files(['testdiff.diff', 'testfile-windows.txt', 'testfile-withblanks.txt', 'testfile.txt']),
install_dir : join_paths(dir_data, 'elementary')
)
subdir('spec')
# subdir('spec')

View File

@ -38,8 +38,8 @@ efl_ui_behavior_suite = executable('efl_ui_spec_suite',
c_args : [
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"',
'-DELM_IMAGE_DATA_DIR="'+join_paths(source_root, 'data', 'elementary')+'"',
'-DELM_TEST_DATA_DIR="'+join_paths(build_root, 'data', 'elementary')+'"',
]
)

View File

@ -6,10 +6,10 @@ elua_suite_src = [
'elua_lib.c'
]
elua_bindings_dir = join_paths(meson.source_root(), 'src', 'bindings', 'lua')
elua_core_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'core')
elua_modules_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'modules')
elua_apps_dir = join_paths(meson.source_root(), 'src', 'tests', 'elua', 'data', 'apps')
elua_bindings_dir = join_paths(source_root, 'src', 'bindings', 'lua')
elua_core_dir = join_paths(source_root, 'src', 'scripts', 'elua', 'core')
elua_modules_dir = join_paths(source_root, 'src', 'scripts', 'elua', 'modules')
elua_apps_dir = join_paths(source_root, 'src', 'tests', 'elua', 'data', 'apps')
elua_suite = executable('elua_suite',
elua_suite_src,

View File

@ -32,7 +32,7 @@ eolian_suite = executable('eolian_suite',
c_args : [
'-DEOLIAN_GEN="'+eolian_gen_path+'"',
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DEO_SRC_DIR="'+join_paths(meson.source_root(), 'src', 'lib')+'"',
'-DEO_SRC_DIR="'+join_paths(source_root, 'src', 'lib')+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
)

View File

@ -65,7 +65,7 @@ eolian_cxx_suite = executable('eolian_cxx_suite',
# package_c_args contains -D definitions for the package
cpp_args : package_c_args +[
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DEO_SRC_DIR="'+join_paths(meson.source_root(), 'src', 'lib')+'"',
'-DEO_SRC_DIR="'+join_paths(source_root, 'src', 'lib')+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
)