here comes meson

a new shiny buildtool that currently completes in the total of ~ 4 min..
1 min. conf time
2:30 min. build time
Where autotools takes:
1:50 min. conf time
3:40 min. build time.

meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read.

Further informations can be gathered from the README.meson

Right now, bindings & windows support are missing.

It is highly recommented to use meson 0.48 due to optimizations in meson
that reduced the time the meson call would need.

Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>

Differential Revision: https://phab.enlightenment.org/D7012
Depends on D7011
This commit is contained in:
Marcel Hollerbach 2018-08-12 15:26:29 +02:00
parent 70ecf1056b
commit 46d464e5bf
258 changed files with 9752 additions and 0 deletions

51
README.meson Normal file
View File

@ -0,0 +1,51 @@
# BUILDING EFL WITH MESON
Building, testing, installing:
mkdir build
cd build
meson ..
ninja all
ninja test
sudo ninja install
In autotools there have been a few flags that are used to disable loaders. In meson the following four disbler arrays are used:
emotion-generic-loaders-disabler
emotion-loaders-disabler
ecore-imf-loaders-disabler
evas-loaders-disabler
Autotools options that are converted are:
--disable-poppler -> Disable pdf loader
--disable-spectre -> Disable ps loader
--disable-libraw -> Disable raw loader
--disable-librsvg -> Disable svg loader
--disable-xcf -> Disable xcf loader
--disable-xim -> Disable xim loader
--disable-scim -> Disable scim loader
--disable-ibus -> Disable ibus loader
--enable-xine -> Disable xine loader
--enable-libvlc -> Disable vlc loader
--disable-librsvg -> Disable svg loader
The following options are dropped as they did not affect compilation
--enable-lua-old
--enable-cancel-ok
--enable-debug
--disable-quick-launch
--enable-tile-rotate
The following options are merged into the pixman option
--enable-pixman-font
--enable-pixman-rect
--enable-pixman-line
--enable-pixman-poly
--enable-pixman-image
--enable-pixman-image-scale-sample
--disable-valgrind Is dropped, and handled due to the build profile, this can be handled with --buildtype release or plain.

View File

@ -0,0 +1,3 @@
install_data('edje.inc',
install_dir : join_paths(dir_data, 'edje', 'include')
)

5
data/edje/meson.build Normal file
View File

@ -0,0 +1,5 @@
subdir('include')
install_data(files('edje.xml'),
install_dir : join_paths(dir_data, 'mime', 'packages')
)

View File

@ -0,0 +1,7 @@
custom_target('config_'+config,
input: config_file,
output: 'base.cfg',
command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
install: true,
install_dir: join_paths(dir_data, 'elementary', 'config', config),
)

View File

@ -0,0 +1,21 @@
configs = ['default', 'mobile', 'standard']
foreach config : configs
config_file = join_paths(meson.current_source_dir(), config, 'base.src.in')
config_icon = join_paths(meson.current_source_dir(), config, 'icon.png')
config_desktop = join_paths(meson.current_source_dir(), config, 'profile.desktop')
install_data([config_icon, config_desktop],
install_dir : join_paths(dir_data, 'elementary', 'config', config)
)
subdir(config)
endforeach
custom_target('config_profile',
input: 'profile.src',
output: 'profile.cfg',
command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
install: true,
install_dir: join_paths(dir_data, 'elementary', 'config'),
)

View File

@ -0,0 +1,7 @@
custom_target('config_'+config,
input: config_file,
output: 'base.cfg',
command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
install: true,
install_dir: join_paths(dir_data, 'elementary', 'config', config),
)

View File

@ -0,0 +1,7 @@
custom_target('config_'+config,
input: config_file,
output: 'base.cfg',
command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
install: true,
install_dir: join_paths(dir_data, 'elementary', 'config', config),
)

View File

@ -0,0 +1,10 @@
desktop_files = files('elementary_config.desktop', 'elementary_test.desktop')
elementary_icon = files('elementary.png')
install_data(desktop_files,
install_dir : join_paths(dir_data, 'applications')
)
install_data(elementary_icon,
install_dir : join_paths(dir_data, 'icons', 'hicolor', '128x128', 'apps')
)

View File

@ -0,0 +1,11 @@
custom_target('edje_cc_edje_externals',
input : 'icons.edc',
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-id', join_paths(meson.current_source_dir()),
'-id', elm_themes_image_include,
'@INPUT@', '@OUTPUT@'],
depends : edje_cc,
install : true,
install_dir : join_paths(dir_data, 'elementary', 'edje_externals'),
)

View File

@ -0,0 +1,10 @@
subdir('config')
subdir('desktop')
subdir('themes')
subdir('objects')
subdir('edje_externals')
install_subdir('images',
install_dir : join_paths(dir_data, 'elementary'),
exclude_files : ['Makefile.am']
)

View File

@ -0,0 +1,42 @@
edc_files = [
'test.edc',
'test_external.edc',
'test_focus_style.edc',
'test_masking.edc',
'test_tab_pager.edc',
'test_tooltip.edc',
'test_prefs.edc',
'cursors.edc',
'font_preview.edc',
'multibuttonentry.edc',
'multip.edc',
'postit_ent.edc'
]
elm_themes = []
foreach edc_file : edc_files
elm_themes += custom_target('edje_cc_elm_' + edc_file,
input : edc_file,
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-sd', join_paths(meson.current_source_dir()),
'-id', elm_themes_image_include,
'-id', join_paths(meson.current_source_dir()),
'-fd', join_paths(meson.current_source_dir()),
'@INPUT@', '@OUTPUT@'],
depends : edje_cc,
install : true,
install_dir : join_paths(dir_data, 'elementary', 'objects'),
)
endforeach
custom_target('prefs_compile',
input: 'test_prefs.epc',
output: 'test_prefs.epb',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path(),
'@INPUT@', '@OUTPUT@'],
depends : elm_prefs_cc,
install : true,
install_dir : join_paths(dir_data, 'elementary', 'objects'),
)

View File

@ -0,0 +1,37 @@
edc_files = [
'default.edc',
]
elm_themes = []
elm_themes_image_include = join_paths(meson.current_source_dir(), 'img')
foreach edc_file : edc_files
elm_themes += custom_target('edje_cc_' + edc_file,
input : edc_file,
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-sd', join_paths(meson.current_source_dir(), 'snd'),
'-id', elm_themes_image_include,
'-id', join_paths(meson.current_source_dir(), 'fdo'),
'-fd', join_paths(meson.current_source_dir(), 'fnt'),
'@INPUT@', '@OUTPUT@'],
depends : edje_cc,
install : true,
install_dir : join_paths(dir_data, 'elementary', 'themes'),
)
endforeach
install_subdir('fdo',
install_dir : join_paths(dir_data, 'icons', 'Enlightenment-X'),
strip_directory : true,
exclude_directories : [
join_paths('status', '128-svg'),
join_paths('places', '16-svg'),
join_paths('places', '128-svg'),
join_paths('emblems', '96-svg'),
join_paths('devices', '128-svg'),
join_paths('categories', '128-svg'),
join_paths('actions', '128-svg'),
]
)

3
data/embryo/meson.build Normal file
View File

@ -0,0 +1,3 @@
install_data('default.inc',
install_dir : join_paths(dir_data, 'embryo', 'include')
)

13
data/eo/meson.build Normal file
View File

@ -0,0 +1,13 @@
install_data('eo_gdb.py',
install_dir : join_paths(dir_data, 'eo', 'gdb')
)
configuration = configuration_data()
configuration.set('datadir', dir_data)
configure_file(
input: 'libeo-gdb.py.in',
output: 'libeo.so.'+meson.project_version()+'-gdb.py',
configuration: configuration,
install_dir: join_paths(dir_data, 'gdb', 'autoload', 'usr', 'lib')
)

View File

@ -0,0 +1,14 @@
ethumb_frame = files('default.edc')
custom_target('edje_cc_ethumb_frame',
input : ethumb_frame,
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-sd', join_paths(meson.current_source_dir()),
'-id', join_paths(meson.current_source_dir()),
'-fd', join_paths(meson.current_source_dir()),
'@INPUT@', '@OUTPUT@'],
depends : edje_cc,
install : true,
install_dir : join_paths(dir_data, 'ethumb', 'frames'),
)

12
data/meson.build Normal file
View File

@ -0,0 +1,12 @@
checkme_files = ['ecore', 'ecore_imf', 'ecore_x', 'eeze', 'efreet', 'elua', 'emotion', 'ethumb', 'ethumb_client', 'evas']
foreach checkme : checkme_files
install_data(join_paths(checkme, 'checkme'),
install_dir : join_paths(dir_data, checkme)
)
endforeach
subdir('eo')
subdir('edje')
subdir('embryo')
subdir(join_paths('ethumb', 'frames'))
subdir('elementary')

177
header_checks/meson.build Normal file
View File

@ -0,0 +1,177 @@
header_checks = [
'alloca.h',
'asm/hwcap.h',
'bsd/string.h',
'dirent.h',
'execinfo.h',
'mcheck.h',
'netinet/in.h',
'netinet/ssl.h',
'netinet/tcp.h',
'netinet/udp.h',
'net/if.h',
'stdlib.h',
'mman.h',
'sys/auxv.h',
'sys/inotify.h',
'sys/ioctl.h',
'sys/mman.h',
'sys/types.h',
'sys/socket.h',
'sys/filio.h',
'arpa/inet.h',
'sys/epoll.h',
'sys/un.h',
'sys/wait.h',
'sys/resource.h',
'sys/times.h',
'dirent.h',
'longinfo.h',
'exotic.h',
'ieeefp.h',
'node/uv.h',
'sys/timerfd.h',
'features.h',
'langinfo.h',
'locale.h',
'uv.h',
'ws2tcpip.h'
]
function_checks = [
# function name | headers that are needed | libraries to include | Defines that are needed
['alloca', ['alloca.h']],
['backtrace', ['execinfo.h']],
['backtrace_symbols', ['execinfo.h']],
['clock_gettime', ['time.h']],
['dirfd', ['dirent.h sys/types.h']],
['fchmod', ['sys/stat.h']],
['fcntl', ['fcntl.h']],
['fork', ['unistd.h']],
['fpathconf', ['unistd.h']],
['geteuid', ['unistd.h']],
['getpagesize', ['unistd.h']],
['getpwent', ['sys/types.h', 'pwd.h']],
['getuid', ['unistd.h']],
['getxattr', ['sys/types.h', 'sys/xattr.h']],
['iconv', ['iconv.h']],
['listxattr', ['sys/types.h', 'sys/xattr.h']],
['mallinfo', ['malloc.h']],
['malloc_info', ['malloc.h']],
['malloc_usable_size', ['malloc.h']],
['mkdirat', ['sys/stat.h']],
['mmap', ['sys/mman.h']],
['mtrace', ['mcheck.h']],
['prctl', ['sys/prctl.h']],
['realpath', ['stdlib.h']],
['setxattr', ['sys/types.h', 'sys/xattr.h']],
['siglongjmp', ['setjmp.h']],
['strerror_r', ['string.h']],
['gettimeofday', ['sys/time.h']],
['execvp', ['unistd.h']],
['pause', ['unistd.h']],
['isfinite', ['math.h']],
#FIXME strlcpy is detected by meson but drops at compilation time
# ['strlcpy', ['string.h']],
['siginfo_t', ['signal.h']],
['strerror_r', ['string.h']],
['pthread_getcpuclockid', ['pthread.h', 'time.h']],
['timerfd_create', ['sys/timerfd.h']],
['kevent', ['sys/types.h', 'sys/event.h', 'sys/time.h']],
#from here on we specify the dependencies
['dlopen', ['dlfcn.h'], ['dl']],
['dlsym', ['dlfcn.h'], ['dl']],
['lround', ['math.h'], ['m']],
['shm_open', ['sys/mman.h', 'sys/stat.h', 'fcntl.h'], ['rt']],
#from here on we specify arguments
['splice', ['fcntl.h'], [], '-D_GNU_SOURCE=1'],
['sched_getcpu', ['sched.h'], [], '-D_GNU_SOURCE=1'],
['dladdr', ['dlfcn.h'], ['dl'], '-D_GNU_SOURCE=1']
]
strerror_r_char_p = cc.compiles('''#define _GNU_SOURCE
#include <string.h>
int func (void)
{
char error_string[256];
char *ptr = strerror_r (-2, error_string, 256);
char c = *strerror_r (-2, error_string, 256);
return c != 0 && ptr != (void*) 0L;
}
''',
name : 'strerror_r() returns char *')
if strerror_r_char_p
config_h.set('STRERROR_R_CHAR_P', '1')
endif
#for later use, a bunch of librarie findings
m = cc.find_library('m')
#just keep this here as required false, if it is not inplace the library rt will just be linked as NOP
dl = cc.find_library('dl', required: false)
rt = cc.find_library('rt', required: false)
thread_dep = dependency('threads')
#check for the headers
foreach header : header_checks
if cc.has_header(header)
config_h.set10('HAVE_'+header.underscorify().to_upper(), true)
endif
endforeach
foreach function : function_checks
function_name = function[0]
headers_to_search = function[1]
dependencies = []
args = []
# if there is a library, make sure they exist
if function.length() > 2
foreach library : function[2]
lib = cc.find_library(library, required : false)
if lib.found() == true
dependencies += lib
endif
endforeach
endif
#check if there are args
if function.length() > 3
args = function[3]
endif
# Only check the header if the dependencies are ready
foreach header : headers_to_search
if cc.has_header_symbol(header, function_name,
dependencies : dependencies,
args : args)
config_h.set10('HAVE_'+function_name.to_upper(), true)
endif
endforeach
endforeach
# The next checks are manually for now due to the fact that some names are not within the default pattern
if (cc.has_header_symbol('sys/stat.h', 'fstatat'))
config_h.set10('HAVE_ATFILE_SOURCE', true)
endif
if (cc.has_header('sys/mman.h'))
config_h.set10('HAVE_MMAN_H', true)
endif
config_h.set('VMAJ', version_major)
config_h.set('VMIN', version_minor)
config_h.set('VMIC', version_micro)
config_h.set('VREV', '0')
#jpeg detection ... life is a bit more complex there
jpeg = dependency('libjpeg', required: false)
if jpeg.found() == false
jpeg = cc.find_library('jpeg')
endif
if config_h.has('HAVE_KEVENT')
config_h.set('HAVE_NOTIFY_KEVENT', '1')
endif

346
meson.build Normal file
View File

@ -0,0 +1,346 @@
project('efl', ['c','cpp'],
version: '1.21.99',
default_options : ['buildtype=plain'],
meson_version : '>=0.46'
)
if target_machine.system() == 'darwin'
add_languages('objc')
endif
clean_check = run_command('meson/clean_check.sh')
if clean_check.returncode() == 0
error('Meson build requires a clean source tree')
endif
pkgconfig = import('pkgconfig')
test_env = environment()
test_env.set('EFL_RUN_IN_TREE', '1')
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
cc = meson.get_compiler('c')
host_os = host_machine.system()
if host_os == 'linux'
if cc.has_header_symbol('features.h', '__UCLIBC__')
host_os = 'linux-uclibc'
elif cc.has_header_symbol('features.h', '__dietlibc__')
host_os = 'linux-dietlibc'
else
host_os = 'linux-gnu'
endif
endif
#prepare a special linker args flag for binaries on macos
bin_linker_args = []
if target_machine.system() == 'darwin'
bin_linker_args = ['-pagezero_size', '10000', '-image_base', '100000000']
endif
module_files = []
evas_loader_map = []
#install paths
dir_prefix = get_option('prefix')
dir_sysconf = join_paths(dir_prefix, get_option('sysconfdir'))
dir_bin = join_paths(dir_prefix, get_option('bindir'))
dir_data = join_paths(dir_prefix, get_option('datadir'))
dir_include = join_paths(dir_prefix, get_option('includedir'))
dir_lib = join_paths(dir_prefix, get_option('libdir'))
#local paths
local_lib = join_paths('src', 'lib')
local_bin = join_paths('src', 'bin')
local_module = join_paths('src', 'modules')
local_tests = join_paths('src', 'tests')
local_benchmark = join_paths('src', 'benchmarks')
local_examples = join_paths('src', 'examples')
local_scripts = join_paths('src', 'scripts')
add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
add_global_arguments('-D_GNU_SOURCE=1', language: 'c')
add_global_arguments('-fPIC', language: 'c')
add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'c')
add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'c')
add_global_arguments('-DNEED_RUN_IN_TREE=1', language: 'c')
add_global_arguments('-DEFL_BUILD=1', language: 'c')
add_global_arguments('-DEFL_BUILD=1', language: 'objc')
add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'objc')
add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'objc')
add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: 'c')
config_h = configuration_data()
config_h.set_quoted('MODULE_ARCH', version_name)
config_h.set_quoted('PACKAGE', meson.project_name())
config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
config_h.set_quoted('VERSION', meson.project_version())
config_h.set_quoted('LOCALE_DIR', join_paths([dir_prefix, 'share/locale']))
config_h.set_quoted('PACKAGE_URL', 'https://www.enlightenment.org')
config_h.set_quoted('PACKAGE_TARNAME', meson.project_name())
config_h.set_quoted('PACKAGE_BUGREPORT', 'enlightenment-devel@lists.sourceforge.net')
config_h.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
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_BUILD_DIR', meson.current_build_dir())
config_h.set_quoted('PACKAGE_SYSCONF_DIR', dir_sysconf)
config_h.set_quoted('BINDIR', dir_bin)
config_h.set_quoted('DATADIR', dir_data)
config_h.set10('EFL_HAVE_THREADS', true)
config_h.set('NEED_RUN_IN_TREE', '1')
config_dir = [include_directories('.')]
eolian_include_directories = []
windows = ['windows', 'cygwin']
#bsd for meson 0.46 and 0.47
bsd = ['bsd', 'freebsd', 'dragonfly', 'netbsd']
linux = ['linux']
osx = ['darwin']
if linux.contains(target_machine.system()) or bsd.contains(target_machine.system())
sys_lib_extension = 'so'
sys_exe_extension = ''
sys_mod_extension = 'so'
elif windows.contains(target_machine.system())
sys_lib_extension = 'dll'
sys_exe_extension = 'exe'
sys_mod_extension = 'dll'
elif osx.contains(target_machine.system())
sys_lib_extension = 'dylib'
sys_exe_extension = ''
sys_mod_extension = 'dylib'
else
error('System '+target_machine.system()+' not known')
endif
if (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')
crypto = dependency('openssl')
config_h.set('HAVE_OPENSSL', '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('EXE_SUFFIX', '.'+sys_exe_extension)
config_h.set('EFL_BUILD', '1')
subdir('header_checks')
subdir('po')
if get_option('wl') == true
subdir(join_paths('src', 'wayland_protocol'))
endif
ecore_evas_wayland_engine_include_dir = []
subprojects = [
# name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs
['eina' ,[] , false, true, true, true, true, true, [], []],
['eolian' ,[] , false, true, true, false, true, false, ['eina'], []],
['eo' ,[] , false, true, false, true, true, false, ['eina'], []],
['efl' ,[] , false, true, false, false, true, false, ['eo'], []],
['emile' ,[] , false, true, false, false, true, true, ['eina', 'efl'], ['lz4', 'rg_etc']],
['eet' ,[] , false, true, true, false, true, true, ['eina', 'emile', 'efl'], []],
['ecore' ,[] , false, true, false, false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']],
['eldbus' ,[] , false, true, true, false, true, true, ['eina', 'eo', 'efl'], []],
['ecore' ,[] , true, false, false, false, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
['ecore_audio' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, ['eina', 'ecore'], []],
['ecore_con' ,[] , false, true, true, false, true, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']],
['ecore_file' ,[] , false, true, false, false, false, false, ['eina'], []],
['eeze' ,['eeze'] , true, true, true, false, true, false, ['eina', 'efl'], []],
['ecore_input' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
['ecore_x' ,['x11'] , false, true, false, false, false, false, ['eina', 'efl'], []],
['ecore_fb' ,['fb'] , false, true, false, false, false, false, ['eina'], []],
['ecore_wl2' ,['wl'] , true, true, false, false, false, false, ['eina'], ['libdrm']],
['ecore_sdl' ,['sdl'] , false, true, false, false, false, false, ['eina'], []],
['ecore_ipc' ,[] , false, true, false, false, false, false, ['eina'], []],
['ecore_buffer' ,['buffer'] , true, true, true, false, false, false, ['eina'], []],
['ector' ,[] , false, true, false, false, true, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],
['elput' ,['drm'] , false, true, false, false, true, false, ['eina', 'eldbus'], []],
['ecore_drm2' ,['drm'] , false, true, false, false, false, false, ['ecore'], ['libdrm']],
['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, ['eina'], []],
['evas' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']],
['evas_goal' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
['ecore_input_evas' ,[] , false, true, false, false, false, false, ['eina', 'evas'], []],
['ecore_evas' ,[] , true, true, true, false, false, false, ['evas', 'ector'], []],
['ecore_imf' ,[] , true, true, false, false, false, false, ['eina'], []],
['embryo' ,[] , false, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
['efreet' ,[] , false, true, false, false, true, false, ['eina', 'efl', 'eo'], []],
['eio' ,[] , false, true, false, false, true, true, ['eina', 'eet'], []],
['efreet' ,[] , false, false, true, false, false, false, ['eina', 'efl', 'eo'], []],
['ecore_imf_evas' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
['ephysics' ,['physics'] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
['edje' ,[] , false, true, true, false, true, true, ['evas', 'eo', 'efl', 'luajit'], []],
['emotion' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], []],
['ethumb' ,[] , true, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
['ethumb_client' ,[] , false, true, true, false, false, true, ['eina', 'efl', 'eo', 'ethumb'], []],
['elocation' ,[] , false, true, false, false, false, false, ['ecore', 'eldbus'], []],
['elementary' ,[] , true, true, true, false, true, false, ['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', 'elocation'], ['atspi']],
['efl_wl' ,['wl'] , false, true, true, false, false, false, ['evas', 'ecore'], []],
['elua' ,['elua'] , false, true, true, false, true, false, ['eina', 'luajit'], []],
['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, ['eina'], []],
['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, ['eina'], []],
]
# We generate Efl_Config.h and config.h later, they will be available here
config_dir += include_directories('.')
#we have to do that first, eina modules are required by eina
#the other modules require theire package
subdir(join_paths(local_module, 'eina'))
test_dirs = []
example_dirs = []
tmp_empty = declare_dependency()
foreach package : subprojects
package_name = package[0]
package_version_name = '-'.join(package_name.split('_')) + '-' + version_major
package_c_args = [
'-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"',
'-DNEED_RUN_IN_TREE=1'
]
automatic_pkgfile = true
if package[1].length() == 0 or get_option(package[1][0])
config_h.set('HAVE_'+package_name.to_upper(), '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
pub_eo_file_target = []
priv_eo_file_target = []
foreach static_lib : package[9]
if get_variable(static_lib, tmp_empty) == tmp_empty
subdir(join_paths('src', 'static_libs', static_lib))
endif
endforeach
if (package[3])
subdir(join_paths(local_lib, package_name))
endif
if (package[2])
subdir(join_paths(local_module, package_name))
endif
if (package[4])
subdir(join_paths(local_bin, package_name))
endif
if (package[5])
subdir(join_paths(local_benchmark, package_name))
endif
if (package[6])
test_dirs += [package_name]
endif
if (package[7])
example_dirs += [package_name]
endif
set_variable('build_'+package_name, 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')
pkgconfig.generate(tmp_lib,
name : '-'.join(package_name.split('_')),
subdirs : package_version_name,
version : version_major + '.' + version_minor,
libraries : tmp_pub_deps,
requires : package[8],
)
endif
else
message(package_name+' disabled!')
endif
endforeach
#build this later, as the debug services are depending on ecore
subdir(join_paths('src', 'bin', 'efl'))
subdir(join_paths('src', 'generic', 'evas'))
subdir(join_paths('src', 'generic', 'emotion'))
subdir(join_paths('src', 'bindings', 'luajit'))
subdir(join_paths('src', 'edje_external'))
subdir(join_paths('data'))
if get_option('build-tests')
check = dependency('check')
subdir(join_paths('src', 'tests'))
foreach test : test_dirs
subdir(join_paths(local_tests, test))
endforeach
endif
if get_option('build-examples')
foreach example : example_dirs
subdir(join_paths(local_examples, example))
endforeach
endif
subdir(join_paths(local_scripts))
meson.add_install_script('meson/meson_modules.sh', module_files)
foreach evas_loader_map_inst : evas_loader_map
evas_loader_original = evas_loader_map_inst[0]
evas_loader_link_types = evas_loader_map_inst[1]
meson.add_install_script('meson/evas_loader_conf.sh', evas_loader_original, evas_loader_link_types)
endforeach
#
# Configure files
#
efl_config_h = configuration_data()
efl_config_h.set('EFL_VERSION_MAJOR', version_major)
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
efl_config_h.set('EFL_API_EO_DEF', '#define EFL_API_EO_DEF "FIXME NOT IMPLEMENTED"')
efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"')
configure_file(
output: 'config.h',
install: false,
configuration: config_h
)
configure_file(
input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'),
output: 'Efl_Config.h',
install_dir : join_paths(dir_include,'efl-'+version_major),
configuration: efl_config_h
)
configure_file(
input: 'elm_intro.h.in',
output: 'elm_intro.h',
configuration: config_h,
install_dir : join_paths(dir_include,'elementary-'+version_major)
)

3
meson/clean_check.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/sh
test -f ${MESON_SOURCE_ROOT}/configure

18
meson/evas_loader_conf.sh Executable file
View File

@ -0,0 +1,18 @@
#!/bin/bash
original_loader=$1
filename="$(basename $original_loader)"
ext="${ext##*.}"
original_name="$(basename $original_loader $ext)"
loader_dir="$(dirname $original_loader)"
loader="$(basename $original_loader)"
loader_name="$(echo $original_name | cut -f 1 -d '.')"
if [ ${original_loader: -3} == "$ext" ]
then
mv "$DESTDIR"/"$original_loader" "$DESTDIR"/"$loader_dir"/"$original_name"
fi
for x in "${@:2}"; do
ln -sf "$DESTDIR"/"$loader_dir"/"$original_name" "$DESTDIR"/"$loader_dir"/"$loader_name"."$x"
done

8
meson/meson_modules.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
for x in "$@" ; do
dir="$(dirname $x)"
filename="$(basename $x)"
ext="${filename##*.}"
mv "$DESTDIR"/"$x" "$DESTDIR"/"$dir"/module."$ext"
done

311
meson_options.txt Normal file
View File

@ -0,0 +1,311 @@
option('audio',
type : 'boolean',
value : true,
description : 'Flag for handling audio support in efl'
)
option('avahi',
type : 'boolean',
value : true,
description : 'Flag for handling avahi support in efl'
)
option('x11',
type : 'boolean',
value : true,
description : 'Flag for handling x11 support in efl'
)
option('fb',
type : 'boolean',
value : false,
description : 'Flag for handling frame buffer support in efl'
)
option('sdl',
type : 'boolean',
value : false,
description : 'Flag for handling sdl support in efl'
)
option('wl',
type : 'boolean',
value : false,
description : 'Flag for handling wayland support in efl'
)
option('buffer',
type : 'boolean',
value : false,
description : 'Flag for handling buffer support in efl'
)
option('drm',
type : 'boolean',
value : false,
description : 'Flag for handling drm support in efl'
)
option('cocoa',
type : 'boolean',
value : false,
description : 'Flag for handling drm support in efl'
)
option('physics',
type : 'boolean',
value : true,
description : 'Flag for handling the internal physics engine in efl'
)
option('eeze',
type : 'boolean',
value : true,
description : 'Flag for handling the device abstraction layer in efl'
)
option('opengl',
type : 'combo',
choices : ['full', 'es-egl', 'none'],
value : 'full',
description : 'build efl with a special opengl support'
)
option('build-id',
type : 'string',
value : 'none',
description : 'The build id to attach to the efl build')
option('eina-magic-debug',
type : 'boolean',
value : true,
description : 'magic debug of eina structure'
)
option('debug-threads',
type : 'boolean',
value : false,
description : 'thread debugging'
)
option('build-examples',
type : 'boolean',
value : true,
description : 'build examples'
)
option('build-tests',
type : 'boolean',
value : true,
description : 'build examples'
)
option('crypto',
type : 'combo',
choices : ['gnutls', 'openssl'],
value : 'openssl'
)
option('glib',
type : 'boolean',
value : true,
description : 'use glib or not'
)
option('g-mainloop',
type : 'boolean',
value : false,
description : 'use glib mainloop or not'
)
option('gstreamer',
type : 'boolean',
value : true,
description : 'use gstreamer 1.0 support'
)
option('systemd',
type : 'boolean',
value : true,
description : 'use systemd support'
)
option('pulseaudio',
type : 'boolean',
value : true,
description : 'pulseaudio support'
)
option('network-backend',
type : 'combo',
choices : ['connman', 'none'],
value : 'none',
description : 'connman support'
)
option('xpresent',
type : 'boolean',
value : false,
description : 'xpresent support'
)
option('xgesture',
type : 'boolean',
value : false,
description : 'xgesture support'
)
option('xinput2',
type : 'boolean',
value : true,
description : 'xi2 support'
)
option('xinput22',
type : 'boolean',
value : false,
description : 'xi22 support'
)
option('tslib',
type : 'boolean',
value : true,
description : 'tslib support'
)
option('eject-path',
type : 'string',
value : 'detect',
description : 'path to use as eject binary, if "detect" internal eeze bins are used'
)
option('mount-path',
type : 'string',
value : 'detect',
description : 'path to use as eject binary, if "detect" internal eeze bins are used'
)
option('unmount-path',
type : 'string',
value : 'detect',
description : 'path to use as eject binary, if "detect" internal eeze bins are used'
)
option('evas-modules',
type : 'combo',
choices : ['shared', 'static'],
value : 'shared',
description : 'how to build the evas modules'
)
option('evas-loaders-disabler',
type : 'array',
description : 'add names here to disable the loaders',
choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'xcf', 'bmp', 'dds', 'eet', 'generic', 'gif', 'ico', 'jp2k', 'jpeg', 'pmaps', 'png', 'psd', 'tga', 'tgv', 'tiff', 'wbmp', 'webp', 'xpm'],
value : ['webp']
)
option('ecore-imf-loaders-disabler',
type : 'array',
description : 'add names here to disable the loaders',
choices : ['xim', 'ibus', 'scim'],
value : ['scim']
)
option('emotion-loaders-disabler',
type : 'array',
description : 'add names here to disable the loaders',
choices : ['gstreamer', 'gstreamer1', 'libvlc', 'xine'],
value : ['gstreamer', 'libvlc', 'xine']
)
option('emotion-generic-loaders-disabler',
type : 'array',
description : 'add names here to disable the loaders',
choices : ['vlc'],
value : ['vlc']
)
option('harfbuzz',
type : 'boolean',
value : false,
description : 'harfbuzz support'
)
option('fribidi',
type : 'boolean',
value : true,
description : 'fribidi support'
)
option('fontconfig',
type : 'boolean',
value : true,
description : 'fontconfig support'
)
option('edje-sound-and-video',
type : 'boolean',
value : true,
description : 'disable sound and video for edje'
)
option('pixman',
type : 'boolean',
value : false,
description : 'Enable pixman support in evas'
)
option('hyphen',
type : 'boolean',
value : false,
description : 'Enable hyphen support in evas'
)
option('embedded-lz4',
type : 'boolean',
value : true,
description : 'do not use the system lz4, but rather the embedded r131 release'
)
option('libmount',
type : 'boolean',
value : true,
description : 'use libmount support or not'
)
option('vnc-server',
type : 'boolean',
value : false,
description : 'use libmount support or not'
)
option('v4l2',
type : 'boolean',
value : true,
description : 'add v4l2 support'
)
option('elua',
type : 'boolean',
value : true,
description : 'Flag for handling elua support in efl'
)
option('wl-deprecated',
type : 'boolean',
value : true,
description : 'Flag for handling deprecated wayland support in efl'
)
option('drm-deprecated',
type : 'boolean',
value : true,
description : 'Flag for handling deprecated drm support in efl'
)
option('nls',
type: 'boolean',
value: true,
description: 'enable localization: (default=true)'
)

22
po/meson.build Normal file
View File

@ -0,0 +1,22 @@
if get_option('nls')
i18n = import('i18n')
i18n.gettext('efl',
args: [
'--keyword=_',
'--keyword=d_:1',
'--keyword=P_:1,2',
'--keyword=dP_:1,2',
'--keyword=N_',
'--keyword=NP_:1,2',
'--from-code=UTF-8',
'--foreign-user'
])
config_h.set('HAVE_GETTEXT', '1')
config_h.set('ENABLE_NLS', '1')
intl = cc.find_library('intl', required : false)
if cc.has_header('libintl.h', dependencies : intl) == false
error('libintl.h not found')
endif
else
intl = declare_dependency()
endif

10
scripts/check_options.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
BUILD_DIR=`mktemp -d`
INSTALL_DIR=`mktemp -d`
meson $@ --prefix ${INSTALL_DIR} ${BUILD_DIR}
ninja -C ${BUILD_DIR} all
ninja -C ${BUILD_DIR} install
#ninja -C ${BUILD_DIR} test

View File

@ -0,0 +1,52 @@
options = {
{"-Dopengl=", "full", "none", "es-egl"},
{"--buildtype ", "plain", "debug", "release"},
{"-Devas-modules ", "shared", "static"},
}
concated_options = {}
for i,v in pairs(options) do
tmp_options = {}
option_name = v[1]
for i=2, #v do
table.insert(tmp_options, option_name..v[i])
end
table.insert(concated_options, tmp_options)
end
function permutate(values)
local permutater = {table.unpack(values[1])}
if #values == 1 then
return {table.unpack(values[1])}
else
local result = {}
table.remove(values, 1)
local list_to_complete = permutate(values)
for k,v in pairs(list_to_complete) do
for k_perm,v_perm in pairs(permutater) do
table.insert(result, v_perm.." "..v)
end
end
return result
end
end
all_options = permutate(concated_options)
print("GOING TO BUILD ALOT OF EFL")
for k,v in pairs(all_options) do
cmd = "sh ./scripts/check_options.sh "..v.." "..arg[1]
exitcode = os.execute(cmd)
if exitcode ~= true then
print("command "..cmd.." failed. ")
print(exitcode)
os.exit(-1)
end
end

View File

@ -0,0 +1,41 @@
eina_bench_src = files(
'eina_bench.c',
'eina_bench_sort.c',
'eina_bench_hash.c',
'eina_bench_crc_hash.c',
'eina_bench_stringshare.c',
'eina_bench_convert.c',
'eina_bench_mempool.c',
'eina_bench_stringshare_e17.c',
'eina_bench_array.c',
'eina_bench_rectangle_pool.c',
'ecore_list.c',
'ecore_strings.c',
'ecore_hash.c',
'ecore_sheap.c',
'evas_hash.c',
'evas_list.c',
'evas_mempool.c',
'evas_object_list.c',
'evas_stringshare.c',
'eina_bench_quad.c',
'eina_bench.h',
'Ecore_Data.h',
'Evas_Data.h',
'evas_mempool.h')
city = shared_library('city',
sources : ['city.cc','city.h'],
)
eina_bench = executable('eina_bench',
sources : eina_bench_src,
dependencies : eina,
c_args : ['-fPIC','-DCITYHASH_BENCH', '-DEINA_ENABLE_BENCH_E17'],
include_directories : config_dir,
link_with : city,
)
benchmark('eina_bench', eina_bench,
timeout : 20*60
)

View File

@ -0,0 +1,16 @@
eo_benchmark_src = [
'class_simple.c',
'class_simple.h',
'eo_bench.c',
'eo_bench.h',
'eo_bench_callbacks.c',
'eo_bench_eo_do.c',
'eo_bench_eo_add.c'
]
eo_bench = executable('eo_bench',
eo_benchmark_src,
dependencies: [eo, eina],
)
benchmark('eo', eo_bench)

View File

@ -0,0 +1,5 @@
executable('bq_mgr',
['bq_mgr_protocol.c', 'bq_mgr.c'],
dependencies: [ecore, ecore_buffer, ecore_buffer_deps],
install : true
)

View File

@ -0,0 +1,6 @@
executable('efl_net_proxy_helper',
'efl_net_proxy_helper.c',
dependencies : [ecore_con],
install : true,
install_dir : join_paths(dir_lib, 'ecore_con', 'utils', version_name)
)

View File

@ -0,0 +1,11 @@
executable('ecore_evas_convert',
'ecore_evas_convert.c',
dependencies : [eina, ecore, evas, ecore_evas],
install : true
)
executable('eetpack',
'eetpack.c',
dependencies : [eina, eet, evas, ecore_evas],
install : true
)

View File

@ -0,0 +1,38 @@
epp_src = [
'cpplib.h',
'cpphash.h',
'cppalloc.c',
'cpperror.c',
'cppexp.c',
'cpphash.c',
'cpplib.c',
'cppmain.c'
]
epp = executable('epp',
epp_src,
dependencies: eolian,
install: true,
install_dir : join_paths(dir_lib, 'edje', 'utils', version_name),
c_args : [
package_c_args,
'-DHAVE_CONFIG_H',
'-DHAVE_STRERROR',
'-DFATAL_EXIT_CODE=1',
'-DSUCCESS_EXIT_CODE=0',
'-DGCC_INCLUDE_DIR="/usr/include"',
'-DGPLUSPLUS_INCLUDE_DIR="/usr/include"',
'-DTOOL_INCLUDE_DIR="/usr/bin"',
'-DHOST_BITS_PER_LONG=32',
'-DBITS_PER_UNIT=8',
'-DHOST_BITS_PER_INT=32',
'-DBITS_PER_WORD=16',
'-DTARGET_BELL=7',
'-DTARGET_BS=8',
'-DTARGET_FF=12',
'-DTARGET_NEWLINE=10',
'-DTARGET_CR=13',
'-DTARGET_TAB=9',
'-DTARGET_VT=11'
],
)

87
src/bin/edje/meson.build Normal file
View File

@ -0,0 +1,87 @@
subdir('epp')
edje_bin_deps = [
eina, eo, efl, m,
luajit, eet, evas,
ecore_file, ecore_input,
ecore_imf, ecore_imf_evas,
embryo, efreet, eio,
edje, ecore_evas
]
edje_cc_src = [
'edje_multisense_convert.h',
'edje_cc.h',
'edje_cc.c',
'edje_cc_out.c',
'edje_cc_parse.c',
'edje_cc_mem.c',
'edje_cc_handlers.c',
'edje_cc_sources.c',
'edje_cc_script.c',
'edje_multisense_convert.c'
]
edje_cc = executable('edje_cc',
edje_cc_src,
dependencies: [edje_bin_deps, eet, ecore_evas, ecore_file],
install: true,
c_args : package_c_args,
link_args : bin_linker_args
)
edje_decc_src = [
'edje_decc.c',
'edje_decc.h',
'edje_cc_mem.c',
'edje_cc_sources.c',
]
edje_decc = executable('edje_decc',
edje_decc_src,
dependencies: [edje_bin_deps, eet, ecore_file, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_player = executable('edje_player',
'edje_player.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_inspector = executable('edje_inspector',
'edje_inspector.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_external_inspector = executable('edje_external_inspector',
'edje_external_inspector.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_codegen = executable('edje_codegen',
'edje_codegen.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_pick = executable('edje_pick',
'edje_pick.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)
edje_watch = executable('edje_watch',
'edje_watch.c',
dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
install: true,
c_args : package_c_args,
)

10
src/bin/eet/meson.build Normal file
View File

@ -0,0 +1,10 @@
eet_bin = executable('eet',
'eet_main.c',
dependencies: [eet],
install : true
)
install_data(['diffeet','vieet'],
install_mode: 'rwxr--r--',
install_dir : dir_bin
)

10
src/bin/eeze/meson.build Normal file
View File

@ -0,0 +1,10 @@
eeze_bins = ['disk_ls', 'mount', 'scanner', 'scanner_monitor', 'umount']
foreach eeze_bin : eeze_bins
src_file = join_paths('eeze_'+eeze_bin, 'eeze_'+eeze_bin+'.c')
tmp = executable('eeze_'+eeze_bin, src_file,
dependencies: [ecore, eeze, ecore_con, ecore_file, eet],
install: true,
)
set_variable('eeze_'+eeze_bin, tmp)
endforeach

10
src/bin/efl/meson.build Normal file
View File

@ -0,0 +1,10 @@
executable('efl_debug',
'efl_debug.c',
dependencies: [eina, ecore],
install: true,
)
executable('efl_debugd',
'efl_debugd.c',
dependencies: [eina, ecore, ecore_con],
install: true,
)

View File

@ -0,0 +1,11 @@
executable('efl_wl_test',
'efl_wl_test.c',
include_directories : config_dir,
dependencies: [efl_wl, elementary]
)
executable('efl_wl_test_stack',
'efl_wl_test_stack.c',
include_directories : config_dir,
dependencies: [efl_wl, elementary]
)

View File

@ -0,0 +1,41 @@
efreetd_src = [
'efreetd.c',
'efreetd.h',
'efreetd_ipc.h',
'efreetd_ipc.c',
'efreetd_cache.h',
'efreetd_cache.c'
]
config_h.set('STRICT_SPEC', '1')
efreetd = executable('efreetd',
efreetd_src,
dependencies: [efreet, ecore, ecore_ipc, ecore_file, eio],
install: true,
c_args : package_c_args,
)
efreet_desktop_cache_create = executable('efreet_desktop_cache_create',
'efreet_desktop_cache_create.c',
dependencies: [efreet, ecore, eet, ecore_file],
install: true,
install_dir : join_paths(dir_lib, 'efreet', version_name),
c_args : package_c_args,
)
efreet_icon_cache_create = executable('efreet_icon_cache_create',
'efreet_icon_cache_create.c',
dependencies: [efreet, ecore, eet, ecore_file],
install: true,
install_dir : join_paths(dir_lib, 'efreet', version_name),
c_args : package_c_args,
)
efreet_mime_cache_create = executable('efreet_mime_cache_create',
'efreet_mime_cache_create.c',
dependencies: [efreet, ecore, eet, ecore_file],
install: true,
install_dir : join_paths(dir_lib, 'efreet', version_name),
c_args : package_c_args,
)

View File

@ -0,0 +1,5 @@
executable('eina_btlog',
'eina_btlog.c',
dependencies: eina,
install: true,
)

View File

@ -0,0 +1,5 @@
executable('eina_modinfo',
'eina_modinfo.c',
dependencies: eina,
install: true,
)

2
src/bin/eina/meson.build Normal file
View File

@ -0,0 +1,2 @@
subdir('eina_btlog')
subdir('eina_modinfo')

View File

@ -0,0 +1,13 @@
eldbus_codegen_src = [
'codegen.h',
'utils.c',
'parser.c',
'dbus.c',
'source_client.c',
'client.c'
]
executable('eldbus-codegen',
eldbus_codegen_src,
dependencies: [eldbus, ecore],
install: true,
)

View File

@ -0,0 +1,228 @@
elementary_test_src = [
'test.c',
'test_explode.c',
'test_explode.h',
'test_3d.c',
'test_access.c',
'test_actionslider.c',
'test_anim.c',
'test_bg.c',
'test_box.c',
'test_bubble.c',
'test_button.c',
'test_ui_button.c',
'test_calendar.c',
'test_check.c',
'test_clock.c',
'test_cnp.c',
'test_code.c',
'test_colorselector.c',
'test_colorclass.c',
'test_combobox.c',
'test_config.c',
'test_conform.c',
'test_conform_indicator.c',
'test_ctxpopup.c',
'test_cursor.c',
'test_datetime.c',
'test_dayselector.c',
'test_disable.c',
'test_diskselector.c',
'test_dnd.c',
'test_efl_anim_alpha.c',
'test_efl_anim_rotate.c',
'test_efl_anim_scale.c',
'test_efl_anim_translate.c',
'test_efl_anim_group_parallel.c',
'test_efl_anim_group_sequential.c',
'test_efl_anim_event_anim.c',
'test_efl_anim_pause.c',
'test_efl_anim_repeat.c',
'test_efl_anim_start_delay.c',
'test_efl_anim_interpolator.c',
'test_eio.c',
'test_entry.c',
'test_entry_anchor.c',
'test_entry_anchor2.c',
'test_events.c',
'test_evas_mask.c',
'test_evas_map.c',
'test_efl_gfx_map.c',
'test_evas_snapshot.c',
'test_external.c',
'test_fileselector_button.c',
'test_fileselector.c',
'test_fileselector_entry.c',
'test_flip.c',
'test_flip_page.c',
'test_flip_page_eo.c',
'test_flipselector.c',
'test_floating.c',
'test_focus.c',
'test_focus_custom_chain.c',
'test_focus_policy.c',
'test_focus_style.c',
'test_gengrid.c',
'test_genlist.c',
'test_gesture_layer.c',
'test_gesture_layer2.c',
'test_gesture_layer3.c',
'test_gfx_filters.c',
'test_glview_simple.c',
'test_glview.c',
'test_glview_manygears.c',
'test_grid.c',
'test_ui_table_static.c',
'test_ui_stack.c',
'test_hover.c',
'test_hoversel.c',
'test_icon.c',
'test_icon_desktops.c',
'test_icon_animated.c',
'test_image.c',
'test_index.c',
'test_inwin.c',
'test_label.c',
'test_launcher.c',
'test_layout.c',
'test_list.c',
'test_map.c',
'test_main_menu.c',
'test_menu.c',
'test_multi.c',
'test_multibuttonentry.c',
'test_naviframe.c',
'test_naviframe_complex.c',
'test_notify.c',
'test_nstate.c',
'test_panel.c',
'test_panes.c',
'test_ui_panes.c',
'test_part_bg.c',
'test_part_shadow.c',
'test_photo.c',
'test_photocam.c',
'test_popup.c',
'test_prefs.c',
'test_progressbar.c',
'test_ui_progressbar.c',
'test_radio.c',
'test_scaling.c',
'test_scroller.c',
'test_ui_scroller.c',
'test_segment_control.c',
'test_separator.c',
'test_slider.c',
'test_ui_slider.c',
'test_ui_slider_interval.c',
'test_ui_spin.c',
'test_ui_spin_button.c',
'test_ui_datepicker.c',
'test_ui_timepicker.c',
'test_ui_tags.c',
'test_slideshow.c',
'test_spinner.c',
'test_store.c',
'test_sys_notify.c',
'test_systray.c',
'test_table.c',
'test_thumb.c',
'test_toolbar.c',
'test_tooltip.c',
'test_transit.c',
'test_transit_bezier.c',
'test_ui_box.c',
'test_ui_clock.c',
'test_ui_table.c',
'test_ui_popup.c',
'test_ui_textpath.c',
'test_video.c',
'test_weather.c',
'test_web.c',
'test_win_inline.c',
'test_win_keygrab.c',
'test_win_socket.c',
'test_win_plug.c',
'test_win_state.c',
'test_win_wm_rotation.c',
'test_win_dialog.c',
'test_win_modal.c',
'test_efl_ui_text.c',
'test_win_stack.c',
'test_win_indicator.c',
'test_gesture_framework.c',
'test_ui_tab_pager.c',
'test.h'
]
elementary_test = executable('elementary_test',
elementary_test_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args + [
'-Delementary_test_BIN_DIR="'+dir_bin+'"',
'-Delementary_test_LIB_DIR="'+dir_lib+'"',
'-Delementary_test_DATA_DIR="'+join_paths(dir_data,'elementary')+'"'
]
)
elementary_config_src = [
'config.c'
]
elementary_config = executable('elementary_config',
elementary_config_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args,
)
elementary_quicklaunch_src = [
'quicklaunch.c'
]
elementary_quicklaunch = executable('elementary_quicklaunch',
elementary_quicklaunch_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args,
)
elementary_codegen_src = [
'elementary_codegen.c'
]
elementary_codegen = executable('elementary_codegen',
elementary_codegen_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args,
)
elm_prefs_cc_src = [
'elm_prefs_cc.h',
'elm_prefs_cc.c',
'elm_prefs_cc_mem.c',
'elm_prefs_cc_out.c',
'elm_prefs_cc_parse.c',
'elm_prefs_cc_handlers.c'
]
elm_prefs_cc = executable('elm_prefs_cc',
elm_prefs_cc_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args,
)
elementary_run_src = [
'run.c'
]
elementary_run = executable('elementary_run',
elementary_run_src,
dependencies: [elementary] + elementary_deps + elementary_pub_deps,
install: true,
c_args : package_c_args,
)

5
src/bin/elua/meson.build Normal file
View File

@ -0,0 +1,5 @@
executable('elua',
'main.c',
dependencies: [eina, ecore, elua, intl],
install: true,
)

View File

@ -0,0 +1,24 @@
embryo_cc_src = [
'embryo_cc_amx.h',
'embryo_cc_osdefs.h',
'embryo_cc_sc.h',
'embryo_cc_sc1.c',
'embryo_cc_sc2.c',
'embryo_cc_sc3.c',
'embryo_cc_sc4.c',
'embryo_cc_sc5.c',
'embryo_cc_sc6.c',
'embryo_cc_sc7.c',
'embryo_cc_scexpand.c',
'embryo_cc_sclist.c',
'embryo_cc_scvars.c',
'embryo_cc_prefix.c',
'embryo_cc_prefix.h'
]
embryo_cc = executable('embryo_cc',
embryo_cc_src,
dependencies: [embryo, m, buildsystem],
install: true,
c_args : package_c_args,
)

View File

@ -0,0 +1,19 @@
eolian_gen_src = [
'main.c',
'main.h',
'types.c',
'types.h',
'headers.c',
'headers.h',
'sources.c',
'sources.h',
'docs.c',
'docs.h'
]
eolian_gen = executable('eolian_gen',
eolian_gen_src,
dependencies: eolian,
install: true,
c_args : package_c_args,
)

View File

@ -0,0 +1,6 @@
ethumb_bin = executable('ethumb',
'ethumb.c',
dependencies: [ecore, ethumb],
install: true,
c_args : package_c_args,
)

View File

@ -0,0 +1,24 @@
ethumbd = executable('ethumbd',
'ethumbd.c',
install: true,
dependencies : [ecore, ethumb, ethumb_client, ecore, eldbus],
include_directories : config_dir,
c_args : package_c_args,
)
ethumbd_client = executable('ethumbd_client',
'ethumbd_client.c',
install: true,
dependencies : [ecore, ethumb, ethumb_client, ecore],
include_directories : config_dir,
c_args : package_c_args,
)
ethumbd_slave = executable('ethumbd_slave',
'ethumbd_slave.c',
install: true,
install_dir : join_paths(dir_lib, 'ethumb_client', 'utils', version_name),
dependencies : [ecore, ethumb, ethumb_client, ecore],
include_directories : config_dir,
c_args : package_c_args,
)

View File

@ -0,0 +1,7 @@
install_subdir('eina',
install_dir : join_paths(dir_data, 'elua', 'modules')
)
install_data(files(['eo.lua', 'eolian.lua']),
install_dir : join_paths(dir_data, 'elua', 'modules')
)

View File

@ -0,0 +1,50 @@
edje_external_elementary = [
'private.h',
'elm.c',
'elm_actionslider.c',
'elm_bg.c',
'elm_bubble.c',
'elm_button.c',
'elm_calendar.c',
'elm_check.c',
'elm_clock.c',
'elm_combobox.c',
'elm_entry.c',
'elm_fileselector.c',
'elm_fileselector_button.c',
'elm_fileselector_entry.c',
'elm_frame.c',
'elm_gengrid.c',
'elm_genlist.c',
'elm_hoversel.c',
'elm_icon.c',
'elm_index.c',
'elm_label.c',
'elm_list.c',
'elm_map.c',
'elm_multibuttonentry.c',
'elm_naviframe.c',
'elm_notify.c',
'elm_panes.c',
'elm_photocam.c',
'elm_progressbar.c',
'elm_radio.c',
'elm_scroller.c',
'elm_segment_control.c',
'elm_slider.c',
'elm_slideshow.c',
'elm_spinner.c',
'elm_thumb.c',
'elm_toolbar.c',
'elm_video.c',
'elm_web.c'
]
ecore_systemd_mod = shared_module('elementary',
edje_external_elementary,
dependencies: [edje, elementary, elementary_deps],
install: true,
install_dir: mod_install_dir,
c_args : elm_package_c_args,
)
module_files += join_paths(mod_install_dir, 'libelementary.' + sys_mod_extension)

View File

@ -0,0 +1,8 @@
ecore_systemd_mod = shared_module('emotion',
'emotion.c',
dependencies: [edje, emotion],
install: true,
install_dir: mod_install_dir,
c_args : emotion_package_c_args
)
module_files += join_paths(mod_install_dir, 'libemotion.' + sys_mod_extension)

View File

@ -0,0 +1,12 @@
edje_externals = ['emotion', 'elementary']
foreach edje_external : edje_externals
#!?%$§#! custom nane for edje externals
if (edje_external == 'elementary')
mod_install_dir = join_paths(dir_lib, 'edje', 'modules', 'elm', version_name)
else
mod_install_dir = join_paths(dir_lib, 'edje', 'modules', edje_external, version_name)
endif
subdir(edje_external)
endforeach

View File

@ -0,0 +1,76 @@
examples = [
'ecore_event_example_01',
'ecore_event_example_02',
'ecore_exe_example',
'ecore_exe_example_child',
'ecore_fd_handler_example',
'ecore_file_download_example',
'ecore_idler_example',
'ecore_job_example',
'ecore_pipe_gstreamer_example',
'ecore_pipe_simple_example',
'ecore_poller_example',
'ecore_thread_example',
'ecore_time_functions_example',
'ecore_timer_example',
'ecore_getopt_example'
]
gnutls = dependency('gnutls', required : false)
if gnutls.found()
examples += ['ecore_fd_handler_gnutls_example']
endif
foreach example : examples
executable(example, example + '.c', dependencies: [eina, ecore, gstreamer, ecore_file, gnutls])
endforeach
examples = [
# 'ecore_audio_custom',
# 'ecore_audio_playback',
# 'ecore_audio_to_ogg',
]
foreach example : examples
executable(example, example + '.c', dependencies: [eina, ecore, ecore_audio])
endforeach
examples = [
'ecore_con_client_example',
'ecore_con_client_simple_example',
'ecore_con_lookup_example',
'ecore_con_server_example',
'ecore_con_server_http_example',
'ecore_con_server_simple_example',
'ecore_con_url_cookies_example',
'ecore_con_url_download_example',
'ecore_con_url_headers_example',
'ecore_client_bench',
'ecore_server_bench',
]
foreach example : examples
executable(example, example + '.c', dependencies: [eina, ecore, ecore_con])
endforeach
examples = [
'ecore_animator_example',
'ecore_evas_basics_example',
'ecore_evas_buffer_example_01',
'ecore_evas_buffer_example_02',
'ecore_evas_callbacks',
'ecore_evas_ews_example',
'ecore_evas_object_example',
'ecore_evas_window_sizes_example',
]
foreach example : examples
executable(example, example + '.c',
dependencies: [eina, ecore_evas],
c_args : [
'-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"']
)
endforeach
# 'ecore_imf_example',

View File

@ -0,0 +1,8 @@
examples = [
'ecore_avahi_browse_example',
'ecore_avahi_example',
]
foreach example : examples
executable(example, example + '.c', dependencies: [ecore_avahi_deps, ecore_avahi])
endforeach

View File

@ -0,0 +1,135 @@
edc_files = [
'animations.edc',
'animations2.edc',
'basic.edc',
'basic2.edc',
'bezier-transition-example.edc',
'box.edc',
'box_example.edc',
'color-class.edc',
'drag.edc',
'dynamic_multiseat.edc',
'edje-group.edc',
'edje-nested.edc',
'edje-threshold.edc',
'edje_example.edc',
'embryo_custom_state.edc',
'embryo_pong.edc',
'embryo_run_program.edc',
'embryo_set_state.edc',
'embryo_set_state_anim.edc',
'embryo_set_text.edc',
'embryo_timer.edc',
'embryo_tween_anim.edc',
'entry.edc',
'external_elm_anchorblock.edc',
'external_elm_button.edc',
'external_elm_check.edc',
'external_elm_panes.edc',
'external_emotion_elm.edc',
'focus.edc',
'lua_script.edc',
'messages_echo.edc',
'multiseat.edc',
'multiseat_custom_names.edc',
'multiseat_filter.edc',
'perspective.edc',
'signals-messages.edc',
'signalsBubble.edc',
'sigtest.edc',
'svg.edc',
'swallow.edc',
'table.edc',
'text.edc',
'textblock-hyphen.edc',
'toggle_using_filter.edc'
]
if (get_option('physics'))
edc_files += [
'physics_3d.edc',
'physics_actions.edc',
'physics_backcull.edc',
'physics_basic.edc',
'physics_complex.edc',
'physics_soft_bodies.edc'
]
endif
themes = []
foreach edc_file : edc_files
themes += custom_target('edje_cc_' + edc_file,
input : edc_file,
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-id', meson.current_source_dir(),
'-fd', meson.current_source_dir(),
'-sd', meson.current_source_dir(),
'-vd', meson.current_source_dir(),
'-dd', meson.current_source_dir(),
'-md', meson.current_source_dir(),
'-td', meson.current_source_dir(),
'@INPUT@', '@OUTPUT@'],
depends : edje_cc, )
endforeach
codegen = custom_target('edje_cc_codegen_edc',
input : 'codegen.edc',
output : '@BASENAME@.edj',
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
'-id', meson.current_source_dir(),
'-fd', meson.current_source_dir(),
'-sd', meson.current_source_dir(),
'-vd', meson.current_source_dir(),
'-dd', meson.current_source_dir(),
'-md', meson.current_source_dir(),
'-td', meson.current_source_dir(),
'@INPUT@', '@OUTPUT@'],
depends : edje_cc, )
themes += custom_target('edje_codegen_codegen.edj',
input : codegen,
output : ['@BASENAME@_example_generated.c', '@BASENAME@_example_generated.h'],
command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_codegen.full_path(),
'--prefix=codegen_example', '@INPUT@',
'example_group', '@OUTPUT0@', '@OUTPUT1@'],
depends : [edje_codegen, themes])
edje_examples = [
'animations2',
'edje-animations',
'edje-basic',
'edje-basic2',
'edje-box',
'edje-box2',
'edje-codegen-example',
'edje-color-class',
'edje-drag',
'edje-dynamic-multiseat',
'edje-edit-part-box',
'edje-entry',
'edje-focus',
'edje-multiseat',
'edje-multiseat-custom-names',
'edje-multiseat-filter',
'edje-multisense',
'edje-perspective',
'edje-signals-messages',
'edje-swallow',
'edje-swallow2',
'edje-table',
'edje-text',
'edje-textblock-hyphenation',
'edje_example',
'signals2',
'sigtest',
'svg-test'
]
foreach edje_example : edje_examples
executable(edje_example,
[edje_example + '.c'] + themes,
dependencies: [edje, ecore_evas],
)
endforeach

View File

@ -0,0 +1,13 @@
examples = [
'eet-basic',
'eet-file',
'eet-data-simple',
'eet-data-nested',
'eet-data-file_descriptor_01',
'eet-data-file_descriptor_02',
'eet-data-cipher_decipher'
]
foreach example : examples
executable(example, example + '.c', dependencies: eet)
endforeach

View File

@ -0,0 +1,47 @@
examples = [
'eina_accessor_01',
'eina_array_01',
'eina_array_02',
'eina_error_01',
'eina_file_01',
'eina_file_02',
'eina_hash_01',
'eina_hash_02',
'eina_hash_03',
'eina_hash_04',
'eina_hash_05',
'eina_hash_06',
'eina_hash_07',
'eina_hash_08',
'eina_iterator_01',
'eina_list_01',
'eina_list_02',
'eina_list_03',
'eina_list_04',
'eina_log_01',
'eina_log_02',
'eina_log_03',
'eina_inlist_01',
'eina_inlist_02',
'eina_inlist_03',
'eina_str_01',
'eina_strbuf_01',
'eina_stringshare_01',
'eina_tmpstr_01',
#that examples is using ecore evas ... WTF
#'eina_tiler_01',
'eina_simple_xml_parser_01',
'eina_value_01',
'eina_value_02',
'eina_value_03',
'eina_inarray_01',
'eina_inarray_02',
'eina_inarray_03',
'eina_magic_01',
'eina_xattr_01',
'eina_xattr_02'
]
foreach example : examples
executable(example, example + '.c', dependencies: eina)
endforeach

View File

@ -0,0 +1,15 @@
files = [
'efl_io_manager_ls',
'efl_io_manager_open',
'efl_io_manager_open_multi',
'eio_file_copy',
'eio_file_ls',
'eio_sentry'
]
foreach file : files
executable(file,
file + '.c',
dependencies: [ecore, eio],
)
endforeach

View File

@ -0,0 +1,17 @@
examples = [
'connman-list-services',
'ofono-dial',
'banshee',
'complex-types',
'complex-types-server',
'server',
'client',
'simple-signal-emit',
'complex-types-client-eina-value',
'connect-address',
'dbusmodel',
]
foreach example : examples
executable(example, example + '.c', dependencies: [eldbus, ecore])
endforeach

View File

@ -0,0 +1,7 @@
examples = [
'emile_base64'
]
foreach example : examples
executable(example, example + '.c', dependencies: emile)
endforeach

View File

@ -0,0 +1,14 @@
files = [
'emotion_basic_example',
'emotion_border_example',
'emotion_generic_example',
'emotion_generic_subtitle_example',
'emotion_signals_example',
]
foreach file : files
executable(file,
file + '.c',
dependencies: [emotion, evas, ecore_evas, ecore],
)
endforeach

View File

@ -0,0 +1,10 @@
files = [
'ethumb_dbus'
]
foreach file : files
executable(file,
file + '.c',
dependencies: [ethumb, ethumb_client, ecore, eina],
)
endforeach

View File

@ -0,0 +1,57 @@
examples = [
'evas-3d-aabb',
'evas-3d-blending',
'evas-3d-colorpick',
'evas-3d-cube2',
'evas-3d-cube',
'evas-3d-cube-rotate',
'evas-3d-eet',
'evas-3d-fog',
'evas-3d-frustum',
'evas-3d-hull',
'evas-3d-md2',
'evas-3d-mmap-set',
'evas-3d-obj',
'evas-3d-parallax-occlusion',
'evas-3d-pick',
'evas-3d-ply',
'evas-3d-proxy',
'evas-3d-shadows',
'evas-3d-static-lod',
#'evas-aspect-hints',
'evas-box',
'evas-buffer-simple',
'evas-event-filter',
'evas-events',
'evas-gl',
'evas-hints',
'evas-images2',
'evas-images3',
'evas-images4',
'evas-images5',
'evas-images',
'evas-init-shutdown',
'evas-map-aa',
'evas-map-aa-eo',
'evas-map-utils',
'evas-map-utils-eo',
'evas-multiseat-events',
'evas-multi-touch',
'evas-object-manipulation',
'evas-object-manipulation-eo',
'evas-smart-interface',
'evas-smart-object',
'evas-stacking',
'evas-table',
'evas-textblock-obstacles',
'evas-text',
'evas-transparent',
'evas-vg-batman',
'evas-vg-simple',
]
foreach example : examples
executable(example, example + '.c',
dependencies: [eina, ecore_evas, ecore_file, m],
c_args : ['-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"'])
endforeach

View File

@ -0,0 +1,8 @@
generic_loaders = ['vlc']
foreach loader : generic_loaders
if get_option('emotion-generic-loaders-disabler').contains(loader) == false
subdir(loader)
endif
endforeach

View File

@ -0,0 +1,8 @@
vlc = dependency('libvlc')
executable('vlc',
'emotion_generic_vlc.c',
dependencies: [emotion_generic, eina, ecore, rt, vlc],
install: true,
install_dir: join_paths(dir_lib, 'emotion', 'generic_players', version_name)
)

View File

@ -0,0 +1,6 @@
generic_src = files([
'shmfile.c',
'shmfile.h',
'timeout.c',
'timeout.h',
])

View File

@ -0,0 +1,14 @@
# gstreamer 0.1 support
#generic_deps = [dependency('gstreamer')]
#generic_src = files([
# 'main_0_10.c'
#])
generic_src = files([
'main.c'
])
generic_deps = [dependency('gstreamer-1.0')]
generic_support = ['264','3g2','3gp','3gp2','3gpp','3gpp2','3p2','asf','avi','bdm','bdmv','clpi','cpi','dv','fla','flv','m1v','m2t','m2v','m4v','mkv','mov','mp2','mp2ts','mp4','mpe','mpeg','mpg','mpl','mpls','mts','mxf','nut','nuv','ogg','ogm','ogv','qt','rm','rmj','rmm','rms','rmx','rmvb','rv','swf','ts','webm','weba','wmv']

View File

@ -0,0 +1,42 @@
generic_loaders = ['gst', 'pdf',
'ps',
'raw',
'svg',
'xcf']
generic_src = []
generic_deps = []
subdir('common')
common = static_library('evas_loader_common',
generic_src,
include_directories : config_dir,
dependencies: [generic_deps, rt],
)
foreach loader : generic_loaders
generic_src = []
generic_deps = []
generic_support = []
if get_option('evas-loaders-disabler').contains(loader) == false
subdir(loader)
tmp = shared_module('image_loader.'+loader,
generic_src,
include_directories : config_dir + [include_directories('common')],
link_with : common,
dependencies: [eina, generic_deps],
name_prefix : 'evas_',
install_dir : join_paths(dir_lib, 'evas', 'utils'),
install : true,
)
set_variable(loader, tmp)
mod = join_paths(dir_lib, 'evas', 'utils', 'evas_image_loader.'+loader+'.'+sys_mod_extension)
evas_loader_map += [[mod, generic_support]]
else
message('Image loader '+loader+' disabled')
endif
endforeach

View File

@ -0,0 +1,14 @@
generic_src = files([
'main.cpp'
])
generic_deps = [dependency('poppler-cpp')]
generic_support = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
install_data('evas_generic_pdf_loader.libreoffice',
install_dir : join_paths(dir_lib, 'evas', 'utils')
)
generic_pdf_loader_types = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
meson.add_install_script( join_paths('..','..','..','..','meson','evas_loader_conf.sh'), join_paths(dir_lib, 'evas', 'utils', 'evas_generic_pdf_loader.libreoffice'), generic_pdf_loader_types)

View File

@ -0,0 +1,5 @@
generic_src = files([
'main.c'
])
generic_deps = [dependency('libspectre')]

View File

@ -0,0 +1,6 @@
generic_src = files([
'main.c'
])
generic_deps = [dependency('libraw')]
generic_support = ['arw','cr2','crw','dcr','dng','k25','kdc','erf','mrw','nef','nrf','nrw','orf','rw2','pef','raf','sr2','srf','x3f']

View File

@ -0,0 +1,12 @@
generic_src = files([
'main.c'
])
rsvg = dependency('librsvg-2.0')
if rsvg.version() >= '2.36.0'
config_h.set('HAVE_SVG_2_36', '1')
endif
generic_deps = [rsvg]
generic_support = ['svgz', 'svg.gz']

View File

@ -0,0 +1,8 @@
generic_src = files([
'common.h',
'main.c',
'pixelfuncs.c'
])
generic_deps = [dependency('zlib')]
generic_support = ['xcf.gz']

222
src/lib/ecore/meson.build Normal file
View File

@ -0,0 +1,222 @@
ecore_deps = [intl]
ecore_pub_deps = [eina, eo, efl]
pub_legacy_eo_files = [
'ecore_exe.eo',
'ecore_event_message.eo',
'ecore_event_message_handler.eo',
'efl_loop_timer.eo'
]
pub_eo_file_target = []
foreach eo_file : pub_legacy_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h', eo_file + '.legacy.h',],
install : true,
install_dir : dir_package_include,
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', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
'-gchl', '@INPUT@'])
endforeach
pub_eo_files = [
'efl_app.eo',
'efl_loop.eo',
'efl_loop_consumer.eo',
'efl_loop_fd.eo',
'efl_loop_handler.eo',
'efl_loop_message.eo',
'efl_loop_message_handler.eo',
'efl_exe.eo',
'efl_thread.eo',
'efl_threadio.eo',
'efl_appthread.eo',
'efl_task.eo',
'efl_io_closer_fd.eo',
'efl_io_positioner_fd.eo',
'efl_io_reader_fd.eo',
'efl_io_sizer_fd.eo',
'efl_io_writer_fd.eo',
'efl_io_stdin.eo',
'efl_io_stdout.eo',
'efl_io_stderr.eo',
'efl_io_file.eo',
'efl_io_copier.eo',
'efl_io_buffered_stream.eo',
'efl_interpolator.eo',
'efl_interpolator_linear.eo',
'efl_interpolator_accelerate.eo',
'efl_interpolator_decelerate.eo',
'efl_interpolator_sinusoidal.eo',
'efl_interpolator_divisor.eo',
'efl_interpolator_bounce.eo',
'efl_interpolator_spring.eo',
'efl_interpolator_cubic_bezier.eo',
'efl_loop_message_future_handler.eo',
'efl_loop_message_future.eo',
'efl_model_item.eo',
'efl_model_container.eo',
'efl_model_container_item.eo',
'efl_model_composite_boolean.eo',
'efl_model_composite_boolean_children.eo',
'efl_model_composite_selection.eo',
'efl_model_composite_selection_children.eo',
'efl_model_composite.eo'
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
# special handling, because this is already eo API and legacy API
pub_eo_files += ['efl_loop_timer.eo']
pub_eo_types_files = []
eolian_include_directories += ['-I', meson.current_source_dir()]
ecore_header_src = [
'Ecore.h',
'Ecore_Common.h',
'Ecore_Legacy.h',
'Ecore_Eo.h',
'Efl_Core.h',
'efl_general.h',
'Ecore_Getopt.h'
]
ecore_src = [
'efl_app.c',
'ecore.c',
'ecore_alloc.c',
'ecore_anim.c',
'ecore_app.c',
'ecore_events.c',
'ecore_getopt.c',
'ecore_glib.c',
'ecore_idle_enterer.c',
'ecore_idle_exiter.c',
'ecore_idler.c',
'ecore_job.c',
'ecore_main.c',
'ecore_event_message.c',
'ecore_event_message_handler.c',
'efl_loop.c',
'efl_loop_consumer.c',
'efl_loop_fd.c',
'efl_loop_handler.c',
'efl_loop_message.c',
'efl_loop_message_future.c',
'efl_loop_message_handler.c',
'efl_loop_message_future_handler.c',
'efl_task.c',
'efl_io_closer_fd.c',
'efl_io_positioner_fd.c',
'efl_io_reader_fd.c',
'efl_io_sizer_fd.c',
'efl_io_writer_fd.c',
'efl_io_stdin.c',
'efl_io_stdout.c',
'efl_io_stderr.c',
'efl_io_file.c',
'efl_io_copier.c',
'efl_io_buffered_stream.c',
'efl_model_item.c',
'efl_model_container.c',
'efl_model_container_item.c',
'efl_model_container_private.h',
'efl_model_composite.c',
'efl_model_composite_boolean.c',
'efl_model_composite_selection.c',
'efl_model_accessor_view.c',
'efl_model_accessor_view_private.h',
'efl_interpolator.c',
'efl_interpolator_linear.c',
'efl_interpolator_accelerate.c',
'efl_interpolator_decelerate.c',
'efl_interpolator_sinusoidal.c',
'efl_interpolator_divisor.c',
'efl_interpolator_bounce.c',
'efl_interpolator_spring.c',
'efl_interpolator_cubic_bezier.c',
'ecore_main_timechanges.c',
'ecore_pipe.c',
'ecore_poller.c',
'ecore_time.c',
'ecore_timer.c',
'ecore_thread.c',
'ecore_throttle.c',
'ecore_exe.c',
'ecore_exe_private.h',
'ecore_private.h',
'ecore_internal.h',
'ecore_main_common.h'
]
if target_machine.system() == 'windows'
#nothing for now ... needs testing
else
ecore_src += ['ecore_signal.c', 'ecore_exe_posix.c']
endif
if get_option('glib') == true
ecore_deps += dependency('glib-2.0')
ecore_deps += dependency('gthread-2.0')
config_h.set('GLIB_INTEGRATION_ALWAYS', '1')
config_h.set('HAVE_GLIB', '1')
endif
if get_option('g-mainloop') == true
config_h.set('USE_G_MAIN_LOOP', '1')
endif
if get_option('gstreamer') == true
gstreamer = dependency('gstreamer-1.0')
ecore_deps += gstreamer
endif
if get_option('systemd') == true
ecore_deps += systemd
endif
ecore_lib = library('ecore',
ecore_src, pub_eo_file_target,
dependencies: ecore_pub_deps + [m, buildsystem, ecore_deps],
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
c_args : package_c_args,
version : meson.project_version()
)
ecore = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_pub_deps,
)
eolian_ecore_dir = join_paths(eolian_include_dir, package_version_name)
install_data(pub_eo_files + pub_eo_types_files,
install_dir: eolian_ecore_dir
)
install_headers(ecore_header_src,
install_dir : dir_package_include,
)
#TODO:
# HAVE_TIZEN_CONFIGUREATION_MANAGER
# avahi

View File

@ -0,0 +1,92 @@
ecore_audio_deps = [ecore]
ecore_audio_pub_deps = [eina, eo]
pub_eo_files = [
'ecore_audio.eo',
'ecore_audio_in.eo',
'ecore_audio_out.eo',
'ecore_audio_in_sndfile.eo',
'ecore_audio_out_sndfile.eo',
'ecore_audio_out_pulse.eo',
'ecore_audio_in_tone.eo',
'ecore_audio_out_wasapi.eo'
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
pub_eo_types_files = []
ecore_audio_header_src = [
'Ecore_Audio.h',
'ecore_audio_obj.h',
'ecore_audio_obj_in.h',
'ecore_audio_obj_out.h',
'ecore_audio_obj_in_tone.h',
'ecore_audio_protected.h',
'ecore_audio_obj_out_pulse.h',
'ecore_audio_obj_in_sndfile.h',
'ecore_audio_obj_out_sndfile.h',
'ecore_audio_obj_out_wasapi.h'
]
ecore_audio_src = [
'ecore_audio.c',
'ecore_audio_obj.c',
'ecore_audio_obj_in.c',
'ecore_audio_obj_out.c',
'ecore_audio_obj_in_tone.c',
'ecore_audio_private.h'
]
ecore_audio_src += [
'ecore_audio_obj_in_sndfile.c',
'ecore_audio_obj_out_sndfile.c',
'ecore_audio_sndfile_vio.c'
]
ecore_audio_deps += dependency('sndfile')
config_h.set('HAVE_SNDFILE', '1')
if get_option('pulseaudio')
ecore_audio_deps += dependency('libpulse')
ecore_audio_src += [
'ecore_audio_pulse_ml.c',
'ecore_audio_obj_out_pulse.c'
]
config_h.set('HAVE_PULSE', '1')
endif
ecore_audio_lib = library('ecore_audio',
ecore_audio_src, pub_eo_file_target,
dependencies: ecore_audio_pub_deps + [m] + ecore_audio_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_audio = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_audio_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_audio_pub_deps,
)
install_data(pub_eo_files + pub_eo_types_files,
install_dir: eolian_ecore_dir
)
install_headers(ecore_audio_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,26 @@
ecore_avahi_deps = []
ecore_avahi_pub_deps = [eina, ecore]
ecore_avahi_src = ['ecore_avahi.c']
ecore_avahi_header_src = ['Ecore_Avahi.h']
ecore_avahi_deps += dependency('avahi-client')
config_h.set('HAVE_AVAHI', '1')
ecore_avahi_lib = library('ecore_avahi',
ecore_avahi_src,
dependencies: [m] + ecore_avahi_deps + ecore_avahi_pub_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
version : meson.project_version()
)
ecore_avahi = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_avahi_lib,
dependencies: ecore_avahi_pub_deps,
)
install_headers(ecore_avahi_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,37 @@
ecore_buffer_deps = [dependency('wayland-client'), dependency('wayland-server'), ecore]
ecore_buffer_pub_deps = [eina]
ecore_buffer_header_src = [
'Ecore_Buffer.h',
'Ecore_Buffer_Queue.h'
]
ecore_buffer_src = [
'bq_mgr_protocol.c',
'buffer_queue.c',
'shared_buffer.c',
'ecore_buffer.c',
'ecore_buffer_queue_main.c',
'ecore_buffer_con.c',
'ecore_buffer_provider.c',
'ecore_buffer_consumer.c'
]
ecore_buffer_lib = library('ecore_buffer',
ecore_buffer_src, pub_eo_file_target,
dependencies: ecore_buffer_pub_deps + ecore_buffer_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_buffer = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_buffer_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_buffer_pub_deps,
)
install_headers(ecore_buffer_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,48 @@
ecore_cocoa_deps = [eina, ecore_input, ecore, emile, eet]
ecore_cocoa_pub_deps = [eina]
pub_eo_file_target = []
ecore_cocoa_header_src = [
'Ecore_Cocoa.h'
]
ecore_cocoa_src = [
'ecore_cocoa.m',
'ecore_cocoa_keys.h',
'ecore_cocoa_window.h',
'ecore_cocoa_window.m',
'ecore_cocoa_cnp.m',
'ecore_cocoa_app.m',
'ecore_cocoa_app.h',
'ecore_cocoa_private.h'
]
evas_include_directories = [
include_directories(join_paths('..', 'evas')),
include_directories(join_paths('..', 'evas','canvas')),
include_directories(join_paths('..', 'evas','common')),
include_directories(join_paths('..', 'evas','common3d')),
include_directories(join_paths('..', 'evas','common3d', 'save_load')),
include_directories(join_paths('..', 'evas','include')),
include_directories(join_paths('..', 'evas','filters'))
]
ecore_cocoa_lib = library('ecore_cocoa',
ecore_cocoa_src, pub_eo_file_target,
dependencies: ecore_cocoa_deps + ecore_cocoa_pub_deps,
include_directories : config_dir + evas_include_directories,
link_args : ['-lobjc', '-framework', 'CoreFoundation', '-framework', 'cocoa', '-Wl,-U,_evas_textblock_text_markup_to_utf8'],
install: true,
version : meson.project_version()
)
ecore_cocoa = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_cocoa_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_cocoa_pub_deps,
)
install_headers(ecore_cocoa_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,220 @@
ecore_con_deps = []
ecore_con_pub_deps = [eina, eo, efl, ecore]
if target_machine.system() == 'windows' or target_machine.system() == 'cygwin'
ipv6 = cc.compiles('''
#include <ws2tcpip.h>
struct ipv6_mreq tmp;
''')
else
ipv6 = cc.compiles('''
#include <netinet/in.h>
struct ipv6_mreq tmp;
''')
endif
if ipv6
config_h.set('HAVE_IPV6', 1)
endif
pub_legacy_eo_files = [
'ecore_con_eet_base.eo',
'ecore_con_eet_server_obj.eo',
'ecore_con_eet_client_obj.eo'
]
pub_eo_file_target = []
foreach eo_file : pub_legacy_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h', eo_file + '.legacy.h',],
install : true,
install_dir : dir_package_include,
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', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
'-gchl', '@INPUT@'])
endforeach
pub_eo_files = [
'efl_net_socket.eo',
'efl_net_socket_simple.eo',
'efl_net_socket_fd.eo',
'efl_net_socket_tcp.eo',
'efl_net_socket_udp.eo',
'efl_net_dialer.eo',
'efl_net_dialer_simple.eo',
'efl_net_dialer_tcp.eo',
'efl_net_dialer_udp.eo',
'efl_net_dialer_http.eo',
'efl_net_dialer_websocket.eo',
'efl_net_server.eo',
'efl_net_server_simple.eo',
'efl_net_server_fd.eo',
'efl_net_server_ip.eo',
'efl_net_server_tcp.eo',
'efl_net_server_udp.eo',
'efl_net_server_udp_client.eo',
'efl_net_socket_ssl.eo',
'efl_net_ssl_context.eo',
'efl_net_dialer_ssl.eo',
'efl_net_server_ssl.eo',
'efl_net_control_access_point.eo',
'efl_net_control_technology.eo',
'efl_net_control_manager.eo',
'efl_net_session.eo',
'efl_net_ip_address.eo',
]
if target_machine.system() == 'windows'
pub_eo_files += [
'efl_net_socket_windows.eo',
'efl_net_dialer_windows.eo',
'efl_net_server_windows.eo'
]
else
pub_eo_files += [
'efl_net_socket_unix.eo',
'efl_net_dialer_unix.eo',
'efl_net_server_unix.eo'
]
endif
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h', eo_file + '.legacy.h',],
install : true,
install_dir : dir_package_include,
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', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
'-gch', '@INPUT@'])
endforeach
pub_eo_types_files = [
'efl_net_types.eot',
'efl_net_http_types.eot',
'efl_net_ssl_types.eot'
]
foreach eo_file : pub_eo_types_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : dir_package_include,
command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
'-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
'-gh', '@INPUT@'])
endforeach
eolian_include_directories += ['-I', meson.current_source_dir()]
ecore_con_header_src = [
'Ecore_Con.h',
'Efl_Net.h',
'Ecore_Con_Eet.h',
'Ecore_Con_Eet_Legacy.h',
'Ecore_Con_Eet_Eo.h'
]
ecore_con_src = [
'ecore_con_alloc.c',
'ecore_con.c',
'ecore_con_proxy_helper.c',
'ecore_con_legacy.c',
'ecore_con_eet.c',
'ecore_con_socks.c',
'ecore_con_url.c',
'ecore_con_url_curl.c',
'ecore_con_url_curl.h',
'ecore_con_private.h',
'efl_net_socket.c',
'efl_net_socket_simple.c',
'efl_net_socket_fd.c',
'efl_net_socket_tcp.c',
'efl_net_socket_udp.c',
'efl_net_dialer.c',
'efl_net_dialer_simple.c',
'efl_net_dialer_tcp.c',
'efl_net_dialer_udp.c',
'efl_net_dialer_http.c',
'efl_net_dialer_websocket.c',
'efl_net_server.c',
'efl_net_server_simple.c',
'efl_net_server_fd.c',
'efl_net_server_ip.c',
'efl_net_server_tcp.c',
'efl_net_server_udp.c',
'efl_net_server_udp_client.c',
'efl_net_socket_ssl.c',
'efl_net_ssl_context.c',
'efl_net_dialer_ssl.c',
'efl_net_server_ssl.c',
'ecore_con_local.c',
'efl_net_ip_address.c'
]
if target_machine.system() == 'windows'
ecore_con_src += [
'efl_net_socket_windows.c',
'efl_net_dialer_windows.c',
'efl_net_server_windows.c'
]
else
ecore_con_src += [
'efl_net_socket_unix.c',
'efl_net_dialer_unix.c',
'efl_net_server_unix.c'
]
endif
if get_option('network-backend') == 'none'
ecore_con_src += [
'efl_net_control_access_point-none.c',
'efl_net_control_technology-none.c',
'efl_net_control-none.c',
'efl_net_session-none.c'
]
else
ecore_con_src += [
'efl_net-connman.h',
'efl_net-connman.c',
'efl_net_control_access_point-connman.c',
'efl_net_control_technology-connman.c',
'efl_net_control-connman.c',
'efl_net_session-connman.c'
]
ecore_con_deps += eldbus
endif
ecore_con_deps += crypto
ecore_con_lib = library('ecore_con',
ecore_con_src, pub_eo_file_target,
dependencies: [ecore, ecore_con_deps, http_parser, eldbus, eet, systemd, buildsystem, dl],
include_directories : config_dir,
install: true,
c_args : package_c_args,
version : meson.project_version()
)
ecore_con = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_con_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_con_pub_deps,
)
install_data(pub_eo_files + pub_eo_types_files + pub_legacy_eo_files,
install_dir: eolian_ecore_dir
)
install_headers(ecore_con_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,39 @@
ecore_drm_deps = [eeze, eldbus, ecore_input, ecore, eo, efl, eina, m]
ecore_drm_pub_deps = [dependency('libinput', version: '>= 1.6.0'), dependency('libdrm', version: '>= 2.4'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.3.0'), dependency('gbm')]
ecore_drm_src = [
'ecore_drm_sprites.c',
'ecore_drm_fb.c',
'ecore_drm_evdev.c',
'ecore_drm_inputs.c',
'ecore_drm_output.c',
'ecore_drm_tty.c',
'ecore_drm_device.c',
'ecore_drm_launcher.c',
'ecore_drm_dbus.c',
'ecore_drm_logind.c',
'ecore_drm.c',
'ecore_drm_private.h'
]
ecore_drm_header_src = [
'Ecore_Drm.h'
]
ecore_drm_lib = library('ecore_drm',
ecore_drm_src,
dependencies: [m] + ecore_drm_deps + ecore_drm_pub_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
c_args : package_c_args,
)
ecore_drm = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_drm_lib,
dependencies: ecore_drm_pub_deps,
)
install_headers(ecore_drm_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,34 @@
ecore_drm2_deps = [eeze, elput, dl, libdrm]
ecore_drm2_pub_deps = [ecore]
ecore_drm2_header_src = [
'Ecore_Drm2.h'
]
ecore_drm2_src = [
'ecore_drm2_plane.c',
'ecore_drm2_fb.c',
'ecore_drm2_outputs.c',
'ecore_drm2_device.c',
'ecore_drm2.c',
'ecore_drm2_private.h'
]
ecore_drm2_lib = library('ecore_drm2',
ecore_drm2_src, pub_eo_file_target,
dependencies: ecore_drm2_pub_deps + ecore_drm2_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_drm2 = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_drm2_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_drm2_pub_deps,
)
install_headers(ecore_drm2_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,47 @@
ecore_evas_deps = [eina, ecore_input_evas, ecore_input, ecore, eet, evas, efl, eo, eina, emile]
ecore_evas_pub_deps = [evas, ecore]
pub_eo_file_target = []
ecore_evas_header_src = [
'Ecore_Evas_Types.h',
'Ecore_Evas.h',
]
ecore_evas_src = [
'ecore_evas.c',
'ecore_evas_buffer.c',
'ecore_evas_buffer.h',
'ecore_evas_deprecated.c',
'ecore_evas_drm.h',
'ecore_evas_ews.c',
'ecore_evas_module.c',
'ecore_evas_private.h',
'ecore_evas_extn.h',
'ecore_evas_extn.c',
'ecore_evas_wayland.h',
'ecore_evas_cocoa.h',
'ecore_evas_win32.h',
'ecore_evas_x11.h',
'ecore_evas_util.c'
]
ecore_evas_lib = library('ecore_evas',
ecore_evas_src, pub_eo_file_target,
dependencies: [ecore_evas_deps, buildsystem],
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_evas = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_evas_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: [evas],
)
install_headers(ecore_evas_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,34 @@
ecore_fb_deps = [ecore, ecore_input]
ecore_fb_pub_deps = [eina]
ecore_fb_header_src = [
'Ecore_Fb.h'
]
ecore_fb_src = [
'ecore_fb.c',
'ecore_fb_li.c',
'ecore_fb_ts.c',
'ecore_fb_vt.c',
'ecore_fb_keytable.h',
'ecore_fb_private.h'
]
ecore_fb_lib = library('ecore_fb',
ecore_fb_src, pub_eo_file_target,
dependencies: ecore_fb_pub_deps + ecore_fb_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_fb = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_fb_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_fb_pub_deps,
)
install_headers(ecore_fb_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,39 @@
ecore_file_deps = [ecore_con, ecore]
ecore_file_pub_deps = [eina]
ecore_file_src = [
'ecore_file.c',
'ecore_file_download.c',
'ecore_file_monitor.c',
'ecore_file_path.c',
'ecore_file_private.h'
]
if target_machine.system() == 'windows'
ecore_file_src += [ 'ecore_file_monitor_win32.c']
elif cc.has_header('sys/inotify.h')
ecore_file_src += [ 'ecore_file_monitor_inotify.c']
else
ecore_file_src += [ 'ecore_file_monitor_poll.c']
endif
ecore_file_header_src = ['Ecore_File.h']
ecore_file_lib = library('ecore_file',
ecore_file_src,
dependencies: ecore_file_deps + ecore_file_pub_deps + ecore_file_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
version : meson.project_version()
)
ecore_file = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_file_lib,
dependencies: ecore_file_pub_deps,
)
install_headers(ecore_file_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,34 @@
ecore_imf_deps = [ecore]
ecore_imf_pub_deps = [eina]
ecore_imf_header_src = [
'Ecore_IMF.h'
]
ecore_imf_src = [
'ecore_imf.c',
'ecore_imf_context.c',
'ecore_imf_module.c',
'ecore_imf_private.h',
]
ecore_imf_lib = library('ecore_imf',
ecore_imf_src, pub_eo_file_target,
dependencies: [buildsystem, ecore_imf_deps, ecore_imf_pub_deps],
include_directories : config_dir,
c_args : package_c_args,
install: true,
version : meson.project_version()
)
ecore_imf = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_imf_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_imf_pub_deps,
)
install_headers(ecore_imf_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,30 @@
ecore_imf_evas_header_src = [
'Ecore_IMF_Evas.h'
]
ecore_imf_evas_src = [
'ecore_imf_evas.c'
]
ecore_imf_evas_deps = [ecore_imf, evas]
ecore_imf_evas_pub_deps = [eina, eo, efl]
ecore_imf_evas_lib = library('ecore_imf_evas',
ecore_imf_evas_src,
dependencies: ecore_imf_evas_pub_deps + [m] + ecore_imf_evas_deps,
include_directories : config_dir + [include_directories('.')],
install: true,
c_args : package_c_args,
version : meson.project_version()
)
ecore_imf_evas = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_imf_evas_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_imf_evas_pub_deps,
)
install_headers(ecore_imf_evas_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,38 @@
ecore_input_deps = [ecore]
ecore_input_pub_deps = [eina, eo]
ecore_input_header_src = [
'Ecore_Input.h'
]
ecore_input_src = [
'ecore_input.c',
'ecore_input_compose.c',
'ecore_input_joystick.c',
'ecore_input_compose.h',
'ecore_input_private.h'
]
if get_option('eeze')
ecore_input_deps += eeze
endif
ecore_input_lib = library('ecore_input',
ecore_input_src, pub_eo_file_target,
dependencies: ecore_input_pub_deps + ecore_input_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_input = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_input_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_input_pub_deps,
)
install_headers(ecore_input_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,32 @@
ecore_input_evas_deps = [ecore, ecore_input, evas]
ecore_input_evas_pub_deps = [eina, evas]
pub_eo_file_target = []
ecore_input_evas_header_src = [
'Ecore_Input_Evas.h'
]
ecore_input_evas_src = [
'ecore_input_evas.c',
'ecore_input_evas_private.h',
]
ecore_input_evas_lib = library('ecore_input_evas',
ecore_input_evas_src, pub_eo_file_target,
dependencies: ecore_input_evas_pub_deps + ecore_input_evas_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_input_evas = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_input_evas_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_input_evas_pub_deps,
)
install_headers(ecore_input_evas_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,30 @@
ecore_ipc_deps = [ecore, ecore_con]
ecore_ipc_pub_deps = [eina]
ecore_ipc_header_src = [
'Ecore_Ipc.h'
]
ecore_ipc_src = [
'ecore_ipc.c',
'ecore_ipc_private.h',
]
ecore_ipc_lib = library('ecore_ipc',
ecore_ipc_src, pub_eo_file_target,
dependencies: ecore_ipc_deps + ecore_ipc_pub_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_ipc = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_ipc_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_ipc_pub_deps,
)
install_headers(ecore_ipc_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,31 @@
ecore_sdl_deps = [eina, ecore, ecore_input]
ecore_sdl_pub_deps = []
ecore_sdl_src = [
'ecore_sdl.c'
]
ecore_sdl_header_src = [
'Ecore_Sdl.h',
'Ecore_Sdl_Keys.h'
]
ecore_sdl_deps += dependency('sdl')
ecore_sdl_lib = library('ecore_sdl',
ecore_sdl_src,
dependencies: [m] + ecore_sdl_deps + ecore_sdl_pub_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
c_args : package_c_args,
)
ecore_sdl = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_sdl_lib,
dependencies: ecore_sdl_pub_deps,
)
install_headers(ecore_sdl_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,42 @@
ecore_wayland_deps = [ecore_input, ecore, eo, efl, eina]
ecore_wayland_pub_deps = [dependency('wayland-client', version: '>= 1.8.0'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.5.0'), dependency('uuid')]
ecore_wayland_src = [
'ecore_wl.c',
'ecore_wl_dnd.c',
'ecore_wl_input.c',
'ecore_wl_output.c',
'ecore_wl_window.c',
'ecore_wl_subsurf.c',
'ecore_wl_private.h',
'subsurface-protocol.c',
'subsurface-client-protocol.h',
'ivi-application-protocol.c',
'ivi-application-client-protocol.h',
'xdg-shell-client-protocol.h',
'xdg-shell-protocol.c',
'session-recovery-client-protocol.h',
'session-recovery-protocol.c'
]
ecore_wayland_header_src = [
'Ecore_Wayland.h'
]
ecore_wayland_lib = library('ecore_wayland',
ecore_wayland_src,
dependencies: [m] + ecore_wayland_deps + ecore_wayland_pub_deps,
include_directories : config_dir + [include_directories(join_paths('..','..'))],
install: true,
c_args : package_c_args,
)
ecore_wayland = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_wayland_lib,
dependencies: ecore_wayland_pub_deps,
)
install_headers(ecore_wayland_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,38 @@
ecore_wl2_deps = [dependency('wayland-client'), dependency('wayland-server'), dependency('xkbcommon'), wayland_protocol, dependency('wayland-client')]
ecore_wl2_pub_deps = [eina, ecore, wayland_protocol]
ecore_wl2_header_src = [
'Ecore_Wl2.h'
]
ecore_wl2_src = [
'ecore_wl2_subsurf.c',
'ecore_wl2_dnd.c',
'ecore_wl2_window.c',
'ecore_wl2_input.c',
'ecore_wl2_output.c',
'ecore_wl2_display.c',
'ecore_wl2.c',
'ecore_wl2_private.h',
'ecore_wl2_buffer.c',
'ecore_wl2_surface.c'
]
ecore_wl2_lib = library('ecore_wl2',
ecore_wl2_src, pub_eo_file_target,
dependencies: ecore_wl2_pub_deps + [dl, m, ecore, ecore_input, ecore_wl2_deps, libdrm],
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_wl2 = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_wl2_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_wl2_pub_deps,
)
install_headers(ecore_wl2_header_src,
install_dir : dir_package_include,
)

142
src/lib/ecore_x/meson.build Normal file
View File

@ -0,0 +1,142 @@
ecore_x_deps = [ecore, dl, m, ecore_input]
ecore_x_pub_deps = [eina, efl]
ecore_x_header_src = [
'Ecore_X.h',
'Ecore_X_Atoms.h',
'Ecore_X_Cursor.h'
]
ecore_x_src = [
'ecore_x_atoms_decl.h',
'ecore_x.c',
'ecore_x_dnd.c',
'ecore_x_sync.c',
'ecore_x_randr.c',
'ecore_x_fixes.c',
'ecore_x_damage.c',
'ecore_x_composite.c',
'ecore_x_error.c',
'ecore_x_events.c',
'ecore_x_icccm.c',
'ecore_x_keygrab.c',
'ecore_x_netwm.c',
'ecore_x_mwm.c',
'ecore_x_e.c',
'ecore_x_selection.c',
'ecore_x_window.c',
'ecore_x_window_prop.c',
'ecore_x_window_shape.c',
'ecore_x_pixmap.c',
'ecore_x_present.c',
'ecore_x_gc.c',
'ecore_x_xinerama.c',
'ecore_x_screensaver.c',
'ecore_x_dpms.c',
'ecore_x_drawable.c',
'ecore_x_cursor.c',
'ecore_x_test.c',
'ecore_x_atoms.c',
'ecore_x_region.c',
'ecore_x_image.c',
'ecore_x_xi2.c',
'ecore_x_vsync.c',
'ecore_x_gesture.c',
'ecore_x_private.h'
]
ecore_x_checks = [
['Xcomposite', 'Xcomposite.h', 'Xcomposite', 'XCompositeQueryExtension'],
['Xdamage', 'Xdamage.h', 'Xdamage', 'XDamageSubtract'],
['Xdpms', 'dpms.h', 'Xext', 'DPMSQueryExtension'],
['Xfixes', 'Xfixes.h', 'Xfixes', 'XFixesExpandRegion'],
['Xinerama', 'Xinerama.h', 'Xinerama', 'XineramaQueryScreens'],
['Xrandr', 'Xrandr.h', 'Xrandr', 'XRRGetScreenResourcesCurrent'],
['Xrender', 'Xrender.h', 'Xrender', 'XRenderFindVisualFormat'],
['Xtest', 'XTest.h', 'Xtst', 'XTestFakeKeyEvent'],
['Xss', 'scrnsaver.h', 'Xss', 'XScreenSaverSelectInput'],
]
if get_option('xpresent')
ecore_x_checks += [['Xpresent', 'Xpresent.h', 'Xpresent', 'XPresentQueryExtension']]
endif
if get_option('xgesture')
ecore_x_checks += [['Xgesture', 'gesture.h', 'Xgesture', 'XGestureQueryExtension']]
endif
if get_option('xinput2')
ecore_x_checks += [['Xi2', 'XInput2.h', 'Xi', 'XIQueryDevice']]
endif
if get_option('xinput22')
ecore_x_checks += [['Xi2_2', 'XInput2.h', 'Xi','XIGrabTouchBegin']]
endif
x11 = dependency('x11', required: false)
if x11.found() == false
x11 = cc.find_library('x11', required: true)
endif
xcb = dependency('xcb', required: false)
if xcb.found() == false
xcb = cc.find_library('xcb', required: true)
endif
x11_xcb = dependency('x11-xcb', required: false)
if x11_xcb.found() == false
x11_xcb = cc.find_library('x11-xcb', required: true)
endif
foreach ecore_x_check : ecore_x_checks
x_lib = cc.find_library(ecore_x_check[2],
required: false
)
if cc.compiles('''
#include <X11/Xlib.h>
#include <X11/extensions/'''+ecore_x_check[1]+'''>
int main () {
#ifndef '''+ecore_x_check[3]+'''
'''+ecore_x_check[3]+''';
#endif
}
''',
dependencies : [x_lib, x11]
) == true
config_h.set('ECORE_'+ecore_x_check[0].to_upper(), '1')
else
error('extension '+ecore_x_check[0]+' not found for X11')
endif
ecore_x_deps += x_lib
endforeach
ecore_x_deps += x11
ecore_x_deps += xcb
ecore_x_deps += x11_xcb
# there are a few special cases
cc.has_header_symbol('X11/XKBlib.h', 'XkbSetDetectableAutoRepeat',
dependencies : [x11, xcb]
)
config_h.set('ECORE_XKB', '1')
ecore_x_lib = library('ecore_x',
ecore_x_src, pub_eo_file_target,
dependencies: ecore_x_pub_deps + ecore_x_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ecore_x = declare_dependency(
include_directories: [include_directories('.')],
link_with: ecore_x_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ecore_x_pub_deps,
)
install_headers(ecore_x_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,34 @@
ector_src += files([
'ector_renderer_cairo_gradient_linear.c',
'ector_renderer_cairo_gradient_radial.c',
'ector_renderer_cairo_shape.c',
'ector_renderer_cairo.c',
'ector_cairo_software_surface.c',
'ector_cairo_surface.c'
])
pub_eo_files = [
'ector_cairo_surface.eo',
'ector_cairo_software_surface.eo',
'ector_renderer_cairo.eo',
'ector_renderer_cairo_shape.eo',
'ector_renderer_cairo_gradient_linear.eo',
'ector_renderer_cairo_gradient_radial.eo'
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : false,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
install_data(pub_eo_files,
install_dir: join_paths(eolian_include_dir, package_version_name)
)

View File

@ -0,0 +1,37 @@
ector_src += files([
'ector_renderer_gl_gradient_linear.c',
'ector_renderer_gl_gradient_radial.c',
'ector_renderer_gl_shape.c',
'ector_renderer_gl.c',
'ector_gl_buffer.c',
'ector_gl_surface.c',
'ector_gl_private.h',
#'shader/ector_gl_shaders.x',
'ector_gl_shader.c'
])
pub_eo_files = [
'ector_gl_surface.eo',
'ector_gl_buffer.eo',
'ector_renderer_gl.eo',
'ector_renderer_gl_shape.eo',
'ector_renderer_gl_gradient_radial.eo',
'ector_renderer_gl_gradient_linear.eo'
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : false,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
install_data(pub_eo_files,
install_dir: join_paths(eolian_include_dir, package_version_name)
)

88
src/lib/ector/meson.build Normal file
View File

@ -0,0 +1,88 @@
ector_deps = [eina, emile, eet, eo, efl]
ector_pub_deps = [eina, efl]
pub_eo_file_target = []
ector_header_src = [
# nothing for now ector stays only intree
]
ector_src = [
'ector_main.c',
'ector_gl_internal.h',
'ector_buffer.c',
'ector_renderer_shape.c',
'ector_renderer.c',
'ector_renderer_gradient.c',
'ector_renderer_gradient_radial.c',
'ector_renderer_gradient_linear.c'
]
pub_eo_files = [
'ector_surface.eo',
'ector_buffer.eo',
'ector_renderer.eo',
'ector_renderer_shape.eo',
'ector_renderer_gradient.eo',
'ector_renderer_gradient_radial.eo',
'ector_renderer_gradient_linear.eo'
]
ector_pub_eo_files = pub_eo_files
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : false,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
eolian_include_directories += ['-I', meson.current_source_dir()]
subdir('cairo')
subdir('gl')
subdir('software')
pub_eo_types_files = [
'ector_types.eot'
]
install_data(ector_pub_eo_files + pub_eo_types_files,
install_dir: join_paths(eolian_include_dir, package_version_name)
)
foreach eo_file : pub_eo_types_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : false,
install_dir : dir_package_include,
command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
'-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
'-gh', '@INPUT@'])
endforeach
ector_lib = library('ector',
ector_src, pub_eo_file_target,
dependencies: ector_pub_deps + [triangulator, freetype, draw, m] + ector_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
ector = declare_dependency(
include_directories: [include_directories('.')],
link_with: ector_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: ector_pub_deps,
)
install_headers(ector_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,36 @@
ector_src += files([
'ector_renderer_software_gradient_linear.c',
'ector_renderer_software_gradient_radial.c',
'ector_renderer_software_shape.c',
'ector_software_gradient.c',
'ector_software_rasterizer.c',
'ector_software_surface.c',
'ector_software_buffer.c',
])
pub_eo_files = [
'ector_software_surface.eo',
'ector_software_buffer.eo',
'ector_software_buffer_base.eo',
'ector_renderer_software.eo',
'ector_renderer_software_shape.eo',
'ector_renderer_software_gradient_radial.eo',
'ector_renderer_software_gradient_linear.eo',
]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : false,
install_dir : dir_package_include,
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'),
'-gch', '@INPUT@'])
endforeach
install_data(pub_eo_files,
install_dir: join_paths(eolian_include_dir, package_version_name)
)

160
src/lib/edje/meson.build Normal file
View File

@ -0,0 +1,160 @@
edje_deps = [
eina, eo, efl, m,
luajit, eet, evas, ecore_evas,
ecore_file, ecore_input,
ecore_imf, ecore_imf_evas,
embryo, efreet, eio, intl
]
edje_pub_deps = [m, evas, eo, efl, luajit]
if (get_option('physics'))
edje_deps += ephysics
edje_pub_deps += ephysics
endif
config_h.set('EDJE_CALC_CACHE', '1')
if get_option('edje-sound-and-video')
config_h.set('ENABLE_MULTISENSE', '1')
edje_deps += ecore_audio
endif
pub_legacy_eo_files = [
'edje_edit.eo',
'efl_layout_calc.eo',
'efl_layout_signal.eo',
'efl_layout_group.eo',
'efl_canvas_layout.eo',
'efl_canvas_layout_part.eo',
'efl_canvas_layout_part_box.eo',
'efl_canvas_layout_part_external.eo',
'efl_canvas_layout_part_invalid.eo',
'efl_canvas_layout_part_swallow.eo',
'efl_canvas_layout_part_table.eo',
'efl_canvas_layout_part_text.eo',
]
pub_eo_files = pub_legacy_eo_files
pub_eo_file_target = []
foreach eo_file : pub_legacy_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h', eo_file + '.legacy.h',],
install : true,
install_dir : dir_package_include,
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', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
'-gchl', '@INPUT@'])
endforeach
pub_eo_types_files = [
'edje_types.eot'
]
foreach eo_file : pub_eo_types_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : dir_package_include,
command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
'-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
'-gh', '@INPUT@'])
endforeach
priv_eo_files = [
'edje_global.eo',
]
priv_eo_file_target = []
foreach eo_file : priv_eo_files
priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
'-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
'-gch', '@INPUT@'])
endforeach
eolian_include_directories += ['-I', meson.current_source_dir()]
edje_header_src = [
'Edje.h',
'Edje_Common.h',
'Edje_Eo.h',
'Edje_Legacy.h',
'Edje_Edit.h'
]
edje_src = [
'edje_private.h',
'edje_convert.h',
'edje_box_layout.c',
'edje_cache.c',
'edje_calc.c',
'edje_callbacks.c',
'edje_data.c',
'edje_edit.c',
'edje_embryo.c',
'edje_entry.c',
'edje_external.c',
'edje_load.c',
'edje_lua.c',
'edje_lua2.c',
'edje_lua_script_only.c',
'edje_main.c',
'edje_match.c',
'edje_message_queue.c',
'edje_misc.c',
'edje_module.c',
'edje_multisense.c',
'edje_program.c',
'edje_smart.c',
'edje_text.c',
'edje_textblock.c',
'edje_textblock_styles.c',
'edje_util.c',
'edje_legacy.c',
'edje_var.c',
'edje_signal.c',
'edje_part.c',
'edje_part_helper.h',
'edje_part_external.c',
'edje_part_swallow.c',
'edje_part_table.c',
'edje_part_box.c',
'edje_part_text.c',
'edje_part_invalid.c'
]
edje_lib = library('edje',
edje_src, pub_eo_file_target, priv_eo_file_target,
dependencies: [edje_deps],
include_directories : config_dir + [include_directories('.')],
install: true,
c_args : [package_c_args],
version : meson.project_version()
)
edje = declare_dependency(
include_directories: [include_directories('.')],
link_with: edje_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: edje_pub_deps,
)
install_data(pub_eo_files + pub_eo_types_files,
install_dir: join_paths(eolian_include_dir, package_version_name)
)
install_headers(edje_header_src,
install_dir : dir_package_include,
)

38
src/lib/eet/meson.build Normal file
View File

@ -0,0 +1,38 @@
eet_deps = [crypto, jpeg, rg_etc, m]
eet_pub_deps = [eina, emile, efl]
eet_header_src = [
'Eet.h'
]
eet_src = [
'Eet_private.h',
'eet_alloc.c',
'eet_cipher.c',
'eet_connection.c',
'eet_data.c',
'eet_dictionary.c',
'eet_image.c',
'eet_lib.c',
'eet_node.c',
'eet_utils.c',
]
eet_lib = library('eet',
eet_src, pub_eo_file_target,
dependencies: eet_deps + eet_pub_deps,
include_directories : config_dir,
install: true,
version : meson.project_version()
)
eet = declare_dependency(
include_directories: [include_directories('.')],
link_with: eet_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: eet_pub_deps,
)
install_headers(eet_header_src,
install_dir : dir_package_include,
)

101
src/lib/eeze/meson.build Normal file
View File

@ -0,0 +1,101 @@
eeze_deps = []
eeze_pub_deps = [eina, efl]
pub_eo_file_target = []
eeze_header_src = [
'Eeze.h',
'Eeze_Net.h',
'Eeze_Sensor.h',
'Eeze_Disk.h',
join_paths('..','..','bin','eeze','eeze_scanner','eeze_scanner.h')
]
eeze_src = [
'eeze_main.c',
'eeze_net.c',
'eeze_net_private.h',
'eeze_sensor.c',
'eeze_sensor_private.h',
'eeze_udev_find.c',
'eeze_udev_private.c',
'eeze_udev_private.h',
'eeze_udev_syspath.c',
'eeze_udev_walk.c',
'eeze_udev_watch.c',
'eeze_disk.c',
'eeze_disk_udev.c',
'eeze_disk_mount.c',
'eeze_disk_private.h'
]
if get_option('v4l2')
config_h.set('HAVE_V4L2', '1')
if cc.has_header('linux/videodev2.h') == false
error('v4l2 headers not found')
endif
endif
if (get_option('libmount'))
libmount = dependency('mount')
eeze_deps += [libmount]
if libmount.version() == '2.19'
eeze_src += 'eeze_disk_libmount.c'
elif libmount.version() < '2.19'
eeze_src += 'eeze_disk_libmount_old.c'
elif libmount.version() > '2.19'
eeze_src += 'eeze_disk_libmount_new.c'
endif
config_h.set('HAVE_EEZE_MOUNT', '1')
else
eeze_src += 'eeze_disk_dummy.c'
endif
options_to_check = ['eject', 'mount', 'unmount']
eeze_deps += dependency('libudev',
version: ['>=148']
)
foreach option : options_to_check
val = get_option(option+'-path')
if val == 'detect'
# i dont know why we call this unmount when the bin is called umount
if option == 'unmount'
_option = 'umount'
else
_option = option
endif
prog = find_program(_option, required: false)
if prog.found()
set_variable(option+'_bin', prog.path())
else
set_variable(option+'_bin', '')
endif
else
set_variable(option+'_bin', val)
endif
endforeach
config_h.set_quoted('EEZE_EJECT_BIN', eject_bin)
config_h.set_quoted('EEZE_MOUNT_BIN', mount_bin)
config_h.set_quoted('EEZE_UNMOUNT_BIN', unmount_bin)
eeze_lib = library('eeze',
eeze_src, pub_eo_file_target,
dependencies: eeze_deps + eeze_pub_deps + [ecore, ecore_file, buildsystem, eeze_deps],
include_directories : config_dir,
install: true,
c_args : package_c_args,
version : meson.project_version()
)
eeze = declare_dependency(
include_directories: [include_directories('.')],
link_with: eeze_lib,
sources : pub_eo_file_target + priv_eo_file_target,
dependencies: eeze_pub_deps,
)
install_headers(eeze_header_src,
install_dir : dir_package_include,
)

View File

@ -0,0 +1,155 @@
pub_legacy_eo_files = [
'efl_gfx_fill.eo',
'efl_gfx_entity.eo',
'efl_gfx_color.eo',
'efl_gfx_image.eo',
'efl_gfx_image_animation_controller.eo',
'efl_input_device.eo',
'efl_ui_draggable.eo',
'efl_ui_clickable.eo',
'efl_ui_scrollable.eo',
'efl_ui_scrollable_interactive.eo',
'efl_ui_scrollbar.eo',
'efl_ui_selectable.eo',
'efl_ui_zoom.eo',
]
pub_eo_file_target = []
foreach eo_file : pub_legacy_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h', eo_file + '.legacy.h',],
install : true,
install_dir : join_paths(dir_package_include, 'interfaces'),
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', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
'-gchl', '@INPUT@'])
endforeach
pub_eo_files = [
'efl_playable.eo',
'efl_canvas_scene.eo',
'efl_canvas_pointer.eo',
'efl_config.eo',
'efl_control.eo',
'efl_duplicate.eo',
'efl_file.eo',
'efl_gfx_image_load_controller.eo',
'efl_part.eo',
'efl_player.eo',
'efl_text.eo',
'efl_text_font.eo',
'efl_text_style.eo',
'efl_text_format.eo',
'efl_text_cursor.eo',
'efl_text_annotate.eo',
'efl_text_markup.eo',
'efl_text_markup_util.eo',
'efl_gfx_stack.eo',
'efl_gfx_view.eo',
'efl_gfx_buffer.eo',
'efl_gfx_path.eo',
'efl_gfx_shape.eo',
'efl_gfx_gradient.eo',
'efl_gfx_gradient_linear.eo',
'efl_gfx_gradient_radial.eo',
'efl_gfx_filter.eo',
'efl_gfx_blur.eo',
'efl_gfx_size_hint.eo',
'efl_model.eo',
'efl_animator.eo',
'efl_orientation.eo',
'efl_container.eo',
'efl_content.eo',
'efl_pack.eo',
'efl_pack_layout.eo',
'efl_pack_linear.eo',
'efl_pack_table.eo',
'efl_ui_base.eo',
'efl_ui_direction.eo',
'efl_ui_drag.eo',
'efl_ui_range.eo',
'efl_ui_view.eo',
'efl_ui_model_connect.eo',
'efl_ui_factory.eo',
'efl_ui_multi_selectable.eo',
'efl_screen.eo',
'efl_io_closer.eo',
'efl_io_positioner.eo',
'efl_io_reader.eo',
'efl_io_sizer.eo',
'efl_io_writer.eo',
'efl_io_buffer.eo',
'efl_io_queue.eo',
'efl_observer.eo',
'efl_observable.eo',
'efl_ui_autorepeat.eo',
'efl_ui_format.eo',
'efl_gfx_color_class.eo',
'efl_gfx_text_class.eo',
'efl_gfx_size_class.eo',
]
eolian_include_directories += ['-I', join_paths(meson.source_root(), 'src', 'lib', 'evas', 'canvas')]
foreach eo_file : pub_eo_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : join_paths(dir_package_include, 'interfaces'),
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'),
'-gch', '@INPUT@'])
endforeach
pub_eo_types_files = [
'efl_gfx_types.eot',
'efl_ui_types.eot',
'efl_input_types.eot',
'efl_types.eot',
'efl_text_types.eot',
]
foreach eo_file : pub_eo_types_files
pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
input : eo_file,
output : [eo_file + '.h'],
install : true,
install_dir : join_paths(dir_package_include, 'interfaces'),
command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
'-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
'-gh', '@INPUT@'])
endforeach
pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
efl_src += files([
'efl_interfaces_main.c',
'efl_model_common.c',
'efl_gfx_path.c',
'efl_gfx_shape.c',
'efl_gfx_color.c',
'efl_input_device.c',
'efl_io_closer.c',
'efl_io_positioner.c',
'efl_io_reader.c',
'efl_io_sizer.c',
'efl_io_writer.c',
'efl_io_buffer.c',
'efl_io_queue.c',
'efl_observer.c',
'efl_file.c',
'efl_ui_format.c',
'efl_text_markup_util.c',
])
#efl_header_src += files([
# 'efl_common_internal.h'
#])
eolian_include_directories += ['-I', meson.current_source_dir()]

Some files were not shown because too many files have changed in this diff Show More