summaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorJoão Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>2020-07-01 09:23:53 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-07-01 10:13:05 +0200
commit98fd37e768789ce9008a539d79b6f79ada393b90 (patch)
tree1e5195d8f073a82ae18ef13f345e71d9379ddded /meson.build
parent1e06c01f823ce652de5d9b21c19d2677d2788844 (diff)
downloadefl-98fd37e768789ce9008a539d79b6f79ada393b90.tar.gz
Meson.build cleanup.
Summary: This is a 8 commit patch, but only for a while - after agreeing with each of the changes, it shall be squashed into a single commit. I want to make further changes on meson.build (maybe I can end up simplifying the build system, or just let things more organized in the end) and thought that starting with a cleanup would be a good first step. The changes are: 1. build: set arguments scope to project instead of globally If we set arguments globally, it may conflict with other builds - specially considering [meson's subprojects feature](https://mesonbuild.com/Subprojects.html). Setting to project arguments ensures we are only considering EFL and not leaking unwanted flags. 2. build: Fix spacing and indent Mostly because it is not well standardized during the file - sometimes there's spaces between tokens, sometimes there is not, etc. The same applies to indent. 3. build: move test environment closer to test commands Just as a matter of organization. If we're doing things for tests that don't impact other stuff, then leave it when tests are handled. 4. build: Remove unnecessary parenthesis and == true comparisons Less noisy redundancy: `true` is already true, and `false` is already false, no need to re-check. Besides, reading `if sys_windows` and `if sys_windows == true` shouldn't have different effects, as the first you can read as "if the system is windows". It gets better when you have `not` instead of `== false`, so for an example you could read `if not sys_windows` as "if it is not a windows system" more naturally. 5. build: Switch pc_files to dict Just thought it could stay a little better (since it works as a dict), specially in the `foreach` right after. 6. **[removed to a future patch]** build: Use meson's warning_level instead of hardcoded -Wall This way we ensure this is compiler-independant (and use the correct feature for that, since meson even warns when configuring the build dir). 7. build: Use language args from add_project_arguments properly instead of a loop The `language:` kwarg from `add_{project,global}_arguments` receives a list of languages, so no need for that loop. 8. **[removed to a future patch]** build: Use '/' instead of join_paths As it [is recommended by meson since v0.49](https://mesonbuild.com/Release-notes-for-0-49-0.html#joining-paths-with-) (and stays clearer IMO, specially since that's how some languages are adopting path separation, e.g. C++'s filesystem stdlib). Reviewers: bu5hm4n Subscribers: vtorri, cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11994
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build305
1 files changed, 154 insertions, 151 deletions
diff --git a/meson.build b/meson.build
index b2c2d7ff5d..f7f392da75 100644
--- a/meson.build
+++ b/meson.build
@@ -10,19 +10,12 @@ endif
pkgconfig = import('pkgconfig')
-test_env = environment()
-test_env.set('EFL_RUN_IN_TREE', '1')
-
-if get_option('b_sanitize') == 'address'
- test_env.set('ASAN_OPTIONS', 'detect_leaks=0:detect_odr_violation=0')
-endif
-
version_arr = meson.project_version().split('.')
version_major = version_arr[0]
version_minor = version_arr[1]
version_micro = version_arr[2]
-version_name = 'v-'+version_major + '.' + version_minor
+version_name = 'v-' + version_major + '.' + version_minor
cc = meson.get_compiler('c')
host_os = host_machine.system()
@@ -89,46 +82,46 @@ dev_cflags_try = [
]
foreach cf: dev_cflags_try
- if cc.has_argument(cf) == true
+ if cc.has_argument(cf)
dev_cflags += cf
endif
endforeach
-add_global_arguments(dev_cflags, language: 'c')
-add_global_arguments(dev_cflags, language: 'cpp')
-
-
-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_BETA_API_SUPPORT=1', language: lang)
- add_global_arguments('-DNEED_RUN_IN_TREE=1', language: lang)
- add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: lang)
- if sys_windows == true
- add_global_arguments('-D_POSIX_C_SOURCE=200809L', language: lang)
- add_global_arguments('-DDLL_EXPORT=1', language: lang)
- if (get_option('windows-version') == 'vista')
- add_global_arguments('-DWINVER=0x060', language: lang)
- add_global_arguments('-D_WIN32_WINNT=0x0600', language: lang)
- elif (get_option('windows-version') == 'win7')
- add_global_arguments('-DWINVER=0x0601', language: lang)
- add_global_arguments('-D_WIN32_WINNT=0x0601', language: lang)
- elif (get_option('windows-version') == 'win8')
- add_global_arguments('-DWINVER=0x0602', language: lang)
- add_global_arguments('-D_WIN32_WINNT=0x0602', language: lang)
- elif (get_option('windows-version') == 'win81')
- add_global_arguments('-DWINVER=0x0603', language: lang)
- add_global_arguments('-D_WIN32_WINNT=0x0603', language: lang)
- elif (get_option('windows-version') == 'win10')
- add_global_arguments('-DWINVER=0x0A00', language: lang)
- add_global_arguments('-D_WIN32_WINNT=0x0A00', language: lang)
- else
- error('Version of targetted Windows incorrect')
- endif
- add_global_arguments('-D__USE_MINGW_ANSI_STDIO', language: lang)
+
+add_project_arguments(dev_cflags, language: 'c')
+add_project_arguments(dev_cflags, language: 'cpp')
+
+
+langs = ['c', 'objc', 'cpp']
+add_project_arguments('-DHAVE_CONFIG_H=1', language: langs)
+add_project_arguments('-D_GNU_SOURCE=1', language: langs)
+add_project_arguments('-DEFL_BETA_API_SUPPORT=1', language: langs)
+add_project_arguments('-DNEED_RUN_IN_TREE=1', language: langs)
+add_project_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: langs)
+if sys_windows
+ add_project_arguments('-D_POSIX_C_SOURCE=200809L', language: langs)
+ add_project_arguments('-DDLL_EXPORT=1', language: langs)
+ if get_option('windows-version') == 'vista'
+ add_project_arguments('-DWINVER=0x060', language: langs)
+ add_project_arguments('-D_WIN32_WINNT=0x0600', language: langs)
+ elif get_option('windows-version') == 'win7'
+ add_project_arguments('-DWINVER=0x0601', language: langs)
+ add_project_arguments('-D_WIN32_WINNT=0x0601', language: langs)
+ elif get_option('windows-version') == 'win8'
+ add_project_arguments('-DWINVER=0x0602', language: langs)
+ add_project_arguments('-D_WIN32_WINNT=0x0602', language: langs)
+ elif get_option('windows-version') == 'win81'
+ add_project_arguments('-DWINVER=0x0603', language: langs)
+ add_project_arguments('-D_WIN32_WINNT=0x0603', language: langs)
+ elif get_option('windows-version') == 'win10'
+ add_project_arguments('-DWINVER=0x0A00', language: langs)
+ add_project_arguments('-D_WIN32_WINNT=0x0A00', language: langs)
+ else
+ error('Version of targetted Windows incorrect')
endif
-endforeach
+ add_project_arguments('-D__USE_MINGW_ANSI_STDIO', language: langs)
+endif
-if sys_sun == true
+if sys_sun
# for getpwuid_r()
add_global_arguments('-D_POSIX_PTHREAD_SEMANTICS', language: 'c')
endif
@@ -162,7 +155,7 @@ extern char **environ;
void func(void) { printf("%p\n", environ); }
'''
-if cc.compiles(code, args : '-lc', name : 'environ check') == true
+if cc.compiles(code, args : '-lc', name : 'environ check')
config_h.set10('HAVE_ENVIRON', true)
endif
@@ -185,21 +178,21 @@ if get_option('native-arch-optimization')
elif host_machine.cpu_family() == 'arm'
cpu_neon = true
config_h.set10('BUILD_NEON', true)
- add_global_arguments('-mfpu=neon', language: 'c')
- add_global_arguments('-ftree-vectorize', language: 'c')
+ add_project_arguments('-mfpu=neon', language: 'c')
+ add_project_arguments('-ftree-vectorize', language: 'c')
message('ARM build - NEON enabled')
elif host_machine.cpu_family() == 'aarch64'
cpu_neon = true
cpu_neon_intrinsics = true
config_h.set10('BUILD_NEON', true)
config_h.set10('BUILD_NEON_INTRINSICS', true)
- add_global_arguments('-ftree-vectorize', language: 'c')
+ add_project_arguments('-ftree-vectorize', language: 'c')
native_arch_opt_c_args = [ '-ftree-vectorize' ]
message('ARM64 build - NEON + intrinsics enabled')
elif host_machine.cpu_family() == 'ppc' or host_machine.cpu_family() == 'ppc64'
config_h.set10('BUILD_ALTIVEC', true)
- add_global_arguments('-ftree-vectorize', language: 'c')
- add_global_arguments('-maltivec', language: 'c')
+ add_project_arguments('-ftree-vectorize', language: 'c')
+ add_project_arguments('-maltivec', language: 'c')
message('PPC/POWER build - ALTIVEC enabled')
endif
endif
@@ -207,33 +200,33 @@ endif
config_dir = [include_directories('.')]
eolian_include_directories = []
-if sys_linux == true or sys_bsd == true or sys_sun == true
+if sys_linux or sys_bsd or sys_sun
sys_lib_extension = 'so'
sys_exe_extension = ''
sys_mod_extension = 'so'
-elif sys_windows == true
+elif sys_windows
sys_lib_extension = 'dll'
sys_exe_extension = 'exe'
sys_mod_extension = 'dll'
-elif sys_osx == true
+elif sys_osx
sys_lib_extension = 'dylib'
sys_exe_extension = ''
sys_mod_extension = 'so'
config_h.set('environ', '(*_NSGetEnviron())')
else
- error('System '+host_machine.system()+' not known')
+ error('System ' + host_machine.system() + ' not known')
endif
if host_os == 'freebsd' or host_os == 'dragonfly'
-# This is necessary. We MUST use OpenSSL in base as bringing in
-# from ports can cause major issues (2 copies of the same library).
+ # This is necessary. We MUST use OpenSSL in base as bringing in from ports
+ # can cause major issues (2 copies of the same library).
crypto = declare_dependency(link_args : [ '-lssl', '-lcrypto'])
config_h.set('HAVE_OPENSSL', '1')
-elif (get_option('crypto') == 'gnutls')
+elif get_option('crypto') == 'gnutls'
# gcrypt does not want to provide a pkg config file so we try the lib
crypto = [dependency('gnutls'), cc.find_library('gcrypt')]
config_h.set('HAVE_GNUTLS', '1')
-elif (get_option('crypto') == 'openssl')
+elif get_option('crypto') == 'openssl'
crypto = dependency('openssl')
config_h.set('HAVE_OPENSSL', '1')
endif
@@ -243,22 +236,22 @@ if get_option('crypto') != ''
config_h.set('HAVE_SIGNATURE', '1')
endif
-config_h.set_quoted('SHARED_LIB_SUFFIX', '.'+sys_lib_extension)
-config_h.set_quoted('MOD_SUFFIX', '.'+sys_mod_extension)
+config_h.set_quoted('SHARED_LIB_SUFFIX', '.' + sys_lib_extension)
+config_h.set_quoted('MOD_SUFFIX', '.' + sys_mod_extension)
if sys_exe_extension == ''
config_h.set_quoted('EXE_SUFFIX', '')
else
- config_h.set_quoted('EXE_SUFFIX', '.'+sys_exe_extension)
+ config_h.set_quoted('EXE_SUFFIX', '.' + sys_exe_extension)
endif
-if get_option('tslib') == true
+if get_option('tslib')
config_h.set('HAVE_TSLIB', '1')
endif
subdir('header_checks')
subdir('po')
-if get_option('wl') == true
+if get_option('wl')
subdir(join_paths('src', 'wayland_protocol'))
endif
@@ -267,13 +260,13 @@ ecore_evas_wayland_engine_include_dir = []
evas_static_list = []
luaold_interpreters = [
- ['lua', ['>=5.1.0','<5.3.0']],
- ['lua51', ['>=5.1.0','<5.2.0']],
- ['lua-5.1', ['>=5.1.0','<5.2.0']],
- ['lua5.1', ['>=5.1.0','<5.2.0']],
- ['lua52', ['>=5.2.0','<5.3.0']],
- ['lua-5.2', ['>=5.2.0','<5.3.0']],
- ['lua5.2', ['>=5.2.0','<5.3.0']],
+ ['lua', ['>=5.1.0', '<5.3.0']],
+ ['lua51', ['>=5.1.0', '<5.2.0']],
+ ['lua-5.1', ['>=5.1.0', '<5.2.0']],
+ ['lua5.1', ['>=5.1.0', '<5.2.0']],
+ ['lua52', ['>=5.2.0', '<5.3.0']],
+ ['lua-5.2', ['>=5.2.0', '<5.3.0']],
+ ['lua5.2', ['>=5.2.0', '<5.3.0']],
]
lua_pc_name = ''
@@ -284,7 +277,7 @@ if get_option('lua-interpreter') == 'lua'
foreach l : luaold_interpreters
lua = dependency(l[0], version: l[1], required:false)
lua_pc_name = l[0]
- if lua.found() == true
+ if lua.found()
break
endif
endforeach
@@ -307,63 +300,65 @@ else
lua_pc_name = 'luajit'
endif
-if sys_osx == true and get_option('lua-interpreter') == 'luajit'
-# luajit on macos is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy
+if sys_osx and get_option('lua-interpreter') == 'luajit'
+ # luajit on macro is broken, this means we need to generate our own
+ # dependency with our arguments, a library later still needs to link to
+ # luajit for the pagesize argument thingy
lua = declare_dependency(
include_directories: include_directories(lua.get_pkgconfig_variable('includedir')),
- link_args: ['-L'+lua.get_pkgconfig_variable('libdir'), '-l'+lua.get_pkgconfig_variable('libname')]
+ link_args: ['-L' + lua.get_pkgconfig_variable('libdir'), '-l' + lua.get_pkgconfig_variable('libname')]
)
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, 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, 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, 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, true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],
-['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', lua_pc_name], []],
-['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
-['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
-['exactness' ,[] , false, false, true, false, false, false, false, ['eina, evas, eet'], []],
+ # 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, 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, 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, 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, true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],
+ ['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', lua_pc_name], []],
+ ['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
+ ['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
+ ['exactness' ,[] , false, false, true, false, false, false, false, ['eina, evas, eet'], []],
]
# We generate Efl_Config.h and config.h later, they will be available here
@@ -373,8 +368,8 @@ config_dir += include_directories('.')
#the other modules require theire package
subdir(join_paths(local_module, 'eina'))
-#List of dependency objects that might be disabled due to configurations
-#If they are enabled, the object gets overwritten by the library file.
+# List of dependency objects that might be disabled due to configurations
+# If they are enabled, the object gets overwritten by the library file.
ecore_audio = declare_dependency()
test_dirs = []
@@ -391,28 +386,30 @@ foreach package : subprojects
package_version_name = '-'.join(package_name.split('_')) + '-' + version_major
automatic_pkgfile = true
if package[1].length() == 0 or get_option(package[1][0])
- config_h.set('HAVE_'+package_name.to_upper().underscorify(), '1')
+ config_h.set('HAVE_' + package_name.to_upper().underscorify(), '1')
dir_package_include = join_paths(dir_include, package_version_name)
dir_package_modules = join_paths(dir_lib, package_name, 'modules')
- #ensure that we really dont copy the eo file targets from a previous library
- #Those are the variables that can be used to reflect the libraries speical handlings
- # -> at the end is used to indicate where to find this variable outside of this for loop
+ # ensure that we really dont copy the eo file targets from a previous
+ # library Those are the variables that can be used to reflect the libraries
+ # speical handlings -> at the end is used to indicate where to find this
+ # variable outside of this for loop
- #public eo and eot files - which probebly have to be used later for bindings
+ # public eo and eot files - which probebly have to be used later for bindings
pub_eo_files = [] # -> package_name + '_eo_files'
pub_eo_types_files = [] # -> package_name + '_eot_files'
- #All subdirs where eo files that are listed in the pub_* variables can be found
- #For every element != '' a variable called package_name + '_' + subir + '_eot_files' and package_name + '_' + subir + '_eo_files' must exist.
+ # All subdirs where eo files that are listed in the pub_* variables can be
+ # found
+ # For every element != '' a variable called package_name + '_' + subir + '_eot_files' and package_name + '_' + subir + '_eo_files' must exist.
package_eo_subdirs = [''] # -> package_name + '_eo_subdirs'
- #All subdirs that should be included in order to include every requried header
+ # All subdirs that should be included in order to include every requried header
package_header_subdirs = [] # -> package_name + '_include_subdirs'
- #eo file targets, this list of targets can be used to ensure the files are created before accessed
+ # eo file targets, this list of targets can be used to ensure the files are created before accessed
pub_eo_file_target = []
- #private eo files target - never use this :)
+ # private eo files target - never use this :)
priv_eo_file_target = []
- #use this variable to store custom variables in that should be placed in the .pc file
+ # use this variable to store custom variables in that should be placed in the .pc file
package_pc_variables = []
foreach static_lib : package[10]
@@ -427,7 +424,7 @@ foreach package : subprojects
'-DNEED_RUN_IN_TREE=1',
'-DEFL_BUILD=1',
]
- if (package[3])
+ if package[3]
subdir(join_paths(local_lib, package_name))
set_variable(package_name + '_eo_files', pub_eo_files)
set_variable(package_name + '_eot_files', pub_eo_types_files)
@@ -466,20 +463,20 @@ foreach package : subprojects
subdir(join_paths(local_bin, package_name))
endif
endif
- if (package[6])
+ if package[6]
test_dirs += [package_name]
endif
- if (package[7])
+ if package[7]
example_dirs += [package_name]
endif
- set_variable('build_'+package_name.underscorify(), true)
+ set_variable('build_' + package_name.underscorify(), true)
# generate automatic pc files for libraries
- if automatic_pkgfile == true and package[3]
- tmp_lib = get_variable(package_name+'_lib')
- tmp_deps = get_variable(package_name+'_deps')
- tmp_pub_deps = get_variable(package_name+'_pub_deps')
+ if automatic_pkgfile and package[3]
+ tmp_lib = get_variable(package_name + '_lib')
+ tmp_deps = get_variable(package_name + '_deps')
+ tmp_pub_deps = get_variable(package_name + '_pub_deps')
tmp_package_subdirs = []
foreach subdir : package_header_subdirs
@@ -584,6 +581,14 @@ subdir(join_paths('data'))
if get_option('build-tests')
check = dependency('check')
+
+ test_env = environment()
+ test_env.set('EFL_RUN_IN_TREE', '1')
+
+ if get_option('b_sanitize') == 'address'
+ test_env.set('ASAN_OPTIONS', 'detect_leaks=0:detect_odr_violation=0')
+ endif
+
subdir(join_paths('src', 'tests'))
foreach test : test_dirs
package_c_args = [
@@ -631,7 +636,7 @@ efl_config_h.set('EFL_VERSION_MINOR', version_minor)
efl_config_h.set('EFL_VERSION_MICRO', version_micro)
efl_config_h.set('EFL_BUILD_ID', get_option('build-id'))
-#FIXME placeholder
+# FIXME placeholder
efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"')
configure_file(
@@ -657,15 +662,13 @@ subdir(join_paths('systemd-services'))
subdir(join_paths('dbus-services'))
#output the three new efl-* .pc files
-efl_20_pc_files = [
- ['efl-ui', ['elementary']],
- ['efl-core', ['ecore', 'efl', 'emile']],
- ['efl-net', ['ecore', 'ecore-con', 'emile']],
-]
+efl_20_pc_files = {
+ 'efl-ui' : ['elementary'],
+ 'efl-core' : ['ecore', 'efl', 'emile'],
+ 'efl-net' : ['ecore', 'ecore-con', 'emile'],
+}
-foreach pc_file : efl_20_pc_files
- name = pc_file[0]
- libraries = pc_file[1]
+foreach name, libraries : efl_20_pc_files
pkgconfig.generate(
name : '-'.join(name.split('_')),
description: name+' configutation file',