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') + +add_project_arguments(dev_cflags, language: 'c') +add_project_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) +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',