diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-08-12 15:26:29 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-10-02 17:22:50 +0200 |
commit | 46d464e5bfc10398461a33a2256c1c58d509dd1a (patch) | |
tree | 8c1a9272c05f14033a4430bc122632461bd73608 | |
parent | 70ecf1056bb4be5a68b63044f938ccc2fe0a58c0 (diff) | |
download | efl-46d464e5bfc10398461a33a2256c1c58d509dd1a.tar.gz |
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
258 files changed, 9752 insertions, 0 deletions
diff --git a/README.meson b/README.meson new file mode 100644 index 0000000000..ad76faa3f7 --- /dev/null +++ b/README.meson @@ -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. diff --git a/data/edje/include/meson.build b/data/edje/include/meson.build new file mode 100644 index 0000000000..943eb8a6c9 --- /dev/null +++ b/data/edje/include/meson.build @@ -0,0 +1,3 @@ +install_data('edje.inc', + install_dir : join_paths(dir_data, 'edje', 'include') +)
\ No newline at end of file diff --git a/data/edje/meson.build b/data/edje/meson.build new file mode 100644 index 0000000000..05f4f39a03 --- /dev/null +++ b/data/edje/meson.build @@ -0,0 +1,5 @@ +subdir('include') + +install_data(files('edje.xml'), + install_dir : join_paths(dir_data, 'mime', 'packages') +) diff --git a/data/elementary/config/default/meson.build b/data/elementary/config/default/meson.build new file mode 100644 index 0000000000..983eb9d8d4 --- /dev/null +++ b/data/elementary/config/default/meson.build @@ -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), +) diff --git a/data/elementary/config/meson.build b/data/elementary/config/meson.build new file mode 100644 index 0000000000..12a81ef03f --- /dev/null +++ b/data/elementary/config/meson.build @@ -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'), +) diff --git a/data/elementary/config/mobile/meson.build b/data/elementary/config/mobile/meson.build new file mode 100644 index 0000000000..c3a8a44de9 --- /dev/null +++ b/data/elementary/config/mobile/meson.build @@ -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), + ) diff --git a/data/elementary/config/standard/meson.build b/data/elementary/config/standard/meson.build new file mode 100644 index 0000000000..c3a8a44de9 --- /dev/null +++ b/data/elementary/config/standard/meson.build @@ -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), + ) diff --git a/data/elementary/desktop/meson.build b/data/elementary/desktop/meson.build new file mode 100644 index 0000000000..9acaa8f1fb --- /dev/null +++ b/data/elementary/desktop/meson.build @@ -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') +) diff --git a/data/elementary/edje_externals/meson.build b/data/elementary/edje_externals/meson.build new file mode 100644 index 0000000000..cc24430052 --- /dev/null +++ b/data/elementary/edje_externals/meson.build @@ -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'), +) diff --git a/data/elementary/meson.build b/data/elementary/meson.build new file mode 100644 index 0000000000..ed7d1e4204 --- /dev/null +++ b/data/elementary/meson.build @@ -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'] +) diff --git a/data/elementary/objects/meson.build b/data/elementary/objects/meson.build new file mode 100644 index 0000000000..a25a719852 --- /dev/null +++ b/data/elementary/objects/meson.build @@ -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'), +) diff --git a/data/elementary/themes/meson.build b/data/elementary/themes/meson.build new file mode 100644 index 0000000000..c8c8816470 --- /dev/null +++ b/data/elementary/themes/meson.build @@ -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'), + ] +) diff --git a/data/embryo/meson.build b/data/embryo/meson.build new file mode 100644 index 0000000000..d1f049e467 --- /dev/null +++ b/data/embryo/meson.build @@ -0,0 +1,3 @@ +install_data('default.inc', + install_dir : join_paths(dir_data, 'embryo', 'include') +) diff --git a/data/eo/meson.build b/data/eo/meson.build new file mode 100644 index 0000000000..8ccb578f7d --- /dev/null +++ b/data/eo/meson.build @@ -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') +) diff --git a/data/ethumb/frames/meson.build b/data/ethumb/frames/meson.build new file mode 100644 index 0000000000..a696af0c41 --- /dev/null +++ b/data/ethumb/frames/meson.build @@ -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'), +) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000000..4e1f68d406 --- /dev/null +++ b/data/meson.build @@ -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') diff --git a/header_checks/meson.build b/header_checks/meson.build new file mode 100644 index 0000000000..e54e17943c --- /dev/null +++ b/header_checks/meson.build @@ -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
\ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000000..72c48b8486 --- /dev/null +++ b/meson.build @@ -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) +) diff --git a/meson/clean_check.sh b/meson/clean_check.sh new file mode 100644 index 0000000000..c054794048 --- /dev/null +++ b/meson/clean_check.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +test -f ${MESON_SOURCE_ROOT}/configure diff --git a/meson/evas_loader_conf.sh b/meson/evas_loader_conf.sh new file mode 100755 index 0000000000..5ed40e3a2e --- /dev/null +++ b/meson/evas_loader_conf.sh @@ -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
\ No newline at end of file diff --git a/meson/meson_modules.sh b/meson/meson_modules.sh new file mode 100755 index 0000000000..3398e048b5 --- /dev/null +++ b/meson/meson_modules.sh @@ -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 diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000000..bb6c9aa2e0 --- /dev/null +++ b/meson_options.txt @@ -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)' +) diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000000..68a4885e41 --- /dev/null +++ b/po/meson.build @@ -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 diff --git a/scripts/check_options.sh b/scripts/check_options.sh new file mode 100755 index 0000000000..d6b3c3e48f --- /dev/null +++ b/scripts/check_options.sh @@ -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
\ No newline at end of file diff --git a/scripts/create_all_options.lua b/scripts/create_all_options.lua new file mode 100644 index 0000000000..3bbc748742 --- /dev/null +++ b/scripts/create_all_options.lua @@ -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 diff --git a/src/benchmarks/eina/meson.build b/src/benchmarks/eina/meson.build new file mode 100644 index 0000000000..aa9081cef2 --- /dev/null +++ b/src/benchmarks/eina/meson.build @@ -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 +)
\ No newline at end of file diff --git a/src/benchmarks/eo/meson.build b/src/benchmarks/eo/meson.build new file mode 100644 index 0000000000..2df6c71e97 --- /dev/null +++ b/src/benchmarks/eo/meson.build @@ -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) diff --git a/src/bin/ecore_buffer/meson.build b/src/bin/ecore_buffer/meson.build new file mode 100644 index 0000000000..86ee20a872 --- /dev/null +++ b/src/bin/ecore_buffer/meson.build @@ -0,0 +1,5 @@ +executable('bq_mgr', + ['bq_mgr_protocol.c', 'bq_mgr.c'], + dependencies: [ecore, ecore_buffer, ecore_buffer_deps], + install : true +) diff --git a/src/bin/ecore_con/meson.build b/src/bin/ecore_con/meson.build new file mode 100644 index 0000000000..d8d33dcd4d --- /dev/null +++ b/src/bin/ecore_con/meson.build @@ -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) +) diff --git a/src/bin/ecore_evas/meson.build b/src/bin/ecore_evas/meson.build new file mode 100644 index 0000000000..42d74bd5ab --- /dev/null +++ b/src/bin/ecore_evas/meson.build @@ -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 +) diff --git a/src/bin/edje/epp/meson.build b/src/bin/edje/epp/meson.build new file mode 100644 index 0000000000..bbe7e99a6d --- /dev/null +++ b/src/bin/edje/epp/meson.build @@ -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' + ], +) diff --git a/src/bin/edje/meson.build b/src/bin/edje/meson.build new file mode 100644 index 0000000000..c7e5f397c2 --- /dev/null +++ b/src/bin/edje/meson.build @@ -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, +) diff --git a/src/bin/eet/meson.build b/src/bin/eet/meson.build new file mode 100644 index 0000000000..bde68b6ef6 --- /dev/null +++ b/src/bin/eet/meson.build @@ -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 +) diff --git a/src/bin/eeze/meson.build b/src/bin/eeze/meson.build new file mode 100644 index 0000000000..2bb4370bdd --- /dev/null +++ b/src/bin/eeze/meson.build @@ -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 diff --git a/src/bin/efl/meson.build b/src/bin/efl/meson.build new file mode 100644 index 0000000000..d65d22c6f5 --- /dev/null +++ b/src/bin/efl/meson.build @@ -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, +) diff --git a/src/bin/efl_wl/meson.build b/src/bin/efl_wl/meson.build new file mode 100644 index 0000000000..5f0d655cb0 --- /dev/null +++ b/src/bin/efl_wl/meson.build @@ -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] +) diff --git a/src/bin/efreet/meson.build b/src/bin/efreet/meson.build new file mode 100644 index 0000000000..4c7bf5efb5 --- /dev/null +++ b/src/bin/efreet/meson.build @@ -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, +) diff --git a/src/bin/eina/eina_btlog/meson.build b/src/bin/eina/eina_btlog/meson.build new file mode 100644 index 0000000000..3d56f9cfbf --- /dev/null +++ b/src/bin/eina/eina_btlog/meson.build @@ -0,0 +1,5 @@ +executable('eina_btlog', + 'eina_btlog.c', + dependencies: eina, + install: true, +) diff --git a/src/bin/eina/eina_modinfo/meson.build b/src/bin/eina/eina_modinfo/meson.build new file mode 100644 index 0000000000..a57dc6fc42 --- /dev/null +++ b/src/bin/eina/eina_modinfo/meson.build @@ -0,0 +1,5 @@ +executable('eina_modinfo', + 'eina_modinfo.c', + dependencies: eina, + install: true, +) diff --git a/src/bin/eina/meson.build b/src/bin/eina/meson.build new file mode 100644 index 0000000000..7c5f64b950 --- /dev/null +++ b/src/bin/eina/meson.build @@ -0,0 +1,2 @@ +subdir('eina_btlog') +subdir('eina_modinfo') diff --git a/src/bin/eldbus/meson.build b/src/bin/eldbus/meson.build new file mode 100644 index 0000000000..b9c7356c46 --- /dev/null +++ b/src/bin/eldbus/meson.build @@ -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, +) diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build new file mode 100644 index 0000000000..58f82c1925 --- /dev/null +++ b/src/bin/elementary/meson.build @@ -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, +) diff --git a/src/bin/elua/meson.build b/src/bin/elua/meson.build new file mode 100644 index 0000000000..3a4908d754 --- /dev/null +++ b/src/bin/elua/meson.build @@ -0,0 +1,5 @@ +executable('elua', + 'main.c', + dependencies: [eina, ecore, elua, intl], + install: true, +) diff --git a/src/bin/embryo/meson.build b/src/bin/embryo/meson.build new file mode 100644 index 0000000000..1e8e3e3582 --- /dev/null +++ b/src/bin/embryo/meson.build @@ -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, +) diff --git a/src/bin/eolian/meson.build b/src/bin/eolian/meson.build new file mode 100644 index 0000000000..2104676f3e --- /dev/null +++ b/src/bin/eolian/meson.build @@ -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, +) diff --git a/src/bin/ethumb/meson.build b/src/bin/ethumb/meson.build new file mode 100644 index 0000000000..5e89aa3e9d --- /dev/null +++ b/src/bin/ethumb/meson.build @@ -0,0 +1,6 @@ +ethumb_bin = executable('ethumb', + 'ethumb.c', + dependencies: [ecore, ethumb], + install: true, + c_args : package_c_args, +) diff --git a/src/bin/ethumb_client/meson.build b/src/bin/ethumb_client/meson.build new file mode 100644 index 0000000000..243e5699af --- /dev/null +++ b/src/bin/ethumb_client/meson.build @@ -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, +) diff --git a/src/bindings/luajit/meson.build b/src/bindings/luajit/meson.build new file mode 100644 index 0000000000..a1dd6463ea --- /dev/null +++ b/src/bindings/luajit/meson.build @@ -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') +) diff --git a/src/edje_external/elementary/meson.build b/src/edje_external/elementary/meson.build new file mode 100644 index 0000000000..383ab77d8b --- /dev/null +++ b/src/edje_external/elementary/meson.build @@ -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) diff --git a/src/edje_external/emotion/meson.build b/src/edje_external/emotion/meson.build new file mode 100644 index 0000000000..63e6ff82a0 --- /dev/null +++ b/src/edje_external/emotion/meson.build @@ -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) diff --git a/src/edje_external/meson.build b/src/edje_external/meson.build new file mode 100644 index 0000000000..73af952374 --- /dev/null +++ b/src/edje_external/meson.build @@ -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 + diff --git a/src/examples/ecore/meson.build b/src/examples/ecore/meson.build new file mode 100644 index 0000000000..7233a83b82 --- /dev/null +++ b/src/examples/ecore/meson.build @@ -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', diff --git a/src/examples/ecore_avahi/meson.build b/src/examples/ecore_avahi/meson.build new file mode 100644 index 0000000000..3ab470da1c --- /dev/null +++ b/src/examples/ecore_avahi/meson.build @@ -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 diff --git a/src/examples/edje/meson.build b/src/examples/edje/meson.build new file mode 100644 index 0000000000..49e7e53c73 --- /dev/null +++ b/src/examples/edje/meson.build @@ -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 diff --git a/src/examples/eet/meson.build b/src/examples/eet/meson.build new file mode 100644 index 0000000000..98a1120a44 --- /dev/null +++ b/src/examples/eet/meson.build @@ -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 diff --git a/src/examples/eina/meson.build b/src/examples/eina/meson.build new file mode 100644 index 0000000000..78aa46a290 --- /dev/null +++ b/src/examples/eina/meson.build @@ -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 diff --git a/src/examples/eio/meson.build b/src/examples/eio/meson.build new file mode 100644 index 0000000000..6524a75840 --- /dev/null +++ b/src/examples/eio/meson.build @@ -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
\ No newline at end of file diff --git a/src/examples/eldbus/meson.build b/src/examples/eldbus/meson.build new file mode 100644 index 0000000000..db4dadafcb --- /dev/null +++ b/src/examples/eldbus/meson.build @@ -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 diff --git a/src/examples/emile/meson.build b/src/examples/emile/meson.build new file mode 100644 index 0000000000..c628f08ccc --- /dev/null +++ b/src/examples/emile/meson.build @@ -0,0 +1,7 @@ +examples = [ + 'emile_base64' +] + +foreach example : examples + executable(example, example + '.c', dependencies: emile) +endforeach diff --git a/src/examples/emotion/meson.build b/src/examples/emotion/meson.build new file mode 100644 index 0000000000..3a7b46b055 --- /dev/null +++ b/src/examples/emotion/meson.build @@ -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
\ No newline at end of file diff --git a/src/examples/ethumb_client/meson.build b/src/examples/ethumb_client/meson.build new file mode 100644 index 0000000000..d6456027a2 --- /dev/null +++ b/src/examples/ethumb_client/meson.build @@ -0,0 +1,10 @@ +files = [ + 'ethumb_dbus' +] + +foreach file : files + executable(file, + file + '.c', + dependencies: [ethumb, ethumb_client, ecore, eina], + ) +endforeach
\ No newline at end of file diff --git a/src/examples/evas/meson.build b/src/examples/evas/meson.build new file mode 100644 index 0000000000..c07587dec6 --- /dev/null +++ b/src/examples/evas/meson.build @@ -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 diff --git a/src/generic/emotion/meson.build b/src/generic/emotion/meson.build new file mode 100644 index 0000000000..58cd5294aa --- /dev/null +++ b/src/generic/emotion/meson.build @@ -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 + diff --git a/src/generic/emotion/vlc/meson.build b/src/generic/emotion/vlc/meson.build new file mode 100644 index 0000000000..b21f4a16df --- /dev/null +++ b/src/generic/emotion/vlc/meson.build @@ -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) +) diff --git a/src/generic/evas/common/meson.build b/src/generic/evas/common/meson.build new file mode 100644 index 0000000000..b90705e4c3 --- /dev/null +++ b/src/generic/evas/common/meson.build @@ -0,0 +1,6 @@ +generic_src = files([ + 'shmfile.c', + 'shmfile.h', + 'timeout.c', + 'timeout.h', +]) diff --git a/src/generic/evas/gst/meson.build b/src/generic/evas/gst/meson.build new file mode 100644 index 0000000000..9689aee80a --- /dev/null +++ b/src/generic/evas/gst/meson.build @@ -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']
\ No newline at end of file diff --git a/src/generic/evas/meson.build b/src/generic/evas/meson.build new file mode 100644 index 0000000000..80a679b230 --- /dev/null +++ b/src/generic/evas/meson.build @@ -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 diff --git a/src/generic/evas/pdf/meson.build b/src/generic/evas/pdf/meson.build new file mode 100644 index 0000000000..941918104b --- /dev/null +++ b/src/generic/evas/pdf/meson.build @@ -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)
\ No newline at end of file diff --git a/src/generic/evas/ps/meson.build b/src/generic/evas/ps/meson.build new file mode 100644 index 0000000000..ca52781307 --- /dev/null +++ b/src/generic/evas/ps/meson.build @@ -0,0 +1,5 @@ +generic_src = files([ + 'main.c' +]) + +generic_deps = [dependency('libspectre')] diff --git a/src/generic/evas/raw/meson.build b/src/generic/evas/raw/meson.build new file mode 100644 index 0000000000..6843d01e90 --- /dev/null +++ b/src/generic/evas/raw/meson.build @@ -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']
\ No newline at end of file diff --git a/src/generic/evas/svg/meson.build b/src/generic/evas/svg/meson.build new file mode 100644 index 0000000000..4e39e74ee5 --- /dev/null +++ b/src/generic/evas/svg/meson.build @@ -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'] diff --git a/src/generic/evas/xcf/meson.build b/src/generic/evas/xcf/meson.build new file mode 100644 index 0000000000..0f5fb208c5 --- /dev/null +++ b/src/generic/evas/xcf/meson.build @@ -0,0 +1,8 @@ +generic_src = files([ + 'common.h', + 'main.c', + 'pixelfuncs.c' +]) + +generic_deps = [dependency('zlib')] +generic_support = ['xcf.gz']
\ No newline at end of file diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build new file mode 100644 index 0000000000..f5872ffb76 --- /dev/null +++ b/src/lib/ecore/meson.build @@ -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 diff --git a/src/lib/ecore_audio/meson.build b/src/lib/ecore_audio/meson.build new file mode 100644 index 0000000000..099f8454db --- /dev/null +++ b/src/lib/ecore_audio/meson.build @@ -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, +) diff --git a/src/lib/ecore_avahi/meson.build b/src/lib/ecore_avahi/meson.build new file mode 100644 index 0000000000..40e037850a --- /dev/null +++ b/src/lib/ecore_avahi/meson.build @@ -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, +) diff --git a/src/lib/ecore_buffer/meson.build b/src/lib/ecore_buffer/meson.build new file mode 100644 index 0000000000..4cf3fc65da --- /dev/null +++ b/src/lib/ecore_buffer/meson.build @@ -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, +) diff --git a/src/lib/ecore_cocoa/meson.build b/src/lib/ecore_cocoa/meson.build new file mode 100644 index 0000000000..b7aca40031 --- /dev/null +++ b/src/lib/ecore_cocoa/meson.build @@ -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, +) diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build new file mode 100644 index 0000000000..f60e0a7185 --- /dev/null +++ b/src/lib/ecore_con/meson.build @@ -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, +) diff --git a/src/lib/ecore_drm/meson.build b/src/lib/ecore_drm/meson.build new file mode 100644 index 0000000000..9bc62a7be3 --- /dev/null +++ b/src/lib/ecore_drm/meson.build @@ -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, +) diff --git a/src/lib/ecore_drm2/meson.build b/src/lib/ecore_drm2/meson.build new file mode 100644 index 0000000000..1a36fbbede --- /dev/null +++ b/src/lib/ecore_drm2/meson.build @@ -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, +) diff --git a/src/lib/ecore_evas/meson.build b/src/lib/ecore_evas/meson.build new file mode 100644 index 0000000000..c0fb459a56 --- /dev/null +++ b/src/lib/ecore_evas/meson.build @@ -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, +) diff --git a/src/lib/ecore_fb/meson.build b/src/lib/ecore_fb/meson.build new file mode 100644 index 0000000000..0bcf11e3c8 --- /dev/null +++ b/src/lib/ecore_fb/meson.build @@ -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, +) diff --git a/src/lib/ecore_file/meson.build b/src/lib/ecore_file/meson.build new file mode 100644 index 0000000000..a3e70f8a99 --- /dev/null +++ b/src/lib/ecore_file/meson.build @@ -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, +) diff --git a/src/lib/ecore_imf/meson.build b/src/lib/ecore_imf/meson.build new file mode 100644 index 0000000000..978594d20a --- /dev/null +++ b/src/lib/ecore_imf/meson.build @@ -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, +) diff --git a/src/lib/ecore_imf_evas/meson.build b/src/lib/ecore_imf_evas/meson.build new file mode 100644 index 0000000000..28d53ea78d --- /dev/null +++ b/src/lib/ecore_imf_evas/meson.build @@ -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, +) diff --git a/src/lib/ecore_input/meson.build b/src/lib/ecore_input/meson.build new file mode 100644 index 0000000000..c57ec4e04c --- /dev/null +++ b/src/lib/ecore_input/meson.build @@ -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, +) diff --git a/src/lib/ecore_input_evas/meson.build b/src/lib/ecore_input_evas/meson.build new file mode 100644 index 0000000000..8b48142f7d --- /dev/null +++ b/src/lib/ecore_input_evas/meson.build @@ -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, +) diff --git a/src/lib/ecore_ipc/meson.build b/src/lib/ecore_ipc/meson.build new file mode 100644 index 0000000000..dbc95b0531 --- /dev/null +++ b/src/lib/ecore_ipc/meson.build @@ -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, +) diff --git a/src/lib/ecore_sdl/meson.build b/src/lib/ecore_sdl/meson.build new file mode 100644 index 0000000000..01ef3981b9 --- /dev/null +++ b/src/lib/ecore_sdl/meson.build @@ -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, +) diff --git a/src/lib/ecore_wayland/meson.build b/src/lib/ecore_wayland/meson.build new file mode 100644 index 0000000000..4a24fb661e --- /dev/null +++ b/src/lib/ecore_wayland/meson.build @@ -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, +) diff --git a/src/lib/ecore_wl2/meson.build b/src/lib/ecore_wl2/meson.build new file mode 100644 index 0000000000..c1527ae4e3 --- /dev/null +++ b/src/lib/ecore_wl2/meson.build @@ -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, +) diff --git a/src/lib/ecore_x/meson.build b/src/lib/ecore_x/meson.build new file mode 100644 index 0000000000..9c1f00ddfe --- /dev/null +++ b/src/lib/ecore_x/meson.build @@ -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, +) diff --git a/src/lib/ector/cairo/meson.build b/src/lib/ector/cairo/meson.build new file mode 100644 index 0000000000..2b45ce2b87 --- /dev/null +++ b/src/lib/ector/cairo/meson.build @@ -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) +) diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build new file mode 100644 index 0000000000..dad958c0fc --- /dev/null +++ b/src/lib/ector/gl/meson.build @@ -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) +) diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build new file mode 100644 index 0000000000..be3c6a5f62 --- /dev/null +++ b/src/lib/ector/meson.build @@ -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, +) + diff --git a/src/lib/ector/software/meson.build b/src/lib/ector/software/meson.build new file mode 100644 index 0000000000..ceb08ef3f2 --- /dev/null +++ b/src/lib/ector/software/meson.build @@ -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) +) diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build new file mode 100644 index 0000000000..bcfcd9b569 --- /dev/null +++ b/src/lib/edje/meson.build @@ -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, +) diff --git a/src/lib/eet/meson.build b/src/lib/eet/meson.build new file mode 100644 index 0000000000..8ebdb48dd6 --- /dev/null +++ b/src/lib/eet/meson.build @@ -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, +) diff --git a/src/lib/eeze/meson.build b/src/lib/eeze/meson.build new file mode 100644 index 0000000000..c32eee94b6 --- /dev/null +++ b/src/lib/eeze/meson.build @@ -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, +) diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build new file mode 100644 index 0000000000..8d29c404a8 --- /dev/null +++ b/src/lib/efl/interfaces/meson.build @@ -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()] diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build new file mode 100644 index 0000000000..75acef3b54 --- /dev/null +++ b/src/lib/efl/meson.build @@ -0,0 +1,33 @@ +efl_deps = [] +efl_pub_deps = [eo] + +efl_header_src = [ + 'Efl.h', + 'Efl_Model_Common.h' +] + +efl_src = [] + +subdir('interfaces') + +efl_lib = library('efl', + efl_src, pub_eo_file_target, + dependencies: [eina, eo, m], + install: true, + version : meson.project_version() +) + +efl = declare_dependency( + include_directories: [include_directories('.'), config_dir], + link_with: efl_lib, + dependencies: efl_deps + efl_pub_deps, + sources : pub_eo_file_target +) + +install_data(pub_eo_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(efl_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/efl_wl/meson.build b/src/lib/efl_wl/meson.build new file mode 100644 index 0000000000..35f20ec404 --- /dev/null +++ b/src/lib/efl_wl/meson.build @@ -0,0 +1,32 @@ +efl_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, eo, efl, eina] +efl_wl_pub_deps = [evas, dependency('wayland-server', version : '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0')] + +if (get_option('x11')) + efl_wl_deps += [ecore_x] + efl_wl_pub_deps += [dependency('xkbcommon-x11')] +endif + +efl_wl_src = [ + 'dmabuf.c', + 'efl_wl.c' +] +efl_wl_header_src = ['Efl_Wl.h'] + + +efl_wl_lib = library('efl_wl', + efl_wl_src, + dependencies: [m, dl] + efl_wl_deps + efl_wl_pub_deps, + include_directories : config_dir + [include_directories(join_paths('..','..'))], + install: true, + version : meson.project_version() +) + +efl_wl = declare_dependency( + include_directories: [include_directories('.')], + link_with: efl_wl_lib, + dependencies: efl_wl_pub_deps, +) + +install_headers(efl_wl_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/efreet/meson.build b/src/lib/efreet/meson.build new file mode 100644 index 0000000000..fc4a232c38 --- /dev/null +++ b/src/lib/efreet/meson.build @@ -0,0 +1,96 @@ +efreet_header_src = [ + 'Efreet.h', + 'efreet_base.h', + 'efreet_desktop.h', + 'efreet_icon.h', + 'efreet_ini.h', + 'efreet_menu.h', + 'efreet_utils.h', + 'efreet_uri.h', + 'Efreet_Mime.h', + 'Efreet_Trash.h' +] + +efreet_src = [ + 'efreet.c', + 'efreet_base.c', + 'efreet_icon.c', + 'efreet_xml.c', + 'efreet_ini.c', + 'efreet_desktop.c', + 'efreet_desktop_command.c', + 'efreet_menu.c', + 'efreet_utils.c', + 'efreet_uri.c', + 'efreet_cache.c', + 'efreet_private.h', + 'efreet_xml.h', + 'efreet_cache_private.h' +] + +efreet_deps = [eet, ecore, ecore_con, ecore_file, eo, efl, eina, emile, ecore_ipc, buildsystem,intl] +efreet_pub_deps = [eina, eo, efl] + +efreet_lib = library('efreet', + efreet_src, + dependencies: efreet_pub_deps + [m] + efreet_deps, + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : [package_c_args, '-DDATA_DIR="'+dir_data+'"'], + version : meson.project_version() +) + +efreet = declare_dependency( + include_directories: [include_directories('.')], + link_with: efreet_lib, + dependencies: efreet_pub_deps, +) + +efreet_mime_lib = library('efreet_mime', + 'efreet_mime.c', + dependencies: efreet_pub_deps + [m, efreet, efreet_deps], + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + + +efreet_mime = declare_dependency( + include_directories: [include_directories('.')], + link_with: efreet_mime_lib, + dependencies: efreet_pub_deps +) + +efreet_trash_lib = library('efreet_trash', + 'efreet_trash.c', + dependencies: efreet_pub_deps + [efreet, efreet_deps], + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +efreet_trash = declare_dependency( + include_directories: [include_directories('.')], + link_with: efreet_trash_lib, + dependencies: efreet_pub_deps, +) + +install_headers(efreet_header_src, + install_dir : dir_package_include, +) + +pkgconfig.generate(efreet_mime_lib, + name : 'efreet-mime', + subdirs : package_version_name, + version : version_major + '.' + version_minor, + libraries : [tmp_deps] + tmp_pub_deps, +) + +pkgconfig.generate(efreet_trash_lib, + name : 'efreet-trash', + subdirs : package_version_name, + version : version_major + '.' + version_minor, + libraries : [tmp_deps] + tmp_pub_deps, +) diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build new file mode 100644 index 0000000000..1d3bd51bed --- /dev/null +++ b/src/lib/eina/meson.build @@ -0,0 +1,398 @@ +eina_deps = [] +eina_pub_deps = [thread_dep] + +public_sub_headers = [ +'eina_promise.h', +'eina_safety_checks.h', +'eina_error.h', +'eina_debug.h', +'eina_debug_private.h', +'eina_log.h', +'eina_inline_log.x', +'eina_fp.h', +'eina_inline_f32p32.x', +'eina_inline_f16p16.x', +'eina_inline_f8p24.x', +'eina_inline_fp.x', +'eina_hash.h', +'eina_inline_hash.x', +'eina_lalloc.h', +'eina_clist.h', +'eina_inline_clist.x', +'eina_inarray.h', +'eina_inlist.h', +'eina_inline_inlist.x', +'eina_list.h', +'eina_file.h', +'eina_inline_file.x', +'eina_mempool.h', +'eina_module.h', +'eina_rectangle.h', +'eina_types.h', +'eina_array.h', +'eina_counter.h', +'eina_inline_array.x', +'eina_magic.h', +'eina_stringshare.h', +'eina_binshare.h', +'eina_binbuf.h', +'eina_ustringshare.h', +'eina_inline_stringshare.x', +'eina_inline_ustringshare.x', +'eina_inline_list.x', +'eina_accessor.h', +'eina_convert.h', +'eina_rbtree.h', +'eina_benchmark.h', +'eina_inline_rbtree.x', +'eina_inline_mempool.x', +'eina_inline_rectangle.x', +'eina_inline_trash.x', +'eina_thread.h', +'eina_trash.h', +'eina_iterator.h', +'eina_main.h', +'eina_cpu.h', +'eina_inline_cpu.x', +'eina_sched.h', +'eina_tiler.h', +'eina_hamster.h', +'eina_matrixsparse.h', +'eina_inline_tiler.x', +'eina_str.h', +'eina_inline_str.x', +'eina_strbuf.h', +'eina_ustrbuf.h', +'eina_unicode.h', +'eina_quadtree.h', +'eina_simple_xml_parser.h', +'eina_lock.h', +'eina_prefix.h', +'eina_refcount.h', +'eina_mmap.h', +'eina_xattr.h', +'eina_value.h', +'eina_inline_value.x', +'eina_value_util.h', +'eina_inline_value_util.x', +'eina_inline_lock_barrier.x', +'eina_inline_lock_posix.x', +'eina_tmpstr.h', +'eina_alloca.h', +'eina_cow.h', +'eina_inline_unicode.x', +'eina_thread_queue.h', +'eina_matrix.h', +'eina_quad.h', +'eina_crc.h', +'eina_inline_crc.x', +'eina_evlog.h', +'eina_util.h', +'eina_inline_util.x', +'eina_quaternion.h', +'eina_vector.h', +'eina_inline_vector.x', +'eina_bezier.h', +'eina_safepointer.h', +'eina_inline_safepointer.x', +'eina_slice.h', +'eina_inline_slice.x', +'eina_inline_modinfo.x', +'eina_freeq.h', +'eina_slstr.h', +'eina_vpath.h', +] + +public_headers = [ + 'Eina.h' +] + +sources = [ +'eina_abi.c', +'eina_accessor.c', +'eina_array.c', +'eina_benchmark.c', +'eina_binbuf.c', +'eina_binshare.c', +'eina_convert.c', +'eina_counter.c', +'eina_cow.c', +'eina_cpu.c', +'eina_crc.c', +'eina_debug.c', +'eina_debug_bt.c', +'eina_debug_bt_file.c', +'eina_debug_chunk.c', +'eina_debug_thread.c', +'eina_debug_cpu.c', +'eina_debug_timer.c', +'eina_error.c', +'eina_evlog.c', +'eina_file_common.h', +'eina_file_common.c', +'eina_fp.c', +'eina_hamster.c', +'eina_hash.c', +'eina_inarray.c', +'eina_inlist.c', +'eina_iterator.c', +'eina_lalloc.c', +'eina_list.c', +'eina_lock.c', +'eina_log.c', +'eina_magic.c', +'eina_main.c', +'eina_matrix.c', +'eina_matrixsparse.c', +'eina_mempool.c', +'eina_mmap.c', +'eina_module.c', +'eina_prefix.c', +'eina_promise.c', +'eina_promise_private.h', +'eina_quad.c', +'eina_quadtree.c', +'eina_rbtree.c', +'eina_rectangle.c', +'eina_safety_checks.c', +'eina_sched.c', +'eina_share_common.c', +'eina_simple_xml_parser.c', +'eina_str.c', +'eina_strbuf.c', +'eina_strbuf_common.c', +'eina_stringshare.c', +'eina_thread.c', +'eina_thread_queue.c', +'eina_tiler.c', +'eina_tmpstr.c', +'eina_unicode.c', +'eina_ustrbuf.c', +'eina_ustringshare.c', +'eina_util.c', +'eina_value.c', +'eina_value_util.c', +'eina_xattr.c', +'eina_private.h', +'eina_share_common.h', +'eina_strbuf_common.h', +'eina_quaternion.c', +'eina_bezier.c', +'eina_safepointer.c', +'eina_freeq.c', +'eina_slstr.c', +'eina_vpath.c', +'eina_vpath_xdg.c' +] + +if target_machine.system() == 'cygwin' + sources += 'eina_file_win32.c' +else + sources += 'eina_file.c' +endif + +eina_config = configuration_data() + +if get_option('buildtype') == 'plain' + with_max_log_level=-1 + stringshare_usage=false + use_valgrind=true + debug_malloc=false + debug_threads=false + default_mempool=false + want_cow_magic=false +elif get_option('buildtype') == 'debug' + with_max_log_level=-1 + stringshare_usage=true + use_valgrind=true + debug_malloc=true + debug_threads=true + default_mempool=true + want_cow_magic=true +elif get_option('buildtype') == 'release' + with_max_log_level=3 + stringshare_usage=false + use_valgrind=false + debug_malloc=false + debug_threads=false + default_mempool=false + want_cow_magic=false +endif + +if with_max_log_level != -1 + config_h.set('EINA_LOG_LEVEL_MAXIMUM', with_max_log_level) +endif + +if stringshare_usage + config_h.set('EINA_STRINGSHARE_USAGE', 1) +endif + +if use_valgrind + valgrind = dependency('valgrind', required: false) + if valgrind.found() == false + config_h.set('NVALGRIND', 1) + else + config_h.set('HAVE_VALGRIND', 1) + endif + eina_deps += valgrind +else + config_h.set('NVALGRIND', 1) + valgrind = [] +endif + +if debug_malloc + config_h.set('EINA_DEBUG_MALLOC', 1) +endif + +if want_cow_magic + config_h.set('EINA_COW_MAGIC_ON', 1) +endif + +if get_option('eina-magic-debug') + eina_config.set('EINA_MAGIC_DEBUG', '1') +endif + +if default_mempool + eina_config.set('EINA_DEFAULT_MEMPOOL', '1') +endif + +if get_option('systemd') == true + systemd = dependency('libsystemd') + eina_deps += systemd + config_h.set('HAVE_SYSTEMD', '1') +else + systemd = [] +endif + + +eina_config.set('EINA_SAFETY_CHECKS', '1') +eina_config.set('EINA_HAVE_THREADS', '1') + + +if cc.has_header_symbol('pthread.h', 'pthread_barrier_init') + eina_config.set('EINA_HAVE_PTHREAD_BARRIER', '1') +endif + +if target_machine.system() == 'linux' + pthread_np_header_file = 'pthread.h' + pthread_setname_np_api = 'pthread_setname_np' + pthread_args = '-D_GNU_SOURCE' +else + pthread_np_header_file = 'pthread_np.h' + pthread_setname_np_api = 'pthread_set_name_np' + pthread_args = [] +endif + +if cc.has_header_symbol(pthread_np_header_file, pthread_setname_np_api, args : pthread_args) + eina_config.set('EINA_HAVE_PTHREAD_SETNAME', '1') +endif + +if cc.has_header_symbol(pthread_np_header_file, 'pthread_attr_setaffinity_np', args : pthread_args) + eina_config.set('EINA_HAVE_PTHREAD_AFFINITY', '1') +endif +# FIXME the author of eina_debug probebly never ran with EINA_HAVE_DEBUG_THREADS +# however eina debug decides to init that lock and never frees it. which means +# the code in eina_main.c will not work in the way it currently is there. + +#if debug_threads or get_option('debug-threads') +# eina_config.set('EINA_HAVE_DEBUG_THREADS', '1') +#endif + +eina_config.set('EINA_SIZEOF_WCHAR_T', cc.sizeof('wchar_t', prefix : '#include<wchar.h>')) + +uintptr_size = cc.sizeof('uintptr_t', prefix : '#include<stdint.h>') + +eina_config.set('EINA_SIZEOF_UINTPTR_T', uintptr_size) +config_h.set('SIZEOF_UINTPTR_T', uintptr_size) + +if cc.has_header('dirent.h') + eina_config.set('EINA_CONFIGURE_HAVE_DIRENT_H', '1') +endif + +eina_config.set('EINA_ENABLE_LOG', '1') + +if cc.has_header_symbol('alloca.h', 'alloca') + eina_config.set('EINA_HAVE_ALLOCA_H', '1') +endif + +if cc.has_header('byteswap.h') + eina_config.set('EINA_HAVE_BYTESWAP_H', '1') +endif + +if cc.has_header_symbol('byteswap.h', 'bswap_16') + eina_config.set('EINA_HAVE_BSWAP16', '1') +endif + +if cc.has_header_symbol('byteswap.h', 'bswap_32') + eina_config.set('EINA_HAVE_BSWAP32', '1') +endif + +if cc.has_header_symbol('byteswap.h', 'bswap_64') + eina_config.set('EINA_HAVE_BSWAP64', '1') +endif + +if cc.has_header_symbol('pthread.h', 'pthread_spin_init') + eina_config.set('EINA_HAVE_POSIX_SPINLOCK', '1') +endif + +if target_machine.system() == 'darwin' + if cc.has_header_symbol('libkern/OSAtomic.h', 'OSSpinLockTry') + eina_config.set('EINA_HAVE_OSX_SPINLOCK', 1) + endif + if cc.has_header_symbol('mach/task.h', 'semaphore_create') + eina_config.set('EINA_HAVE_OSX_SEMAPHORE', 1) + endif + +endif + +eina_config_file = configure_file( + output: 'eina_config.h', + configuration: eina_config, + install: true) + +public_headers += eina_config_file + +unwind = dependency('libunwind-generic', required: false) +if unwind.found() + config_h.set('HAVE_UNWIND', 1) + eina_deps += unwind +endif + +#for the case that the iconv library is not part of libc but rather libiconv or smth. like that +iconv = dependency('iconv', required: false) +if iconv.found() == false + iconv = cc.find_library('iconv', required: false) +endif + +execinfo = cc.find_library('execinfo', required: false) + +eina_lib = library('eina', sources, + include_directories : config_dir, + dependencies: [m, rt, dl, execinfo, iconv, eina_deps, thread_dep, eina_mem_pools], + install: true, + version : meson.project_version() +) + + +eina = declare_dependency( + include_directories: [include_directories('.')] + config_dir, + dependencies : eina_pub_deps + eina_deps, + link_with: eina_lib, +) + +install_headers(public_headers, + install_dir : dir_package_include, +) + +install_headers(public_sub_headers, + install_dir : join_paths(dir_package_include, 'eina') +) + +automatic_pkgfile = false + +pkgconfig.generate(eina_lib, + name : 'eina', + subdirs : ['eina-'+version_major, 'efl-'+version_major, join_paths('eina-'+version_major, 'eina')], + version : version_major + '.' + version_minor, + libraries : eina_pub_deps, +) diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build new file mode 100644 index 0000000000..2c685b1fba --- /dev/null +++ b/src/lib/eio/meson.build @@ -0,0 +1,90 @@ +pub_eo_file_target = [] + +pub_eo_files = [ + 'eio_model.eo', + 'efl_io_manager.eo', + 'eio_sentry.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 = [] + +eolian_include_directories += ['-I', meson.current_source_dir()] + +eio_header_src = [ + 'Eio.h', + 'Eio_Legacy.h', + 'Eio_Eo.h', + 'eio_inline_helper.x' +] + +eio_src = [ + 'eio_dir.c', + 'eio_eet.c', + 'eio_file.c', + 'efl_io_manager.c', + 'eio_sentry.c', + 'eio_main.c', + 'eio_map.c', + 'eio_monitor.c', + 'eio_monitor_poll.c', + 'eio_single.c', + 'eio_xattr.c', + 'eio_model.c', + 'eio_model_private.h', + 'eio_private.h', + 'eio_sentry_private.h' +] + +linker_args = [] + +if target_machine.system() == 'windows' + eio_src += ['eio_monitor_win32.c'] +elif target_machine.system() == 'darwin' + eio_src += ['eio_monitor_cocoa.c'] + linker_args = [['-framework', 'CoreServices']] +elif cc.has_header('sys/inotify.h') + eio_src += ['eio_monitor_inotify.c'] +elif target_machine.system() == 'bsd' + eio_src += ['eio_monitor_kevent.c'] +endif + +eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet_mime] +eio_pub_deps = [eina, eet] + +eio_lib = library('eio', + eio_src, pub_eo_file_target, + dependencies: [eina, eo, efl, m, eio_deps], + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + link_args : linker_args, + version : meson.project_version() +) + +eio = declare_dependency( + include_directories: [include_directories('.')], + link_with: eio_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: eio_pub_deps, +) + +install_data(pub_eo_files + pub_eo_types_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(eio_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/eldbus/meson.build b/src/lib/eldbus/meson.build new file mode 100644 index 0000000000..57f2981c4a --- /dev/null +++ b/src/lib/eldbus/meson.build @@ -0,0 +1,114 @@ +eldbus_deps = [ecore] +eldbus_pub_deps = [eina, eo, efl] + +pub_eo_files = [ + 'eldbus_model_connection.eo', + 'eldbus_model_object.eo', + 'eldbus_model_proxy.eo', + 'eldbus_model_method.eo', + 'eldbus_model_arguments.eo', + 'eldbus_model_signal.eo', + 'eldbus_model.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 = [ + 'eldbus_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()] + +eldbus_header_src = [ + 'Eldbus.h', + 'eldbus_connection.h', + 'eldbus_freedesktop.h', + 'eldbus_message.h', + 'eldbus_object.h', + 'eldbus_pending.h', + 'eldbus_proxy.h', + 'eldbus_service.h', + 'eldbus_signal_handler.h', + 'eldbus_message_helper.h', + 'eldbus_introspection.h', + 'Eldbus_Model.h', + 'eldbus_message_eina_value.h' +] + +eldbus_src = [ + 'eldbus_private.h', + 'eldbus_private_types.h', + 'eldbus_model_private.h', + 'eldbus_model_proxy_private.h', + 'eldbus_model_object_private.h', + 'eldbus_model_arguments_private.h', + 'eldbus_model_connection_private.h', + 'eldbus_model_signal_private.h', + 'eldbus_model_method_private.h', + 'eldbus_proxy.c', + 'eldbus_core.c', + 'eldbus_message.c', + 'eldbus_object.c', + 'eldbus_pending.c', + 'eldbus_freedesktop.c', + 'eldbus_service.c', + 'eldbus_signal_handler.c', + 'eldbus_message_helper.c', + 'eldbus_message_to_eina_value.c', + 'eldbus_message_from_eina_value.c', + 'eldbus_model.c', + 'eldbus_model_connection.c', + 'eldbus_model_object.c', + 'eldbus_model_proxy.c', + 'eldbus_model_method.c', + 'eldbus_model_arguments.c', + 'eldbus_model_signal.c', + 'eldbus_introspection.c' +] + +eldbus_deps += dependency('dbus-1') + +eldbus_lib = library('eldbus', + eldbus_src, pub_eo_file_target, + dependencies: eldbus_pub_deps + eldbus_deps, + include_directories : config_dir, + install: true, + version : meson.project_version() +) + +eldbus = declare_dependency( + include_directories: [include_directories('.')], + link_with: eldbus_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: eldbus_pub_deps, +) + +install_data(pub_eo_files + pub_eo_types_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(eldbus_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build new file mode 100644 index 0000000000..bcc880771e --- /dev/null +++ b/src/lib/elementary/meson.build @@ -0,0 +1,951 @@ +pub_legacy_eo_files = [ + 'efl_ui_button_legacy.eo', + 'efl_ui_check_legacy.eo', + 'efl_ui_radio_legacy.eo', + 'efl_ui_bg_widget_legacy.eo', + 'efl_ui_video_legacy.eo', + 'efl_ui_frame_legacy.eo', + 'efl_ui_panes_legacy.eo', + 'efl_ui_image_zoomable_legacy.eo', + 'efl_ui_flip_legacy.eo', + 'efl_ui_win_legacy.eo', + 'efl_ui_image_legacy.eo', + 'efl_ui_progressbar_legacy.eo', + 'efl_ui_clock_legacy.eo', + 'efl_ui_layout_legacy.eo', + 'elm_code_widget_legacy.eo', + 'efl_ui_win_socket_legacy.eo', + 'efl_ui_win_inlined_legacy.eo', + 'elm_interface_fileselector.eo', + 'elm_calendar.eo', + 'elm_calendar_item.eo', + 'elm_clock.eo', + 'elm_colorselector.eo', + 'elm_combobox.eo', + 'elm_conformant.eo', + 'elm_ctxpopup.eo', + 'elm_dayselector.eo', + 'elm_entry.eo', + 'elm_fileselector.eo', + 'elm_gengrid.eo', + 'elm_gengrid_pan.eo', + 'elm_genlist.eo', + 'elm_genlist_pan.eo', + 'elm_gesture_layer.eo', + 'elm_glview.eo', + 'elm_hover.eo', + 'elm_index.eo', + 'elm_label.eo', + 'elm_list.eo', + 'elm_map.eo', + 'elm_map_pan.eo', + 'elm_menu.eo', + 'elm_notify.eo', + 'elm_panel.eo', + 'elm_player.eo', + 'elm_plug.eo', + 'elm_popup.eo', + 'elm_route.eo', + 'elm_scroller.eo', + 'elm_sys_notify_interface.eo', + 'elm_sys_notify.eo', + 'elm_sys_notify_dbus.eo', + 'elm_systray.eo', + 'elm_color_item.eo', + 'elm_dayselector_item.eo', + 'elm_flipselector_item.eo', + 'elm_menu_item.eo', + 'elm_ctxpopup_item.eo', + 'elm_index_item.eo', + 'elm_widget_item_static_focus.eo', + 'elm_genlist_item.eo', + 'elm_gengrid_item.eo', + 'elm_list_item.eo', + 'elm_popup_item.eo', + 'elm_ctxpopup_part.eo', + 'elm_dayselector_part.eo', + 'elm_entry_part.eo', + 'elm_fileselector_entry_part.eo', + 'elm_flip_part.eo', + 'elm_hover_part.eo', + 'elm_mapbuf_part.eo', + 'elm_naviframe_part.eo', + 'elm_notify_part.eo', + 'elm_panel_part.eo', + 'elm_player_part.eo', + 'elm_popup_part.eo', + 'elm_scroller_part.eo', + 'elm_label_part.eo', + 'elm_actionslider_part.eo', + 'elm_bubble_part.eo', + 'elm_fileselector_part.eo', + 'elm_access.eo', + 'elm_actionslider.eo', + 'elm_box.eo', + 'elm_bubble.eo', + 'elm_diskselector.eo', + 'elm_diskselector_item.eo', + 'elm_fileselector_button.eo', + 'elm_fileselector_entry.eo', + 'elm_flipselector.eo', + 'elm_grid.eo', + 'elm_hoversel.eo', + 'elm_hoversel_item.eo', + 'elm_icon.eo', + 'elm_inwin.eo', + 'elm_mapbuf.eo', + 'elm_naviframe.eo', + 'elm_naviframe_item.eo', + 'elm_photo.eo', + 'elm_prefs.eo', + 'elm_segment_control.eo', + 'elm_segment_control_item.eo', + 'elm_separator.eo', + 'elm_slideshow.eo', + 'elm_slideshow_item.eo', + 'elm_table.eo', + 'elm_thumb.eo', + 'efl_ui_view_list_precise_layouter.eo' +] + +pub_eo_file_target = [] + +priv_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 + '.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_ui_widget.eo', + 'efl_ui_bg.eo', + 'efl_ui_bg_widget.eo', + 'efl_ui_button.eo', + 'efl_ui_calendar.eo', + 'efl_ui_calendar_item.eo', + 'efl_ui_check.eo', + 'efl_ui_flip.eo', + 'efl_ui_frame.eo', + 'efl_ui_stack.eo', + 'efl_ui_image.eo', + 'efl_ui_image_zoomable.eo', + 'efl_ui_layout_object.eo', + 'efl_ui_nstate.eo', + 'efl_ui_navigation_bar.eo', + 'efl_ui_navigation_bar_part.eo', + 'efl_ui_navigation_bar_part_back_button.eo', + 'efl_ui_navigation_layout.eo', + 'efl_ui_panes.eo', + 'efl_ui_progressbar.eo', + 'efl_ui_radio.eo', + 'efl_ui_slider.eo', + 'efl_ui_slider_interval.eo', + 'efl_ui_spin.eo', + 'efl_ui_spin_button.eo', + 'efl_ui_datepicker.eo', + 'efl_ui_timepicker.eo', + 'efl_ui_tags.eo', + 'efl_ui_video.eo', + 'efl_ui_win.eo', + 'efl_ui_win_inlined.eo', + 'efl_ui_win_socket.eo', + 'efl_ui_box.eo', + 'efl_ui_box_flow.eo', + 'efl_ui_box_stack.eo', + 'efl_ui_table.eo', + 'efl_ui_table_static.eo', + 'efl_text_interactive.eo', + 'efl_ui_text.eo', + 'efl_ui_popup.eo', + 'efl_ui_popup_part_backwall.eo', + 'efl_ui_popup_alert.eo', + 'efl_ui_popup_alert_part.eo', + 'efl_ui_popup_alert_scroll.eo', + 'efl_ui_popup_alert_scroll_part.eo', + 'efl_ui_popup_alert_text.eo', + 'efl_ui_popup_alert_text_part.eo', + 'efl_ui_popup_anchor.eo', + 'efl_ui_text_editable.eo', + 'efl_ui_text_async.eo', + 'efl_ui_text_factory_images.eo', + 'efl_ui_text_factory_emoticons.eo', + 'efl_ui_text_factory_fallback.eo', + 'efl_ui_textpath.eo', + 'efl_ui_translatable.eo', + 'efl_ui_clock.eo', + 'efl_ui_cursor.eo', + 'efl_ui_image_factory.eo', + 'efl_ui_focus_manager.eo', + 'efl_ui_focus_manager_calc.eo', + 'efl_ui_focus_manager_sub.eo', + 'efl_ui_focus_manager_root_focus.eo', + 'efl_ui_focus_object.eo', + 'efl_ui_focus_layer.eo', + 'efl_ui_focus_composition.eo', + 'efl_ui_focus_util.eo', + 'efl_ui_flip_part.eo', + 'efl_ui_layout_factory.eo', + 'efl_ui_layout_part.eo', + 'efl_ui_layout_part_box.eo', + 'efl_ui_layout_part_content.eo', + 'efl_ui_layout_part_text.eo', + 'efl_ui_layout_part_table.eo', + 'efl_ui_layout_part_bg.eo', + 'efl_ui_layout_part_legacy.eo', + 'efl_ui_view_list.eo', + 'efl_ui_view_list_model.eo', + 'efl_ui_view_list_pan.eo', + 'efl_ui_view_list_segarray.eo', + 'efl_ui_view_list_relayout.eo', + 'efl_ui_item.eo', + 'efl_ui_list_item.eo', + 'efl_ui_list_default_item_part_icon.eo', + 'efl_ui_list_default_item_part_end.eo', + 'efl_ui_list_default_item.eo', + 'efl_ui_list_empty_item.eo', + 'efl_ui_list.eo', + 'efl_ui_panes_part.eo', + 'efl_ui_progressbar_part.eo', + 'elm_slider.eo', + 'elm_slider_part_indicator.eo', + 'efl_ui_textpath_part.eo', + 'efl_ui_widget_part.eo', + 'efl_ui_widget_part_bg.eo', + 'efl_ui_widget_part_shadow.eo', + 'efl_ui_win_part.eo', + 'efl_ui_scroller.eo', + 'efl_ui_scroll_manager.eo', + 'efl_ui_pan.eo', + 'efl_access_object.eo', + 'efl_access_action.eo', + 'efl_access_component.eo', + 'efl_access_editable_text.eo', + 'efl_access_selection.eo', + 'efl_access_text.eo', + 'efl_access_value.eo', + 'efl_access_widget_action.eo', + 'efl_access_window.eo', + 'efl_config_global.eo', + 'elm_code_widget.eo', + 'efl_selection.eo', + 'efl_ui_dnd.eo', + 'efl_ui_dnd_container.eo', + 'efl_ui_focus_manager_window_root.eo', + 'efl_ui_pager.eo', + 'efl_page_transition.eo', + 'efl_page_transition_scroll.eo', + 'efl_page_indicator.eo', + 'efl_page_indicator_icon.eo', + 'efl_ui_tab_pager.eo', + 'efl_ui_tab_bar.eo', + 'efl_ui_tab_page.eo', + 'efl_ui_tab_page_part_tab.eo', + 'efl_ui_widget_focus_manager.eo', + 'efl_ui_legacy.eo', + 'efl_ui_button_legacy_part.eo', + 'efl_ui_radio_legacy_part.eo', + 'efl_ui_check_legacy_part.eo', + 'efl_ui_progressbar_legacy_part.eo', + 'elm_spinner.eo', + 'elm_multibuttonentry.eo', + 'elm_multibuttonentry_item.eo', + 'elm_multibuttonentry_part.eo', + 'elm_interface_scrollable.eo', + 'elm_atspi_bridge.eo', + 'elm_atspi_app_object.eo', + 'efl_ui_image_zoomable_pan.eo', + 'elm_pan.eo', + 'elm_toolbar.eo', + 'elm_toolbar_item.eo', + 'elm_view_list.eo', + 'elm_view_form.eo', + 'elm_web.eo', + 'elm_widget_item.eo' +] + +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 = [ + 'elm_general.eot', + 'efl_ui.eot', + 'efl_ui_view_list_types.eot', + 'efl_selection_types.eot', + 'efl_ui_dnd_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 = [ + 'efl_ui_internal_text_interactive.eo', + 'efl_ui_focus_composition_adapter.eo', + 'efl_ui_focus_parent_provider.eo', + 'efl_ui_focus_parent_provider_standard.eo', + 'efl_ui_focus_parent_provider_gen.eo', + 'efl_ui_model_state.eo', + 'efl_selection_manager.eo', + 'efl_datetime_manager.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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +eolian_include_directories += ['-I', meson.current_source_dir()] + +elementary_headers_unstable = [ + 'elm_gen_common.h', + 'elm_atspi_bridge.h', + 'efl_access_object.h', + 'efl_access_text.h', + 'efl_access_widget_action.h', + 'efl_access_window.h', + 'elm_interface_fileselector.h', + 'elm_interface_scrollable.h', + 'elm_interfaces.h', + 'elm_widget.h', + 'elm_widget_actionslider.h', + 'elm_widget_box.h', + 'elm_widget_bubble.h', + 'efl_ui_button_private.h', + 'efl_ui_bg_widget_private.h', + 'elm_widget_calendar.h', + 'efl_ui_calendar_private.h', + 'efl_ui_check_private.h', + 'elm_widget_clock.h', + 'elm_widget_colorselector.h', + 'elm_widget_conform.h', + 'elm_widget_container.h', + 'elm_widget_combobox.h', + 'elm_widget_ctxpopup.h', + 'elm_widget_dayselector.h', + 'elm_widget_diskselector.h', + 'elm_widget_entry.h', + 'elm_widget_fileselector.h', + 'elm_widget_fileselector_button.h', + 'elm_widget_fileselector_entry.h', + 'efl_ui_widget_flip.h', + 'elm_widget_flipselector.h', + 'efl_ui_widget_frame.h', + 'efl_ui_stack_private.h', + 'elm_widget_gengrid.h', + 'elm_widget_genlist.h', + 'elm_widget_glview.h', + 'elm_widget_grid.h', + 'elm_widget_hover.h', + 'elm_widget_hoversel.h', + 'elm_widget_icon.h', + 'efl_ui_widget_image.h', + 'efl_ui_popup_private.h', + 'efl_ui_popup_alert_private.h', + 'efl_ui_popup_alert_scroll_private.h', + 'efl_ui_popup_alert_text_private.h', + 'efl_ui_popup_anchor_private.h', + 'elm_widget_index.h', + 'elm_widget_inwin.h', + 'elm_widget_label.h', + 'elm_widget_layout.h', + 'elm_widget_list.h', + 'elm_widget_map.h', + 'elm_widget_mapbuf.h', + 'elm_widget_menu.h', + 'elm_widget_multibuttonentry.h', + 'elm_widget_naviframe.h', + 'efl_ui_navigation_bar_private.h', + 'efl_ui_navigation_layout_private.h', + 'elm_widget_notify.h', + 'elm_widget_panel.h', + 'efl_ui_panes_private.h', + 'elm_widget_photo.h', + 'efl_ui_image_zoomable_private.h', + 'elm_widget_player.h', + 'elm_widget_plug.h', + 'elm_widget_popup.h', + 'elm_widget_prefs.h', + 'efl_ui_progressbar_private.h', + 'efl_ui_radio_private.h', + 'elm_widget_route.h', + 'elm_widget_scroller.h', + 'elm_widget_segment_control.h', + 'elm_widget_separator.h', + 'elm_widget_slider.h', + 'efl_ui_slider_private.h', + 'efl_ui_slider_interval_private.h', + 'elm_widget_slideshow.h', + 'elm_widget_spinner.h', + 'efl_ui_spin_private.h', + 'efl_ui_spin_button_private.h', + 'efl_ui_datepicker_private.h', + 'efl_ui_timepicker_private.h', + 'efl_ui_tags_private.h', + 'elm_widget_table.h', + 'elm_widget_thumb.h', + 'elm_widget_toolbar.h', + 'efl_ui_video_private.h', + 'efl_ui_item_private.h', + 'efl_ui_list_item_private.h', + 'efl_ui_list_private.h', + 'efl_ui_view_list_private.h', + 'efl_ui_view_list_segarray.h', + 'elm_widget_web.h', + 'efl_ui_clock.h', + 'elm_code.h', + 'elm_code_widget_legacy.h', + 'elm_code_widget_selection.h', + 'elm_code_diff_widget.h', + 'elm_code_common.h', + 'elm_code_line.h', + 'elm_code_text.h', + 'elm_code_indent.h', + 'elm_code_file.h', + 'elm_code_parse.h', + 'elm_code_syntax.h', + 'efl_ui_widget_scroller.h', + 'efl_ui_widget_scroll_manager.h', + 'efl_ui_widget_pan.h', + 'efl_ui_nstate_private.h', + 'Efl_Ui.h', + 'efl_ui_widget_pager.h', + 'efl_page_transition.h', + 'efl_page_transition_scroll.h', + 'efl_page_indicator.h', + 'efl_page_indicator_icon.h', + 'efl_ui_tab_pager_private.h', + 'efl_ui_tab_bar_private.h', + 'efl_ui_tab_page_private.h' +] + +elementary_pub_headers = [ + 'elc_ctxpopup.h', + 'elc_ctxpopup_legacy.h', + 'elc_combobox.h', + 'elc_combobox_legacy.h', + 'elc_fileselector.h', + 'elc_fileselector_legacy.h', + 'elc_fileselector_common.h', + 'elc_fileselector_button.h', + 'elc_fileselector_button_legacy.h', + 'elc_fileselector_entry.h', + 'elc_fileselector_entry_legacy.h', + 'elc_hoversel.h', + 'elc_hoversel_legacy.h', + 'elc_multibuttonentry.h', + 'elc_multibuttonentry_eo.h', + 'elc_multibuttonentry_legacy.h', + 'elc_multibuttonentry_common.h', + 'elc_naviframe.h', + 'elc_naviframe_legacy.h', + 'elc_naviframe_common.h', + 'elc_popup.h', + 'elc_popup_legacy.h', + 'elm_access.h', + 'elm_actionslider.h', + 'elm_actionslider_legacy.h', + 'elm_app.h', + 'elm_atspi_app_object.h', + 'elm_authors.h', + 'elm_bg.h', + 'elm_bg_legacy.h', + 'elm_box.h', + 'elm_box_legacy.h', + 'elm_box_common.h', + 'elm_bubble.h', + 'elm_bubble_legacy.h', + 'elm_button.h', + 'efl_ui_button_eo.h', + 'elm_button_legacy.h', + 'elm_cache.h', + 'elm_calendar.h', + 'elm_calendar_legacy.h', + 'elm_calendar_common.h', + 'efl_ui_calendar.h', + 'elm_check.h', + 'efl_ui_check_eo.h', + 'elm_check_legacy.h', + 'elm_clock.h', + 'elm_clock_legacy.h', + 'elm_cnp.h', + 'elm_colorselector.h', + 'elm_colorselector_legacy.h', + 'elm_colorselector_common.h', + 'elm_color_class.h', + 'elm_config.h', + 'elm_conform.h', + 'elm_conform_legacy.h', + 'elm_cursor.h', + 'elm_datetime.h', + 'elm_dayselector.h', + 'elm_dayselector_legacy.h', + 'elm_debug.h', + 'elm_deprecated.h', + 'elm_diskselector.h', + 'elm_diskselector_common.h', + 'elm_diskselector_legacy.h', + 'elm_entry.h', + 'elm_entry_common.h', + 'elm_entry_eo.h', + 'elm_entry_legacy.h', + 'elm_finger.h', + 'elm_flip.h', + 'efl_ui_flip_eo.h', + 'efl_ui_flip_legacy.h', + 'elm_flipselector.h', + 'elm_flipselector_legacy.h', + 'elm_focus.h', + 'elm_focus_item.h', + 'elm_font.h', + 'elm_frame.h', + 'efl_ui_frame_eo.h', + 'efl_ui_frame_legacy.h', + 'elm_gen.h', + 'elm_general.h', + 'elm_gengrid.h', + 'elm_gengrid_common.h', + 'elm_gengrid_legacy.h', + 'elm_genlist.h', + 'elm_genlist_common.h', + 'elm_genlist_legacy.h', + 'elm_gesture_layer.h', + 'elm_gesture_layer_common.h', + 'elm_gesture_layer_legacy.h', + 'elm_getting_started.h', + 'elm_glview.h', + 'elm_glview_common.h', + 'elm_glview_legacy.h', + 'elm_grid.h', + 'elm_grid_legacy.h', + 'elm_hover.h', + 'elm_hover_legacy.h', + 'elm_icon.h', + 'elm_icon_legacy.h', + 'elm_image.h', + 'elm_image_eo.h', + 'elm_image_legacy.h', + 'elm_index.h', + 'elm_index_legacy.h', + 'elm_inwin.h', + 'elm_inwin_legacy.h', + 'elm_label.h', + 'elm_label_legacy.h', + 'elm_layout.h', + 'elm_layout_common.h', + 'elm_layout_legacy.h', + 'elm_list.h', + 'elm_list_legacy.h', + 'elm_macros.h', + 'elm_map.h', + 'elm_map_common.h', + 'elm_map_legacy.h', + 'elm_mapbuf.h', + 'elm_mapbuf_legacy.h', + 'elm_menu.h', + 'elm_menu_legacy.h', + 'elm_mirroring.h', + 'elm_need.h', + 'elm_notify.h', + 'elm_notify_common.h', + 'elm_notify_legacy.h', + 'efl_ui_nstate.h', + 'elm_object.h', + 'elm_object_item.h', + 'elm_panel.h', + 'elm_panel_common.h', + 'elm_panel_legacy.h', + 'elm_panes.h', + 'efl_ui_panes_eo.h', + 'elm_panes_legacy.h', + 'elm_photo.h', + 'elm_photo_legacy.h', + 'elm_photocam.h', + 'efl_ui_image_zoomable_eo.h', + 'elm_photocam_legacy.h', + 'elm_plug.h', + 'elm_plug_legacy.h', + 'elm_prefs.h', + 'elm_prefs_common.h', + 'elm_prefs_legacy.h', + 'elm_prefs_data.h', + 'elm_progressbar.h', + 'elm_progressbar_common.h', + 'efl_ui_progressbar_eo.h', + 'elm_progressbar_legacy.h', + 'elm_radio.h', + 'efl_ui_radio_eo.h', + 'elm_radio_legacy.h', + 'elm_route.h', + 'elm_route_legacy.h', + 'elm_scale.h', + 'elm_scroll.h', + 'elm_scroller.h', + 'elm_scroller_legacy.h', + 'elm_segment_control.h', + 'elm_segment_control_legacy.h', + 'elm_separator.h', + 'elm_separator_legacy.h', + 'elm_slider.h', + 'elm_slider_common.h', + 'elm_slider_legacy.h', + 'elm_slideshow.h', + 'elm_slideshow_common.h', + 'elm_slideshow_legacy.h', + 'elm_spinner.h', + 'elm_spinner_legacy.h', + 'elm_store.h', + 'elm_systray.h', + 'elm_systray_common.h', + 'elm_systray_watcher.h', + 'elm_sys_notify.h', + 'elm_table.h', + 'elm_table_legacy.h', + 'elm_theme.h', + 'elm_thumb.h', + 'elm_thumb_common.h', + 'elm_thumb_legacy.h', + 'elm_toolbar.h', + 'elm_toolbar_common.h', + 'elm_toolbar_eo.h', + 'elm_toolbar_legacy.h', + 'elm_tooltip.h', + 'elm_transit.h', + 'efl_ui_video.h', + 'efl_ui_video_eo.h', + 'efl_ui_video_legacy.h', + 'elm_view_list.h', + 'elm_view_form.h', + 'elm_web.h', + 'elm_web_common.h', + 'elm_web_eo.h', + 'elm_web_legacy.h', + 'elm_win.h', + 'elm_win_common.h', + 'elm_win_eo.h', + 'elm_win_legacy.h', + 'elm_helper.h', + 'elm_part_helper.h', +] + +elementary_header_src = [ + 'Elementary.h', + 'Elementary_Cursor.h' +] + elementary_pub_headers + elementary_headers_unstable + +elementary_src = [ + 'elm_priv.h', + 'elementary_config.h', + 'els_box.h', + 'elc_ctxpopup.c', + 'elc_fileselector.c', + 'elc_fileselector_button.c', + 'elc_fileselector_entry.c', + 'elc_hoversel.c', + 'elc_multibuttonentry.c', + 'elc_naviframe.c', + 'efl_ui_navigation_bar.c', + 'efl_ui_navigation_layout.c', + 'elc_player.c', + 'elc_popup.c', + 'elc_scrolled_entry.c', + 'elm_access.c', + 'elm_actionslider.c', + 'elm_atspi_app_object.c', + 'elm_atspi_bridge.c', + 'efl_ui_legacy.c', + 'efl_ui_bg.c', + 'efl_ui_bg_widget.c', + 'elm_box.c', + 'elm_bubble.c', + 'efl_ui_button.c', + 'elm_calendar.c', + 'efl_ui_calendar.c', + 'efl_ui_check.c', + 'elm_clock.c', + 'elm_code_line.c', + 'elm_code_text.c', + 'elm_code_indent.c', + 'elm_code_file.c', + 'elm_code_parse.c', + 'elm_code_syntax.c', + 'elm_code_widget_selection.c', + 'elm_code_widget.c', + 'elm_code_diff_widget.c', + 'elm_code.c', + 'elm_code_private.h', + 'elm_code_widget_private.h', + 'elm_colorselector.c', + 'elm_color_class.c', + 'elc_combobox.c', + 'elm_config.c', + 'elm_conform.c', + 'elm_datetime.c', + 'elm_dayselector.c', + 'elm_dbus_menu.c', + 'elm_diskselector.c', + 'elm_entry.c', + 'efl_ui_flip.c', + 'efl_ui_internal_text_interactive.c', + 'efl_ui_internal_text_interactive.h', + 'elm_flipselector.c', + 'elm_font.c', + 'efl_ui_frame.c', + 'efl_ui_stack.c', + 'elm_gengrid.c', + 'elm_genlist.c', + 'elm_gesture_layer.c', + 'elm_gesture_layer_extra_gestures.c', + 'elm_glview.c', + 'elm_grid.c', + 'elm_hover.c', + 'elm_icon.c', + 'efl_ui_image.c', + 'elm_index.c', + 'efl_access_object.c', + 'efl_access_action.c', + 'efl_access_component.c', + 'efl_access_editable_text.c', + 'efl_access_selection.c', + 'efl_access_text.c', + 'efl_access_value.c', + 'efl_access_widget_action.c', + 'efl_access_window.c', + 'elm_interface_fileselector.c', + 'elm_interface_scrollable.c', + 'elm_inwin.c', + 'elm_label.c', + 'efl_ui_layout_object.c', + 'efl_ui_layout_pack.c', + 'elm_list.c', + 'elm_main.c', + 'elm_map.c', + 'elm_mapbuf.c', + 'elm_menu.c', + 'elm_module.c', + 'elm_notify.c', + 'efl_ui_nstate.c', + 'elm_panel.c', + 'efl_ui_panes.c', + 'elm_photo.c', + 'efl_ui_image_zoomable.c', + 'elm_plug.c', + 'elm_prefs.c', + 'elm_prefs_data.c', + 'efl_ui_progressbar.c', + 'efl_ui_radio.c', + 'elm_route.c', + 'elm_scroller.c', + 'elm_segment_control.c', + 'elm_separator.c', + 'elm_slider.c', + 'efl_ui_slider.c', + 'efl_ui_slider_interval.c', + 'efl_ui_spin.c', + 'efl_ui_spin_button.c', + 'efl_ui_datepicker.c', + 'efl_ui_timepicker.c', + 'efl_ui_tags.c', + 'elm_slideshow.c', + 'elm_spinner.c', + 'elm_store.c', + 'elm_systray.c', + 'elm_systray_watcher.c', + 'elm_sys_notify_interface.c', + 'elm_sys_notify.c', + 'elm_sys_notify_dbus.c', + 'elm_table.c', + 'elm_theme.c', + 'elm_thumb.c', + 'elm_toolbar.c', + 'elm_transit.c', + 'elm_util.c', + 'efl_ui_video.c', + 'elm_view_list.c', + 'elm_view_form.c', + 'elm_web2.c', + 'efl_ui_widget.c', + 'efl_ui_win.c', + 'efl_ui_win_inlined.c', + 'efl_ui_win_socket.c', + 'elm_helper.c', + 'els_box.c', + 'els_cursor.c', + 'els_tooltip.c', + 'elu_ews_wm.c', + 'efl_ui_box.c', + 'efl_ui_box_flow.c', + 'efl_ui_box_stack.c', + 'efl_ui_box_layout.c', + 'efl_ui_box_private.h', + 'efl_ui_popup.c', + 'efl_ui_popup_alert.c', + 'efl_ui_popup_alert_scroll.c', + 'efl_ui_popup_alert_text.c', + 'efl_ui_popup_anchor.c', + 'efl_ui_table.c', + 'efl_ui_table_static.c', + 'efl_ui_table_private.h', + 'efl_ui_text.c', + 'efl_ui_text_factory_images.c', + 'efl_ui_text_factory_emoticons.c', + 'efl_ui_text_factory_fallback.c', + 'efl_ui_clock.c', + 'efl_ui_clock_private.h', + 'efl_ui_image_factory.c', + 'efl_ui_focus_manager.c', + 'efl_ui_focus_manager_calc.c', + 'efl_ui_focus_manager_sub.c', + 'efl_ui_focus_object.c', + 'efl_ui_focus_manager_root_focus.c', + 'efl_ui_textpath.c', + 'efl_ui_focus_layer.c', + 'efl_ui_focus_composition.c', + 'efl_ui_focus_parent_provider.c', + 'efl_ui_focus_parent_provider_standard.c', + 'efl_ui_focus_parent_provider_gen.c', + 'efl_ui_focus_util.c', + 'elm_widget_item_static_focus.c', + 'efl_ui_item.c', + 'efl_ui_list_item.c', + 'efl_ui_list_default_item.c', + 'efl_ui_list_empty_item.c', + 'efl_ui_list.c', + 'efl_ui_view_list.c', + 'efl_ui_view_list_precise_layouter.c', + 'efl_ui_view_list_segarray.c', + 'efl_ui_layout_factory.c', + 'efl_ui_scroller.c', + 'efl_ui_scroll_manager.c', + 'efl_ui_pan.c', + 'efl_selection_manager.c', + 'efl_selection_manager_private.h', + 'efl_selection.c', + 'efl_datetime_manager.c', + 'efl_ui_dnd.c', + 'elm_focus_legacy.c', + 'efl_ui_pager.c', + 'efl_page_transition.c', + 'efl_page_transition_scroll.c', + 'efl_page_indicator.c', + 'efl_page_indicator_icon.c', + 'efl_ui_focus_graph.h', + 'efl_ui_focus_graph.c', + 'efl_ui_tab_pager.c', + 'efl_ui_tab_bar.c', + 'efl_ui_tab_page.c', + 'efl_ui_widget_focus_manager.c' +] + +elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl] +elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con, + edje, eldbus, efreet, efreet_mime, efreet_trash, ethumb_client, efl, elocation] + +elm_options = configuration_data() + +config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root()) +config_h.set_quoted('MODULES_PATH', join_paths(dir_lib, 'modules')) +config_h.set_quoted('ELEMENTARY_BASE_DIR', '.data') +config_h.set_quoted('ICON_DIR', join_paths(dir_lib, 'icons')) + +elm_options.set('ELM_UNIX', '1') +elm_options.set('ELM_ELOCATION', '1') + +if config_h.has('HAVE_ALLOCA_H') + elm_options.set('ELM_ALLOCA_H', '1') +endif + +if config_h.has('HAVE_LIBINTL_H') + elm_options.set('ELM_LIBINTL_H', '1') +endif + +if config_h.has('HAVE_DIRENT_H') + elm_options.set('ELM_DIRENT_H', '1') +endif + +if get_option('x11') + config_h.set('HAVE_ELEMENTARY_X', '1') + elementary_deps += ecore_x +endif + +if get_option('wl') + config_h.set('HAVE_ELEMENTARY_WL2', '1') + elementary_deps += ecore_wl2 +endif + +if get_option('drm') + config_h.set('HAVE_ELEMENTARY_DRM', '1') + elementary_deps += ecore_drm2 +endif + +if get_option('cocoa') + config_h.set('HAVE_ELEMENTARY_COCOA', '1') + elementary_deps += ecore_cocoa +endif + +c = configure_file( + output: 'Elementary_Options.h', + install : true, + install_dir : dir_package_include, + configuration: elm_options) + +elm_package_c_args = package_c_args + ['-DELEMENTARY_BUILD=1'] + +elementary_lib = library('elementary', + elementary_src, pub_eo_file_target, priv_eo_file_target, c, + dependencies: elementary_pub_deps + elementary_deps, + include_directories : config_dir + [include_directories('.')] + [include_directories(join_paths('..', '..', '..'))] + [ecore_evas_wayland_engine_include_dir], + install: true, + c_args : elm_package_c_args, + version : meson.project_version() +) + +elementary = declare_dependency( + include_directories: [include_directories('.')], + link_with: elementary_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: elementary_pub_deps, +) + +install_data(pub_eo_files + pub_eo_types_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(elementary_header_src, + install_dir : dir_package_include, +) + +elementary_config_dir = include_directories('.') diff --git a/src/lib/elocation/gen/meson.build b/src/lib/elocation/gen/meson.build new file mode 100644 index 0000000000..58de776fa5 --- /dev/null +++ b/src/lib/elocation/gen/meson.build @@ -0,0 +1,5 @@ + +elocation_src += files([ + 'eldbus_geo_clue2_client.c', + 'eldbus_geo_clue2_location.c', + 'eldbus_geo_clue2_manager.c']) diff --git a/src/lib/elocation/meson.build b/src/lib/elocation/meson.build new file mode 100644 index 0000000000..080ea57278 --- /dev/null +++ b/src/lib/elocation/meson.build @@ -0,0 +1,28 @@ +elocation_deps = [eina, eo, efl, ecore, eldbus] +elocation_pub_deps = [ecore, eldbus] + +elocation_src = files(['elocation.c']) + +subdir('gen') + +elocation_header_src = ['Elocation.h'] + + +elocation_lib = library('elocation', + elocation_src, + dependencies: [m] + elocation_deps + elocation_pub_deps, + include_directories : config_dir + [include_directories(join_paths('..','..'))], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +elocation = declare_dependency( + include_directories: [include_directories('.')], + link_with: elocation_lib, + dependencies: elocation_pub_deps, +) + +install_headers(elocation_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/elput/meson.build b/src/lib/elput/meson.build new file mode 100644 index 0000000000..c812ad7759 --- /dev/null +++ b/src/lib/elput/meson.build @@ -0,0 +1,43 @@ +elput_deps = [ecore, ecore_input, eeze, eo, m] +elput_pub_deps = [eina, eldbus] +pub_eo_file_target = [] + +elput_header_src = [ + 'Elput.h' +] + +elput_src = [ + 'elput_touch.c', + 'elput_evdev.c', + 'elput_input.c', + 'elput_logind.c', + 'elput_manager.c', + 'elput.c', + 'elput_private.h' +] + +elput_deps += dependency('libinput', version : ['>=1.7.0']) +elput_deps += dependency('xkbcommon', version : ['>=0.3.0']) +elput_deps += dependency('libudev') +if get_option('systemd') + elput_deps += systemd +endif + +elput_lib = library('elput', + elput_src, pub_eo_file_target, + dependencies: elput_pub_deps + elput_deps, + include_directories : config_dir, + install: true, + version : meson.project_version() +) + +elput = declare_dependency( + include_directories: [include_directories('.')], + link_with: elput_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: elput_pub_deps, +) + +install_headers(elput_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/elua/meson.build b/src/lib/elua/meson.build new file mode 100644 index 0000000000..7e0c3af7ba --- /dev/null +++ b/src/lib/elua/meson.build @@ -0,0 +1,24 @@ +elua_deps = [eina, eo, efl, ecore, ecore_file, intl] +elua_pub_deps = [luajit] + +elua_src = ['elua.c', 'io.c', 'cache.c'] +elua_header_src = ['Elua.h'] + +elua_lib = library('elua', + elua_src, + dependencies: [m, dl] + elua_deps + elua_pub_deps, + include_directories : config_dir + [include_directories(join_paths('..','..'))], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +elua = declare_dependency( + include_directories: [include_directories('.')], + link_with: elua_lib, + dependencies: elua_pub_deps, +) + +install_headers(elua_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/embryo/meson.build b/src/lib/embryo/meson.build new file mode 100644 index 0000000000..6ab8af8fe7 --- /dev/null +++ b/src/lib/embryo/meson.build @@ -0,0 +1,40 @@ +embryo_deps = [ecore] +embryo_pub_deps = [eina, eo, efl] + + +embryo_header_src = [ + 'Embryo.h' +] + +embryo_src = [ + 'embryo_amx.c', + 'embryo_args.c', + 'embryo_float.c', + 'embryo_main.c', + 'embryo_rand.c', + 'embryo_str.c', + 'embryo_time.c', + 'embryo_private.h' +] + +embryo_deps = [eina, m] + +embryo_lib = library('embryo', + embryo_src, + dependencies: [m, buildsystem] + embryo_deps, + include_directories : config_dir + [include_directories(join_paths('..','..'))], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +embryo = declare_dependency( + include_directories: [include_directories('.')], + link_with: embryo_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: embryo_pub_deps, +) + +install_headers(embryo_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build new file mode 100644 index 0000000000..4ae888c42a --- /dev/null +++ b/src/lib/emile/meson.build @@ -0,0 +1,42 @@ +emile_deps = [jpeg, crypto, dependency('zlib')] +emile_pub_deps = [eina, efl] + +emile_headers = [ + 'Emile.h', + 'emile_cipher.h', + 'emile_compress.h', + 'emile_image.h', + 'emile_base64.h' +] + +emile_src = [ + 'emile_private.h', + 'emile_main.c', + 'emile_compress.c', + 'emile_image.c', + 'emile_base64.c', +] + +if (get_option('crypto') == 'gnutls') + emile_src += 'emile_cipher_gnutls.c' +elif (get_option('crypto') == 'openssl') + emile_src += 'emile_cipher_openssl.c' +endif + +emile_lib = library('emile', + emile_src, + include_directories: config_dir, + dependencies: emile_pub_deps + emile_deps + [lz4, rg_etc, m], + install: true, + version : meson.project_version() +) + +emile = declare_dependency( + include_directories: include_directories('.'), + link_with: emile_lib, + dependencies: [eina, efl], +) + +install_headers(emile_headers, + install_dir: dir_package_include +) diff --git a/src/lib/emotion/meson.build b/src/lib/emotion/meson.build new file mode 100644 index 0000000000..56fda43cb9 --- /dev/null +++ b/src/lib/emotion/meson.build @@ -0,0 +1,70 @@ +pub_legacy_eo_files = [ + 'efl_canvas_video.eo' +] + +pub_eo_file_target = [] +priv_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 + +eolian_include_directories += ['-I', meson.current_source_dir()] + +emotion_header_src = [ + 'Emotion.h', + 'Emotion_Legacy.h', + 'Emotion_Eo.h' +] + +emotion_src = [ + 'emotion_modules.h', + 'emotion_private.h', + 'emotion_smart.c', + 'emotion_webcam.c', + 'emotion_modules.c', + 'emotion_main.c' +] + +emotion_deps = [ecore, eet, evas, eio, emile] +emotion_pub_deps = [eina, eo, efl] + +if get_option('eeze') == true + emotion_deps += [eeze] +endif + +emotion_lib = library('emotion', + emotion_src, pub_eo_file_target, priv_eo_file_target, + dependencies: emotion_deps + emotion_pub_deps, + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +emotion_package_c_args = package_c_args + +emotion = declare_dependency( + include_directories: [include_directories('.')], + link_with: emotion_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: emotion_pub_deps, +) + +install_data(pub_legacy_eo_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(emotion_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/eo/meson.build b/src/lib/eo/meson.build new file mode 100644 index 0000000000..5789c95f4c --- /dev/null +++ b/src/lib/eo/meson.build @@ -0,0 +1,73 @@ +eo_deps = [] +eo_pub_deps = [eina] + +pub_eo_files = [ + 'efl_object.eo', + 'efl_class.eo', + 'efl_object_override.eo', + 'efl_interface.eo' +] + +eo_src = [ + 'eo.c', + 'eo_ptr_indirection.c', + 'eo_ptr_indirection.h', + 'eo_base_class.c', + 'eo_class_class.c', + 'eo_add_fallback.c', + 'eo_add_fallback.h', + 'eo_private.h', + 'eo_internal.h' +] + +pub_eo_types_files = [ + 'eina_types.eot' +] + +eo_header = ['Eo.h'] + +pub_eo_file_target = [] +priv_eo_file_target = [] +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 + +eolian_include_directories += ['-I', meson.current_source_dir()] + +eo_lib = library('eo', + eo_src, pub_eo_file_target, + dependencies: [eina, valgrind, dl, execinfo], + install: true, + version : meson.project_version() +) + +library('eo_dbg', + eo_src, pub_eo_file_target, + dependencies: [eina, valgrind, dl, execinfo], + install: true, + c_args : '-DEO_DEBUG', + version : meson.project_version() +) + +eo = declare_dependency( + include_directories: [include_directories('.')], + link_with: eo_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: eo_deps + eo_pub_deps, +) + +install_data(pub_eo_files + pub_eo_types_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(eo_header, + install_dir : dir_package_include, +) diff --git a/src/lib/eolian/meson.build b/src/lib/eolian/meson.build new file mode 100644 index 0000000000..2be0197212 --- /dev/null +++ b/src/lib/eolian/meson.build @@ -0,0 +1,55 @@ +eolian_pub_deps = [eina] +eolian_deps = [] + +eolian_src = [ +'eo_lexer.c', +'eo_lexer.h', +'eo_parser.c', +'eo_parser.h', +'eolian.c', +'eolian_priv.h', +'eolian_database.c', +'eolian_database.h', +'database_check.c', +'database_class.c', +'database_class_api.c', +'database_function.c', +'database_function_api.c', +'database_function_parameter.c', +'database_function_parameter_api.c', +'database_type.c', +'database_type_api.c', +'database_implement.c', +'database_implement_api.c', +'database_constructor.c', +'database_constructor_api.c', +'database_event.c', +'database_event_api.c', +'database_part.c', +'database_part_api.c', +'database_expr.c', +'database_expr_api.c', +'database_var.c', +'database_var_api.c', +'database_validate.c' +] + +eolian_lib = library('eolian', eolian_src, + include_directories: config_dir, + dependencies: eina, + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +eolian = declare_dependency( + include_directories: include_directories('.'), + link_with : eolian_lib, + dependencies: eina, +) + +eolian_include_dir = join_paths(dir_data, 'eolian', 'include') + +install_headers('Eolian.h', + install_dir : dir_package_include +) diff --git a/src/lib/ephysics/meson.build b/src/lib/ephysics/meson.build new file mode 100644 index 0000000000..ad1a168ae5 --- /dev/null +++ b/src/lib/ephysics/meson.build @@ -0,0 +1,41 @@ +bullet = dependency('bullet') + +ephysics_deps = [evas, bullet] +ephysics_pub_deps = [eina, eo, efl] + +ephysics_header_src = [ + 'EPhysics.h' +] + +ephysics_src = [ + 'ephysics_private.h', + 'ephysics_trimesh.h', + 'ephysics_body_materials.h', + 'ephysics_body.cpp', + 'ephysics_camera.cpp', + 'ephysics_constraints.cpp', + 'ephysics_main.cpp', + 'ephysics_quaternion.cpp', + 'ephysics_shape.cpp', + 'ephysics_world.cpp' +] + +ephysics_lib = library('ephysics', + ephysics_src, + dependencies: ephysics_pub_deps + [m] + ephysics_deps, + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +ephysics = declare_dependency( + include_directories: [include_directories('.')], + link_with: ephysics_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: ephysics_pub_deps, +) + +install_headers(ephysics_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/ethumb/meson.build b/src/lib/ethumb/meson.build new file mode 100644 index 0000000000..ffc62e91e5 --- /dev/null +++ b/src/lib/ethumb/meson.build @@ -0,0 +1,32 @@ +ethumb_header_src = [ + 'Ethumb.h' +] + +ethumb_src = [ + 'ethumb.c', + 'ethumb_private.h', + 'md5.h', + 'md5.c', +] + +ethumb_deps = [eet, evas, ecore, ecore_evas, ecore_file, ecore_imf, edje, emile] +ethumb_pub_deps = [eina, eo, efl] + +ethumb_lib = library('ethumb', + ethumb_src, + dependencies: ethumb_pub_deps + [m] + ethumb_deps, + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +ethumb = declare_dependency( + include_directories: [include_directories('.')], + link_with: ethumb_lib, + dependencies: ethumb_pub_deps, +) + +install_headers(ethumb_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/ethumb_client/meson.build b/src/lib/ethumb_client/meson.build new file mode 100644 index 0000000000..bddbab1d8d --- /dev/null +++ b/src/lib/ethumb_client/meson.build @@ -0,0 +1,34 @@ +ethumb_client_header_src = [ + 'Ethumb_Client.h' +] + +ethumb_client_src = [ + 'ethumb_client.c' +] + +ethumb_client_deps = [ + eldbus, + ecore +] + +ethumb_client_pub_deps = [eina, eo, efl, ethumb] + +ethumb_client_lib = library('ethumb_client', + ethumb_client_src, + dependencies: ethumb_client_pub_deps + ethumb_client_deps, + include_directories : config_dir + [include_directories('.')], + install: true, + c_args : package_c_args, + version : meson.project_version() +) + +ethumb_client = declare_dependency( + include_directories: [include_directories('.')], + link_with: ethumb_client_lib, + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: ethumb_client_pub_deps, +) + +install_headers(ethumb_client_header_src, + install_dir : dir_package_include, +) diff --git a/src/lib/evas/cache/meson.build b/src/lib/evas/cache/meson.build new file mode 100644 index 0000000000..fa276ecad6 --- /dev/null +++ b/src/lib/evas/cache/meson.build @@ -0,0 +1,6 @@ +evas_src += files([ + 'evas_cache.h', + 'evas_cache_engine_image.c', + 'evas_cache_image.c', + 'evas_preload.c', +])
\ No newline at end of file diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build new file mode 100644 index 0000000000..47db33de4b --- /dev/null +++ b/src/lib/evas/canvas/meson.build @@ -0,0 +1,204 @@ + +pub_legacy_eo_files = [ + 'evas_canvas.eo', + 'evas_line.eo', + 'evas_table.eo', + 'evas_grid.eo', + 'evas_box.eo', + 'evas_text.eo', + 'evas_textgrid.eo', + 'evas_image.eo', +] + +foreach eo_file : pub_legacy_eo_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.legacy.h',], + install : true, + install_dir : join_paths(dir_package_include, 'canvas'), + 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_canvas_polygon.eo', + 'efl_canvas_image_internal.eo', + 'evas_canvas3d_camera.eo', + 'evas_canvas3d_texture.eo', + 'evas_canvas3d_material.eo', + 'evas_canvas3d_light.eo', + 'evas_canvas3d_mesh.eo', + 'evas_canvas3d_primitive.eo', + 'evas_canvas3d_node.eo', + 'evas_canvas3d_scene.eo', + 'evas_canvas3d_object.eo', + 'efl_canvas_image.eo', + 'efl_canvas_snapshot.eo', + 'efl_canvas_proxy.eo', + 'efl_canvas_scene3d.eo', + 'efl_canvas_surface.eo', + 'efl_canvas_surface_tbm.eo', + 'efl_canvas_surface_x11.eo', + 'efl_canvas_surface_wayland.eo', + 'efl_canvas_filter_internal.eo', + 'efl_input_state.eo', + 'efl_input_interface.eo', + 'efl_input_event.eo', + 'efl_input_key.eo', + 'efl_input_pointer.eo', + 'efl_input_hold.eo', + 'efl_input_focus.eo', + 'efl_canvas_animation.eo', + 'efl_canvas_animation_alpha.eo', + 'efl_canvas_animation_rotate.eo', + 'efl_canvas_animation_scale.eo', + 'efl_canvas_animation_translate.eo', + 'efl_canvas_animation_group.eo', + 'efl_canvas_animation_group_parallel.eo', + 'efl_canvas_animation_group_sequential.eo', + 'efl_canvas_animation_player.eo', + 'efl_canvas_text_factory.eo', + 'efl_canvas_rectangle.eo', + 'efl_canvas_object.eo', + 'efl_canvas_vg_object.eo', + 'efl_canvas_vg_node.eo', + 'efl_canvas_vg_container.eo', + 'efl_canvas_vg_shape.eo', + 'efl_canvas_vg_gradient.eo', + 'efl_canvas_vg_gradient_radial.eo', + 'efl_canvas_vg_gradient_linear.eo', + 'efl_canvas_group.eo', + 'efl_gfx_map.eo', + 'efl_canvas_event_grabber.eo', + 'efl_canvas_text.eo' +] + +pub_evas_eo_files += 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', eo_file + '.legacy.h',], + install : true, + install_dir : join_paths(dir_package_include, 'canvas'), + 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 = [ + 'evas_canvas3d_types.eot', + 'efl_canvas_animation_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, 'canvas'), + 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_evas_eot_files += files(pub_eo_types_files) + +evas_src += files([ + 'evas_callbacks.c', + 'evas_clip.c', + 'evas_data.c', + 'evas_device.c', + 'evas_events.c', + 'evas_events_legacy.c', + 'evas_focus.c', + 'evas_key.c', + 'evas_key_grab.c', + 'evas_layer.c', + 'evas_main.c', + 'evas_name.c', + 'evas_image_legacy.c', + 'evas_object_image.c', + 'evas_object_main.c', + 'evas_object_inform.c', + 'evas_object_intercept.c', + 'evas_object_line.c', + 'evas_object_polygon.c', + 'evas_object_rectangle.c', + 'evas_object_smart.c', + 'evas_object_smart_clipped.c', + 'evas_object_box.c', + 'evas_object_table.c', + 'evas_object_text.c', + 'evas_object_textblock.c', + 'evas_object_textgrid.c', + 'evas_object_grid.c', + 'evas_font_dir.c', + 'evas_rectangle.c', + 'evas_render.c', + 'evas_smart.c', + 'evas_async_events.c', + 'evas_stats.c', + 'evas_touch_point.c', + 'evas_map.c', + 'evas_map.h', + 'evas_gl.c', + 'evas_out.c', + 'efl_canvas_image.c', + 'efl_canvas_event_grabber.c', + 'efl_canvas_proxy.c', + 'efl_canvas_snapshot.c', + 'efl_canvas_scene3d.c', + 'efl_canvas_surface.c', + 'efl_canvas_surface_tbm.c', + 'efl_canvas_surface_x11.c', + 'efl_canvas_surface_wayland.c', + 'efl_gfx_map.c', + 'efl_input_event.c', + 'efl_input_key.c', + 'efl_input_pointer.c', + 'efl_input_hold.c', + 'efl_input_focus.c', + 'efl_canvas_animation.c', + 'efl_canvas_animation_alpha.c', + 'efl_canvas_animation_rotate.c', + 'efl_canvas_animation_scale.c', + 'efl_canvas_animation_translate.c', + 'efl_canvas_animation_group.c', + 'efl_canvas_animation_group_parallel.c', + 'efl_canvas_animation_group_sequential.c', + 'efl_canvas_animation_player.c', + 'efl_canvas_vg_object.c', + 'evas_vg_node.c', + 'evas_vg_container.c', + 'evas_vg_gradient.c', + 'evas_vg_gradient_linear.c', + 'evas_vg_gradient_radial.c', + 'evas_vg_utils.c', + 'evas_vg_shape.c', + 'evas_filter_mixin.c', + 'evas_canvas3d_object.c', + 'evas_canvas3d_scene.c', + 'evas_canvas3d_node.c', + 'evas_canvas3d_camera.c', + 'evas_canvas3d_light.c', + 'evas_canvas3d_mesh.c', + 'evas_canvas3d_texture.c', + 'evas_canvas3d_material.c', + 'evas_canvas3d_primitive.c', + 'evas_canvas3d_node_callback.h', + 'evas_canvas3d_eet.c', + ]) + +evas_include_directories += include_directories('.') + +install_headers('evas_textblock_legacy.h', + install_dir : join_paths(dir_package_include, 'canvas'), +) diff --git a/src/lib/evas/common/language/meson.build b/src/lib/evas/common/language/meson.build new file mode 100644 index 0000000000..dd725a92bc --- /dev/null +++ b/src/lib/evas/common/language/meson.build @@ -0,0 +1,7 @@ +evas_src += files([ + 'evas_bidi_utils.c', + 'evas_language_utils.c', + 'evas_bidi_utils.h', + 'evas_language_utils.h', + 'evas_script_table.h', +])
\ No newline at end of file diff --git a/src/lib/evas/common/meson.build b/src/lib/evas/common/meson.build new file mode 100644 index 0000000000..05fa24449d --- /dev/null +++ b/src/lib/evas/common/meson.build @@ -0,0 +1,87 @@ +evas_include_directories += include_directories('.') + +evas_src += files([ + 'evas_op_copy_main_.c', + 'evas_op_blend_main_.c', + 'evas_op_add_main_.c', + 'evas_op_sub_main_.c', + 'evas_op_mask_main_.c', + 'evas_op_mul_main_.c', + 'evas_blend_main.c', + 'evas_blit_main.c', + 'evas_convert_color.c', + 'evas_convert_colorspace.c', + 'evas_convert_gry_1.c', + 'evas_convert_gry_8.c', + 'evas_convert_main.c', + 'evas_convert_rgb_16.c', + 'evas_convert_rgb_24.c', + 'evas_convert_rgb_8.c', + 'evas_convert_grypal_6.c', + 'evas_convert_yuv.c', + 'evas_cpu.c', + 'evas_draw_main.c', + 'evas_font_draw.c', + 'evas_font_load.c', + 'evas_font_main.c', + 'evas_font_query.c', + 'evas_font_compress.c', + 'evas_image_load.c', + 'evas_image_save.c', + 'evas_image_main.c', + 'evas_image_data.c', + 'evas_image_scalecache.c', + 'evas_line_main.c', + 'evas_polygon_main.c', + 'evas_rectangle_main.c', + 'evas_scale_main.c', + 'evas_scale_sample.c', + 'evas_scale_smooth.c', + 'evas_scale_span.c', + 'evas_thread_render.c', + 'evas_tiler.c', + 'evas_pipe.c', + 'evas_text_utils.c', + 'evas_font_ot.c', + 'evas_map_image.c', + 'evas_map_image.h', + 'evas_blend.h', + 'evas_blend_private.h', + 'evas_convert_color.h', + 'evas_convert_colorspace.h', + 'evas_convert_gry_1.h', + 'evas_convert_gry_8.h', + 'evas_convert_grypal_6.h', + 'evas_convert_main.h', + 'evas_convert_rgb_16.h', + 'evas_convert_rgb_24.h', + 'evas_convert_rgb_32.h', + 'evas_convert_rgb_32.c', + 'evas_convert_rgb_8.h', + 'evas_convert_yuv.h', + 'evas_draw.h', + 'evas_font.h', + 'evas_font_private.h', + 'evas_image.h', + 'evas_image_private.h', + 'evas_line.h', + 'evas_polygon.h', + 'evas_rectangle.h', + 'evas_scale_main.h', + 'evas_scale_smooth.h', + 'evas_scale_span.h', + 'evas_pipe.h', + 'language/evas_bidi_utils.h', + 'language/evas_language_utils.h', + 'language/evas_script_table.h', + 'evas_text_utils.h', + 'evas_font_ot.h', + 'evas_font_draw.h', + 'evas_common_generic_cache.c', + 'region.c', + 'region.h' +]) + +#subdir('evas_op_blend') +#subdir('evas_op_sub') +subdir('language') diff --git a/src/lib/evas/common3d/meson.build b/src/lib/evas/common3d/meson.build new file mode 100644 index 0000000000..22341b4a84 --- /dev/null +++ b/src/lib/evas/common3d/meson.build @@ -0,0 +1,2 @@ +subdir('primitives') +subdir('save_load')
\ No newline at end of file diff --git a/src/lib/evas/common3d/primitives/meson.build b/src/lib/evas/common3d/primitives/meson.build new file mode 100644 index 0000000000..2888869bf8 --- /dev/null +++ b/src/lib/evas/common3d/primitives/meson.build @@ -0,0 +1,5 @@ +subdir('solids_of_revolution') +subdir('surfaces') +subdir('tabulated_primitives') + +evas_src += files(['primitive_common.c'])
\ No newline at end of file diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build new file mode 100644 index 0000000000..ac35b05093 --- /dev/null +++ b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build @@ -0,0 +1,6 @@ +evas_src += files([ + 'cone.c', + 'cylinder.c', + 'sphere.c', + 'torus.c' +])
\ No newline at end of file diff --git a/src/lib/evas/common3d/primitives/surfaces/meson.build b/src/lib/evas/common3d/primitives/surfaces/meson.build new file mode 100644 index 0000000000..398996f148 --- /dev/null +++ b/src/lib/evas/common3d/primitives/surfaces/meson.build @@ -0,0 +1,4 @@ +evas_src += files([ + 'surface.c', + 'terrain.c' +])
\ No newline at end of file diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build new file mode 100644 index 0000000000..a24df304d1 --- /dev/null +++ b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build @@ -0,0 +1,4 @@ +evas_src += files([ + 'cube.c', + 'square.c' +])
\ No newline at end of file diff --git a/src/lib/evas/common3d/save_load/meson.build b/src/lib/evas/common3d/save_load/meson.build new file mode 100644 index 0000000000..72f430d31e --- /dev/null +++ b/src/lib/evas/common3d/save_load/meson.build @@ -0,0 +1,6 @@ +evas_src += files([ + 'evas_model_load.c', + 'evas_model_load_save_common.c', + 'evas_model_load_save_common.h', + 'evas_model_save.c', +])
\ No newline at end of file diff --git a/src/lib/evas/file/meson.build b/src/lib/evas/file/meson.build new file mode 100644 index 0000000000..3fb4c754a9 --- /dev/null +++ b/src/lib/evas/file/meson.build @@ -0,0 +1,6 @@ +evas_src += files([ + 'evas_module.c', + 'evas_module.h', + 'evas_path.c', + 'evas_path.h', +]) diff --git a/src/lib/evas/filters/lua/meson.build b/src/lib/evas/filters/lua/meson.build new file mode 100644 index 0000000000..26658feae7 --- /dev/null +++ b/src/lib/evas/filters/lua/meson.build @@ -0,0 +1,3 @@ +install_data('color.lua', + install_dir : join_paths(dir_data, 'evas', 'filters', 'lua') +)
\ No newline at end of file diff --git a/src/lib/evas/filters/meson.build b/src/lib/evas/filters/meson.build new file mode 100644 index 0000000000..c15c7671a2 --- /dev/null +++ b/src/lib/evas/filters/meson.build @@ -0,0 +1,19 @@ +subdir('lua') + +evas_src += files([ + 'evas_filter.c', + 'evas_filter_parser.c', + 'evas_filter_private.h', + 'evas_filter_utils.c', +]) + +luajit = dependency('luajit') +if target_machine.system() == 'darwin' +# luajit on macos is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy + luajit = declare_dependency( + include_directories: include_directories(luajit.get_pkgconfig_variable('includedir')), + link_args: ['-L'+luajit.get_pkgconfig_variable('libdir'), '-l'+luajit.get_pkgconfig_variable('libname')] + ) +endif + +evas_deps += luajit
\ No newline at end of file diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build new file mode 100644 index 0000000000..62d9b27599 --- /dev/null +++ b/src/lib/evas/gesture/meson.build @@ -0,0 +1,69 @@ +pub_eo_files = [ + 'efl_canvas_gesture_touch.eo', + 'efl_canvas_gesture.eo', + 'efl_canvas_gesture_tap.eo', + 'efl_canvas_gesture_long_tap.eo', + 'efl_canvas_gesture_recognizer.eo', + 'efl_canvas_gesture_manager.eo' +] + +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 : join_paths(dir_package_include, 'gesture'), + 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_evas_eo_files += files(pub_eo_files) + +pub_eo_files = [ + 'efl_canvas_gesture_recognizer_tap.eo', + 'efl_canvas_gesture_recognizer_long_tap.eo' +] + +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 : false, + install_dir : join_paths(dir_package_include, 'gesture'), + 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 = [ + 'efl_canvas_gesture_types.eot', +] + +pub_evas_eot_files += files(pub_eo_types_files) + +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, 'gesture'), + 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 + +evas_src += files([ + 'efl_canvas_gesture_touch.c', + 'efl_canvas_gesture.c', + 'efl_canvas_gesture_tap.c', + 'efl_canvas_gesture_long_tap.c', + 'efl_canvas_gesture_recognizer.c', + 'efl_canvas_gesture_recognizer_tap.c', + 'efl_canvas_gesture_recognizer_long_tap.c', + 'efl_canvas_gesture_manager.c', +]) diff --git a/src/lib/evas/include/meson.build b/src/lib/evas/include/meson.build new file mode 100644 index 0000000000..aaeeb9ba66 --- /dev/null +++ b/src/lib/evas/include/meson.build @@ -0,0 +1,18 @@ +evas_include_directories += [include_directories('.')] + + +pub_eo_files = [ + 'evas_ector_buffer.eo' +] + +foreach eo_file : pub_eo_files + pub_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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +eolian_include_directories += ['-I', meson.current_source_dir()] diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build new file mode 100644 index 0000000000..d72032d957 --- /dev/null +++ b/src/lib/evas/meson.build @@ -0,0 +1,175 @@ +# README +# +# Evas build is a bit more complex. +# the final shared library is build in src/lib/evas_goal/meson.build. +# +# The content of lib/evas is build as static_library as +# are all the engines loaders and savers. +# +# All those stages are defining dependencies with theire source code +# as 'source :', later everything is build as libevas.so. +# +# For now loaders and savers are ALWAYS build statically. +# + +evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl] +pub_eo_file_target = [] +priv_eo_files = [] + +pub_evas_eo_files = [] +pub_evas_eot_files = [] + +pub_legacy_eo_files = [ + +] + +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 = [ + +] + +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 = [ + +] + +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()] + +evas_header_src = [ + 'Evas.h', + 'Evas_Common.h', + 'Evas_Eo.h', + 'Evas_GL.h', + 'Evas_Legacy.h', + 'Evas_Loader.h', +] + +evas_include_directories = [ + include_directories('.'), + include_directories('common'), + include_directories('common3d'), + include_directories(join_paths('common3d', 'save_load')), + include_directories('include'), + include_directories('filters'), + vg_common_inc_dir +] + +evas_src = [ + 'main.c' +] + +evas_src += vg_common_src + +evas_deps += dependency('freetype2') + +if (get_option('fontconfig')) + config_h.set('HAVE_FONTCONFIG', '1') + evas_deps += dependency('fontconfig') +endif + +if (get_option('fribidi')) + config_h.set('HAVE_FRIBIDI', '1') + evas_deps += dependency('fribidi') +endif + +if (get_option('pixman')) + pixman_support = ['HAVE_PIXMAN', 'PIXMAN_FONT', 'PIXMAN_RECT', 'PIXMAN_LINE', 'PIXMAN_POLY', 'PIXMAN_IMAGE', 'PIXMAN_IMAGE_SCALE_SAMPLE'] + foreach support : pixman_support + config_h.set(support, '1') + endforeach + evas_deps += dependency('pixman') +endif + +if (get_option('hyphen')) + config_h.set('HAVE_HYPHEN', '1') + evas_deps += dependency('hyphen') +endif + +subdir('include') +subdir('common') +subdir('canvas') +subdir('gesture') +subdir('filters') +subdir('cache') +subdir('common3d') +subdir('file') +subdir('vg') + +gl_deps = [] + +if get_option('harfbuzz') + evas_deps += dependency('harfbuzz') + config_h.set('HAVE_HARFBUZZ', '1') +endif + +if get_option('wl') + evas_deps += wayland_protocol +endif + + +if get_option('opengl') != 'none' + gl_deps += dependency('gl') +endif + +if get_option('opengl') == 'es-egl' + config_h.set('GL_GLES', '1') + gl_deps += dependency('egl') +endif + +evas_pre = declare_dependency( + include_directories: evas_include_directories + [vg_common_inc_dir], + sources : pub_eo_file_target + priv_eo_file_target, + dependencies: [eina, eo, ector, emile, evas_deps], +) + +evas_pre_lib_dep = declare_dependency( + include_directories: evas_include_directories + [vg_common_inc_dir], + sources : [evas_src, pub_eo_file_target], + dependencies: [evas_deps, m, draw, valgrind, libunibreak] +) + +install_data(pub_evas_eo_files + pub_evas_eot_files, + install_dir: join_paths(eolian_include_dir, package_version_name) +) + +install_headers(evas_header_src, + install_dir : dir_package_include, +) + +automatic_pkgfile = false diff --git a/src/lib/evas/vg/meson.build b/src/lib/evas/vg/meson.build new file mode 100644 index 0000000000..2f9622312d --- /dev/null +++ b/src/lib/evas/vg/meson.build @@ -0,0 +1 @@ +evas_src += files(['evas_vg_cache.c'])
\ No newline at end of file diff --git a/src/lib/evas_goal/empty.c b/src/lib/evas_goal/empty.c new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/lib/evas_goal/empty.c diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build new file mode 100644 index 0000000000..057006884c --- /dev/null +++ b/src/lib/evas_goal/meson.build @@ -0,0 +1,29 @@ +evas_lib = library('evas', + 'empty.c', + #all the source code is coming from evas_pre_lib_dep + dependencies: [evas_pre_lib_dep, evas_static_list], + install: true, + c_args : '-DPACKAGE_DATA_DIR="'+join_paths(dir_data, 'evas')+'"', + version : meson.project_version() +) + +evas = declare_dependency( + link_with : [evas_lib], + dependencies : [eina, ecore, ector, emile, evas_pre], + include_directories : evas_include_directories +) + +evas_bin = declare_dependency( + link_with : [evas_lib], + dependencies : [eina, ecore, ector, emile, dependency('luajit')], + include_directories : evas_include_directories +) + +automatic_pkgfile = false + +pkgconfig.generate(evas_lib, + name : 'evas', + subdirs : 'evas-'+version_major, + version : version_major + '.' + version_minor, + libraries : [eina, ecore, ector, emile, dependency('luajit')], +) diff --git a/src/modules/ecore/meson.build b/src/modules/ecore/meson.build new file mode 100644 index 0000000000..08c868a665 --- /dev/null +++ b/src/modules/ecore/meson.build @@ -0,0 +1,10 @@ +system_modules = [ + 'systemd', + 'upower', + #'tizen', +] + +foreach system_module : system_modules + mod_install_dir = join_paths(dir_lib, 'ecore', 'system', system_module, version_name) + subdir(join_paths('system', system_module)) +endforeach diff --git a/src/modules/ecore/system/systemd/meson.build b/src/modules/ecore/system/systemd/meson.build new file mode 100644 index 0000000000..7649611255 --- /dev/null +++ b/src/modules/ecore/system/systemd/meson.build @@ -0,0 +1,9 @@ +if get_option('systemd') + ecore_systemd_mod = shared_module('systemd', + 'ecore_system_systemd.c', + dependencies: [ecore, eldbus], + install: true, + install_dir: mod_install_dir, + ) + module_files += join_paths(mod_install_dir, 'libsystemd.' + sys_mod_extension) +endif diff --git a/src/modules/ecore/system/tizen/meson.build b/src/modules/ecore/system/tizen/meson.build new file mode 100644 index 0000000000..78c7640e4b --- /dev/null +++ b/src/modules/ecore/system/tizen/meson.build @@ -0,0 +1,7 @@ +ecore_systemd_mod = shared_module('tizen', + 'ecore_system_tizen.c', + dependencies: [ecore, eldbus], + install: true, + install_dir: mod_install_dir, +) +module_files += join_paths(mod_install_dir, 'libtizen.' + sys_mod_extension) diff --git a/src/modules/ecore/system/upower/meson.build b/src/modules/ecore/system/upower/meson.build new file mode 100644 index 0000000000..ea1a20bec1 --- /dev/null +++ b/src/modules/ecore/system/upower/meson.build @@ -0,0 +1,7 @@ +ecore_systemd_mod = shared_module('upower', + 'ecore_system_upower.c', + dependencies: [ecore, eldbus], + install: true, + install_dir: mod_install_dir, +) +module_files += join_paths(mod_install_dir, 'libupower.' + sys_mod_extension) diff --git a/src/modules/ecore_buffer/meson.build b/src/modules/ecore_buffer/meson.build new file mode 100644 index 0000000000..00f393fdb4 --- /dev/null +++ b/src/modules/ecore_buffer/meson.build @@ -0,0 +1,25 @@ + + +subdir('shm') + +#common dri packages +libtbm = dependency('libtbm', required: false) +libdrm = dependency('libdrm', required: false) + +if libtbm.found() == true and libdrm.found() == true + libdri2 = dependency('libdri2', required: false) + if libdri2.found() + subdir('x11_dri2') + endif +endif + +if libtbm.found() == true and libdrm.found() == true + xshmfence = dependency('xshmfence', required: false) + xcb = dependency('xcb', required: false) + x11_xcb = dependency('x11_xcb', required: false) + xcb_sync = dependency('xcb_sync', required: false) + xcb_dri3 = dependency('xkb_dri3', required: false) + if xshmfence.found() == true and xcb.found() == true and x11_xcb.found() and xcb_sync.found() and xkb_dri3.found() + subdir('x11_dri3') + endif +endif diff --git a/src/modules/ecore_buffer/shm/meson.build b/src/modules/ecore_buffer/shm/meson.build new file mode 100644 index 0000000000..30da825227 --- /dev/null +++ b/src/modules/ecore_buffer/shm/meson.build @@ -0,0 +1,5 @@ +ecore_buffer_shm_mod = shared_module('ecore_buffer_shm_mod', + 'ecore_buffer_shm.c', + dependencies: [ecore, ecore_buffer], + install: true +)
\ No newline at end of file diff --git a/src/modules/ecore_buffer/x11_dri2/meson.build b/src/modules/ecore_buffer/x11_dri2/meson.build new file mode 100644 index 0000000000..37ed534bd3 --- /dev/null +++ b/src/modules/ecore_buffer/x11_dri2/meson.build @@ -0,0 +1,5 @@ +ecore_buffer_x11_dri2_mod = shared_module('ecore_buffer_x11_dri2_mod', + 'ecore_buffer_x11_dri2.c', + dependencies: [ecore, ecore_buffer, ecore_x], + install: true +)
\ No newline at end of file diff --git a/src/modules/ecore_buffer/x11_dri3/meson.build b/src/modules/ecore_buffer/x11_dri3/meson.build new file mode 100644 index 0000000000..5126fff6ca --- /dev/null +++ b/src/modules/ecore_buffer/x11_dri3/meson.build @@ -0,0 +1,7 @@ +if dependency('libtbm', required: false).found() == true and dependency('libdrm', required: false).found() + ecore_buffer_x11_dri3_mod = shared_module('ecore_buffer_x11_dri3_mod', + 'ecore_buffer_x11_dri3.c', + dependencies: [ecore, ecore_buffer, ecore_x], + install: true + ) +endif
\ No newline at end of file diff --git a/src/modules/ecore_evas/engines/cocoa/meson.build b/src/modules/ecore_evas/engines/cocoa/meson.build new file mode 100644 index 0000000000..63a904e36c --- /dev/null +++ b/src/modules/ecore_evas/engines/cocoa/meson.build @@ -0,0 +1,16 @@ +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_OPENGL_COCOA', '1') +endif + +engine_src = files(['ecore_evas_cocoa.c']) +engine_deps = [ecore_cocoa, ecore_input, ecore_input_evas, ecore] + +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'gl_cocoa')) + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/drm/meson.build b/src/modules/ecore_evas/engines/drm/meson.build new file mode 100644 index 0000000000..584cc56159 --- /dev/null +++ b/src/modules/ecore_evas/engines/drm/meson.build @@ -0,0 +1,21 @@ +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1') +endif + +engine_src = files(['ecore_evas_drm.c']) +engine_deps = [ecore_drm2, ecore_input, eeze, elput, libdrm, engine_drm] + +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1') + engine_deps += [engine_gl_drm] +endif + +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'drm')) + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/extn/meson.build b/src/modules/ecore_evas/engines/extn/meson.build new file mode 100644 index 0000000000..1afabb3916 --- /dev/null +++ b/src/modules/ecore_evas/engines/extn/meson.build @@ -0,0 +1,10 @@ +engine_src = files(['ecore_evas_extn.c', 'ecore_evas_extn_buf.c', 'ecore_evas_extn_engine.h']) +engine_deps = [ecore_input, ecore_ipc] + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/fb/meson.build b/src/modules/ecore_evas/engines/fb/meson.build new file mode 100644 index 0000000000..7da2c22612 --- /dev/null +++ b/src/modules/ecore_evas/engines/fb/meson.build @@ -0,0 +1,11 @@ +engine_src = files(['ecore_evas_fb.c']) +engine_deps = [ecore_fb, ecore_input] +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'fb')) + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/sdl/meson.build b/src/modules/ecore_evas/engines/sdl/meson.build new file mode 100644 index 0000000000..25dc49ef49 --- /dev/null +++ b/src/modules/ecore_evas/engines/sdl/meson.build @@ -0,0 +1,10 @@ +engine_src = files(['ecore_evas_sdl.c']) +engine_deps = [ecore_sdl, ecore_input, ecore] + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/wayland/meson.build b/src/modules/ecore_evas/engines/wayland/meson.build new file mode 100644 index 0000000000..fbc27a396b --- /dev/null +++ b/src/modules/ecore_evas/engines/wayland/meson.build @@ -0,0 +1,26 @@ +if get_option('opengl') == 'es-egl' + config_h.set('BUILD_ECORE_EVAS_WAYLAND_EGL', '1') +endif + +config_h.set('BUILD_ECORE_EVAS_WAYLAND_SHM', '1') + +engine_src = files([ + 'ecore_evas_wayland_egl.c', + 'ecore_evas_wayland_common.c', + 'ecore_evas_wayland_shm.c', + 'ecore_evas_wayland_private.h' + ]) + +engine_deps = [ecore_wl2, ecore_input] +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'wayland_common')) + + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) + +ecore_evas_wayland_engine_include_dir = include_directories('.') diff --git a/src/modules/ecore_evas/engines/win32/meson.build b/src/modules/ecore_evas/engines/win32/meson.build new file mode 100644 index 0000000000..6a6477dd8b --- /dev/null +++ b/src/modules/ecore_evas/engines/win32/meson.build @@ -0,0 +1,9 @@ +engine_src = files(['ecore_evas_win32.c']) + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/engines/x/meson.build b/src/modules/ecore_evas/engines/x/meson.build new file mode 100644 index 0000000000..582a782115 --- /dev/null +++ b/src/modules/ecore_evas/engines/x/meson.build @@ -0,0 +1,21 @@ +config_h.set('BUILD_ECORE_EVAS_X11', '1') +config_h.set('BUILD_ECORE_EVAS_SOFTWARE_XLIB', '1') +config_h.set('BUILD_ECORE_EVAS_SOFTWARE_X11', '1') + +engine_src = files(['ecore_evas_x.c']) +engine_deps += [ecore_x, ecore_input] + +engine_deps += [engine_software_x11] + +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_OPENGL_X11', '1') + engine_deps += [engine_gl_x11] +endif + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_evas/meson.build b/src/modules/ecore_evas/meson.build new file mode 100644 index 0000000000..6ca8ca90a6 --- /dev/null +++ b/src/modules/ecore_evas/meson.build @@ -0,0 +1,40 @@ +engines = [ +['cocoa', ['cocoa']], +['drm', ['drm']], +['extn', []], +['fb', ['fb']], +['sdl', ['sdl']], +['wayland', ['wl']], +#['win32', ['ecore_win32']], +['x', ['x11']], +] + + +foreach engine_conf : engines + engine = engine_conf[0] + build = true + engine_deps = [] + + if engine_conf[1].length() > 0 + build = get_option(engine_conf[1]) + endif + + if build + engine_include_dir = [] + engine_src = [] + + config_h.set('BUILD_ECORE_EVAS_'+engine.to_upper(), '1') + + mod_full_name = engine + mod_install_dir = join_paths(dir_lib, package_name, 'engines', engine, version_name) + + subdir(join_paths('engines', engine)) + + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) + endif +endforeach + + +if get_option('vnc-server') + subdir(join_paths('vnc_server')) +endif diff --git a/src/modules/ecore_evas/vnc_server/meson.build b/src/modules/ecore_evas/vnc_server/meson.build new file mode 100644 index 0000000000..67f8f8e4a9 --- /dev/null +++ b/src/modules/ecore_evas/vnc_server/meson.build @@ -0,0 +1,34 @@ +config_h.set('BUILD_ECORE_EVAS_VNC_SERVER', '1') + +engine_src = files([ + 'ecore_evas_vnc_server.c', + 'ecore_evas_vnc_server_fb_keymap.c', + 'ecore_evas_vnc_server_fb_keymap.h' +]) + +engine_deps = [ecore, ecore_input, ecore_evas, evas] +engine_available = false + +if get_option('x11') + engine_deps += [ecore_x] + engine_available = true +endif + +if get_option('fb') + engine_deps += [ecore_fb] + engine_available = true +endif + +engine_include_dir += include_directories(join_paths('..', '..', '..', 'lib', 'ecore_fb')) + +if engine_available == false + error('at least x11 or fb needs to be build to build vnc') +endif + +shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension +) diff --git a/src/modules/ecore_imf/ibus/meson.build b/src/modules/ecore_imf/ibus/meson.build new file mode 100644 index 0000000000..dc37b3865e --- /dev/null +++ b/src/modules/ecore_imf/ibus/meson.build @@ -0,0 +1,14 @@ +mod_src = files([ + 'ibus_module.c', + 'ibus_imcontext.c', + 'ibus_imcontext.h' +]) + +mod_deps = [ecore, ecore_imf, ecore_x, dependency('ibus-1.0'), dependency('glib-2.0'), ecore_evas] + +shared_module(mod_name, + mod_src, + dependencies: mod_deps, + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/ecore_imf/meson.build b/src/modules/ecore_imf/meson.build new file mode 100644 index 0000000000..b8a495a280 --- /dev/null +++ b/src/modules/ecore_imf/meson.build @@ -0,0 +1,24 @@ +mods = [] + +if get_option('x11') + mods +=['ibus', 'xim', 'scim'] +endif + +if get_option('wl') + mods += ['wayland'] +endif + + +loader_disabler = get_option('ecore-imf-loaders-disabler') + +foreach mod_name : mods + mod_src = [] + mod_deps = [] + + if loader_disabler.contains(mod_name) == false + mod_install_dir = join_paths(dir_package_modules, mod_name, version_name) + subdir(mod_name) + module_files += join_paths(mod_install_dir, 'lib'+mod_name+'.'+sys_mod_extension) + config_h.set('BUILD_ECORE_IMF_'+mod_name.to_upper(), '1') + endif +endforeach diff --git a/src/modules/ecore_imf/scim/meson.build b/src/modules/ecore_imf/scim/meson.build new file mode 100644 index 0000000000..c1bf1d23fd --- /dev/null +++ b/src/modules/ecore_imf/scim/meson.build @@ -0,0 +1,14 @@ +mod_src = files([ + 'scim_module.cpp', + 'scim_imcontext.cpp', + 'scim_imcontext.h' +]) +mod_deps = [ecore, ecore_imf, ecore_x, dependency('scim-1.0'), dependency('glib-2.0')] + + +shared_module(mod_name, + mod_src, + dependencies: mod_deps, + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/ecore_imf/wayland/meson.build b/src/modules/ecore_imf/wayland/meson.build new file mode 100644 index 0000000000..f2c6e53dde --- /dev/null +++ b/src/modules/ecore_imf/wayland/meson.build @@ -0,0 +1,13 @@ +mod_src = files([ + 'wayland_module.c', + 'wayland_imcontext.c', + 'wayland_imcontext.h' +]) +mod_deps = [ecore, ecore_imf, ecore_wl2, wayland_protocol, ecore_evas, ecore_input] + +shared_module(mod_name, + mod_src, + dependencies: mod_deps, + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/ecore_imf/xim/meson.build b/src/modules/ecore_imf/xim/meson.build new file mode 100644 index 0000000000..5db9e187c5 --- /dev/null +++ b/src/modules/ecore_imf/xim/meson.build @@ -0,0 +1,12 @@ +mod_src = files([ + 'ecore_imf_xim.c', +]) + +mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_evas] + +shared_module(mod_name, + mod_src, + dependencies: mod_deps, + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/ecore_wl2/engines/dmabuf/meson.build b/src/modules/ecore_wl2/engines/dmabuf/meson.build new file mode 100644 index 0000000000..c6b976daca --- /dev/null +++ b/src/modules/ecore_wl2/engines/dmabuf/meson.build @@ -0,0 +1,6 @@ +shared_module('dmabuf', + 'ecore_wl2_surface_module_dmabuf.c', + dependencies: [ecore_wl2, wayland_protocol], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/ecore_wl2/meson.build b/src/modules/ecore_wl2/meson.build new file mode 100644 index 0000000000..986391ab96 --- /dev/null +++ b/src/modules/ecore_wl2/meson.build @@ -0,0 +1,9 @@ +ecore_wl2_engines = [ + 'dmabuf' +] + +foreach engine : ecore_wl2_engines + mod_install_dir = join_paths(dir_lib, 'ecore_wl2', 'engines', engine, version_name) + subdir(join_paths('engines', engine)) + module_files += join_paths(mod_install_dir, 'lib'+engine+'.'+sys_mod_extension) +endforeach diff --git a/src/modules/eeze/meson.build b/src/modules/eeze/meson.build new file mode 100644 index 0000000000..e25ab50999 --- /dev/null +++ b/src/modules/eeze/meson.build @@ -0,0 +1,10 @@ +sensors = [ +['fake', [ecore]], +#['tizen', []], +['udev', [ecore]], +] + +foreach sensor_conf : sensors + module_name = sensor_conf[0] + subdir(join_paths('sensor', module_name)) +endforeach diff --git a/src/modules/eeze/sensor/fake/meson.build b/src/modules/eeze/sensor/fake/meson.build new file mode 100644 index 0000000000..c87f2cb68d --- /dev/null +++ b/src/modules/eeze/sensor/fake/meson.build @@ -0,0 +1,8 @@ +shared_module(module_name, + module_name+'.c', + dependencies: [eina, eeze, ecore], + install: true, + install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name), +) + +module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension) diff --git a/src/modules/eeze/sensor/tizen/meson.build b/src/modules/eeze/sensor/tizen/meson.build new file mode 100644 index 0000000000..c87f2cb68d --- /dev/null +++ b/src/modules/eeze/sensor/tizen/meson.build @@ -0,0 +1,8 @@ +shared_module(module_name, + module_name+'.c', + dependencies: [eina, eeze, ecore], + install: true, + install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name), +) + +module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension) diff --git a/src/modules/eeze/sensor/udev/meson.build b/src/modules/eeze/sensor/udev/meson.build new file mode 100644 index 0000000000..c87f2cb68d --- /dev/null +++ b/src/modules/eeze/sensor/udev/meson.build @@ -0,0 +1,8 @@ +shared_module(module_name, + module_name+'.c', + dependencies: [eina, eeze, ecore], + install: true, + install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name), +) + +module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension) diff --git a/src/modules/eina/meson.build b/src/modules/eina/meson.build new file mode 100644 index 0000000000..17396a198c --- /dev/null +++ b/src/modules/eina/meson.build @@ -0,0 +1,9 @@ +eina_mp_sources = [] + +subdir(join_paths('mp', 'chained_pool')) +subdir(join_paths('mp', 'one_big')) +subdir(join_paths('mp', 'pass_through')) + +eina_mem_pools = declare_dependency( + sources: eina_mp_sources +) diff --git a/src/modules/eina/mp/chained_pool/meson.build b/src/modules/eina/mp/chained_pool/meson.build new file mode 100644 index 0000000000..d4b222c6f2 --- /dev/null +++ b/src/modules/eina/mp/chained_pool/meson.build @@ -0,0 +1,3 @@ +config_h.set10('EINA_BUILD_CHAINED_POOL', true) +config_h.set10('EINA_STATIC_BUILD_CHAINED_POOL', true) +eina_mp_sources += files('eina_chained_mempool.c') diff --git a/src/modules/eina/mp/one_big/meson.build b/src/modules/eina/mp/one_big/meson.build new file mode 100644 index 0000000000..fabe80352c --- /dev/null +++ b/src/modules/eina/mp/one_big/meson.build @@ -0,0 +1,3 @@ +config_h.set10('EINA_BUILD_ONE_BIG', true) +config_h.set10('EINA_STATIC_BUILD_ONE_BIG', true) +eina_mp_sources += files('eina_one_big.c') diff --git a/src/modules/eina/mp/pass_through/meson.build b/src/modules/eina/mp/pass_through/meson.build new file mode 100644 index 0000000000..a60ab6204b --- /dev/null +++ b/src/modules/eina/mp/pass_through/meson.build @@ -0,0 +1,3 @@ +config_h.set10('EINA_BUILD_PASS_THROUGH', true) +config_h.set10('EINA_STATIC_BUILD_PASS_THROUGH', true) +eina_mp_sources += files('eina_pass_through.c') diff --git a/src/modules/elementary/access_output/meson.build b/src/modules/elementary/access_output/meson.build new file mode 100644 index 0000000000..178ab16618 --- /dev/null +++ b/src/modules/elementary/access_output/meson.build @@ -0,0 +1,10 @@ +src = files([ + 'mod.c', +]) + +shared_module(mod, + src, + dependencies: [elementary], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/elementary/clock_input_ctxpopup/meson.build b/src/modules/elementary/clock_input_ctxpopup/meson.build new file mode 100644 index 0000000000..04435773fe --- /dev/null +++ b/src/modules/elementary/clock_input_ctxpopup/meson.build @@ -0,0 +1,10 @@ +src = files([ + 'clock_input_ctxpopup.c', +]) + +shared_module(mod, + src, + dependencies: [elementary], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/elementary/meson.build b/src/modules/elementary/meson.build new file mode 100644 index 0000000000..ed77fe240e --- /dev/null +++ b/src/modules/elementary/meson.build @@ -0,0 +1,14 @@ +mods = [ + 'access_output', + 'clock_input_ctxpopup', + 'prefs', + 'test_entry', + 'test_map', + join_paths('web', 'none') +] + +foreach mod : mods + mod_install_dir = join_paths(dir_lib, 'elementary', 'modules', mod, version_name) + subdir(mod) + module_files += join_paths(mod_install_dir, 'lib'+mod+'.'+sys_mod_extension) +endforeach diff --git a/src/modules/elementary/prefs/meson.build b/src/modules/elementary/prefs/meson.build new file mode 100644 index 0000000000..9ec2c9a475 --- /dev/null +++ b/src/modules/elementary/prefs/meson.build @@ -0,0 +1,24 @@ +src = files([ + 'private.h', + 'prefs_iface.c', + 'elm_button.c', + 'elm_check.c', + 'elm_datetime.c', + 'elm_entry.c', + 'elm_label.c', + 'elm_separator.c', + 'elm_slider.c', + 'elm_spinner.c', + 'elm_swallow.c', + 'elm_vertical_box.c', + 'elm_horizontal_box.c', + 'elm_vertical_frame.c', + 'elm_horizontal_frame.c' +]) + +shared_module(mod, + src, + dependencies: [elementary], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/elementary/test_entry/meson.build b/src/modules/elementary/test_entry/meson.build new file mode 100644 index 0000000000..178ab16618 --- /dev/null +++ b/src/modules/elementary/test_entry/meson.build @@ -0,0 +1,10 @@ +src = files([ + 'mod.c', +]) + +shared_module(mod, + src, + dependencies: [elementary], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/elementary/test_map/meson.build b/src/modules/elementary/test_map/meson.build new file mode 100644 index 0000000000..178ab16618 --- /dev/null +++ b/src/modules/elementary/test_map/meson.build @@ -0,0 +1,10 @@ +src = files([ + 'mod.c', +]) + +shared_module(mod, + src, + dependencies: [elementary], + install: true, + install_dir : mod_install_dir +) diff --git a/src/modules/elementary/web/meson.build b/src/modules/elementary/web/meson.build new file mode 100644 index 0000000000..13c563c96a --- /dev/null +++ b/src/modules/elementary/web/meson.build @@ -0,0 +1 @@ +subdir('none') diff --git a/src/modules/elementary/web/none/meson.build b/src/modules/elementary/web/none/meson.build new file mode 100644 index 0000000000..ddbd9c2f2e --- /dev/null +++ b/src/modules/elementary/web/none/meson.build @@ -0,0 +1,30 @@ +pub_eo_files = [ + 'elm_web_none.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 + + +src = files([ + 'elm_web_none.c' +]) + pub_eo_file_target + +shared_module('none', + src, + dependencies: [elementary, elementary_deps], + install: true, + install_dir : mod_install_dir +) + +mod = 'none' diff --git a/src/modules/emotion/generic/meson.build b/src/modules/emotion/generic/meson.build new file mode 100644 index 0000000000..d0da87861b --- /dev/null +++ b/src/modules/emotion/generic/meson.build @@ -0,0 +1,22 @@ +generic_src = files([ + 'emotion_generic.c', + 'emotion_generic.h', +]) + +emotion_generic = declare_dependency( + include_directories: include_directories('.'), + dependencies: emotion, +) + +shared_module(emotion_loader, + generic_src, + include_directories : config_dir, + dependencies: [eina, evas, emotion, generic_deps], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) + +install_headers('Emotion_Generic_Plugin.h', + install_dir : dir_package_include, +) diff --git a/src/modules/emotion/gstreamer/meson.build b/src/modules/emotion/gstreamer/meson.build new file mode 100644 index 0000000000..dccc9302bd --- /dev/null +++ b/src/modules/emotion/gstreamer/meson.build @@ -0,0 +1,18 @@ +generic_src = files([ + 'emotion_gstreamer.h', + 'emotion_gstreamer.c', + 'emotion_alloc.c', + 'emotion_convert.c', + 'emotion_sink.c' +]) + +generic_deps = [dependency('gstreamer-0.1')] + +shared_module(emotion_loader, + generic_src, + include_directories : config_dir, + dependencies: [eina, evas, emotion, generic_deps], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) diff --git a/src/modules/emotion/gstreamer1/meson.build b/src/modules/emotion/gstreamer1/meson.build new file mode 100644 index 0000000000..aae7f5f8ea --- /dev/null +++ b/src/modules/emotion/gstreamer1/meson.build @@ -0,0 +1,25 @@ +generic_src = files([ + 'emotion_gstreamer.h', + 'emotion_gstreamer.c', + 'emotion_alloc.c', + 'emotion_convert.c', + 'emotion_sink.c' +]) + +generic_deps = [ + dependency('gstreamer-1.0'), + dependency('gstreamer-plugins-base-1.0'), + dependency('gstreamer-video-1.0'), + dependency('gstreamer-audio-1.0'), + dependency('gstreamer-tag-1.0'), + dependency('gstreamer-pbutils-1.0'), + ] + +shared_module(emotion_loader, + generic_src, + include_directories : config_dir, + dependencies: [eina, evas, emotion, generic_deps], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) diff --git a/src/modules/emotion/libvlc/meson.build b/src/modules/emotion/libvlc/meson.build new file mode 100644 index 0000000000..e5646a414d --- /dev/null +++ b/src/modules/emotion/libvlc/meson.build @@ -0,0 +1,14 @@ +generic_src = files([ + 'emotion_libvlc.c', +]) + +generic_deps = [dependency('libvlc', version: '>= 3.0')] + +shared_module(emotion_loader, + generic_src, + include_directories : config_dir, + dependencies: [eina, evas, emotion, generic_deps], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) diff --git a/src/modules/emotion/meson.build b/src/modules/emotion/meson.build new file mode 100644 index 0000000000..f16eaec262 --- /dev/null +++ b/src/modules/emotion/meson.build @@ -0,0 +1,19 @@ +emotion_loaders = [ +'generic', +'gstreamer', +'gstreamer1', +'libvlc', +'xine' +] + +foreach emotion_loader : emotion_loaders + generic_src = [] + generic_deps = [] + mod_install_dir = join_paths(dir_lib, 'emotion', 'modules', emotion_loader, version_name) + + if get_option('emotion-loaders-disabler').contains(emotion_loader) == false + subdir(emotion_loader) + module_files += join_paths(mod_install_dir, 'lib'+emotion_loader+'.'+sys_mod_extension) + config_h.set('EMOTION_BUILD_'+emotion_loader.to_upper(), 1) + endif +endforeach diff --git a/src/modules/emotion/xine/meson.build b/src/modules/emotion/xine/meson.build new file mode 100644 index 0000000000..038d6d2eb1 --- /dev/null +++ b/src/modules/emotion/xine/meson.build @@ -0,0 +1,16 @@ +generic_src = files([ + 'emotion_xine.h', + 'emotion_xine.c', + 'emotion_xine_vo_out.c', +]) + +generic_deps = dependency('libxine') + +shared_module(emotion_loader, + generic_src, + include_directories : config_dir, + dependencies: [eina, evas, emotion, generic_deps], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) diff --git a/src/modules/ethumb/emotion/meson.build b/src/modules/ethumb/emotion/meson.build new file mode 100644 index 0000000000..52f4b442a6 --- /dev/null +++ b/src/modules/ethumb/emotion/meson.build @@ -0,0 +1,32 @@ +themes = [] + +edc_files = [ + 'template.edc' +] + +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 + +generic_src = [files(['emotion.c']) + themes] + +shared_module(emotion_loader+'_el', + generic_src, + include_directories : config_dir, + dependencies: [ethumb, edje, eina, eo, eet, ecore_file, ecore, evas, ecore_evas, emotion], + install: true, + install_dir : mod_install_dir, + c_args : package_c_args, +) diff --git a/src/modules/ethumb/meson.build b/src/modules/ethumb/meson.build new file mode 100644 index 0000000000..015a182ee6 --- /dev/null +++ b/src/modules/ethumb/meson.build @@ -0,0 +1,13 @@ +emotion_loaders = [ +'emotion' +] + +foreach emotion_loader : emotion_loaders + generic_src = [] + generic_deps = [] + mod_install_dir = join_paths(dir_lib, 'ethumb', 'modules', emotion_loader, version_name) + + subdir(emotion_loader) + + module_files += join_paths(mod_install_dir, 'lib'+emotion_loader+'_el.'+sys_mod_extension) +endforeach diff --git a/src/modules/evas/engines/buffer/meson.build b/src/modules/evas/engines/buffer/meson.build new file mode 100644 index 0000000000..e5a2510db9 --- /dev/null +++ b/src/modules/evas/engines/buffer/meson.build @@ -0,0 +1,25 @@ +engine_src = files([ + 'Evas_Engine_Buffer.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c' +]) + +engine_deps = [] + +evas_include_directories += include_directories('.') + +install_headers('Evas_Engine_Buffer.h', + install_dir : dir_package_include, +) + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/drm/meson.build b/src/modules/evas/engines/drm/meson.build new file mode 100644 index 0000000000..6445a560f2 --- /dev/null +++ b/src/modules/evas/engines/drm/meson.build @@ -0,0 +1,19 @@ +engine_src = files([ + 'Evas_Engine_Drm.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c' +]) + +engine_deps = [ecore_drm2, libdrm] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/fb/meson.build b/src/modules/evas/engines/fb/meson.build new file mode 100644 index 0000000000..2900f4afc6 --- /dev/null +++ b/src/modules/evas/engines/fb/meson.build @@ -0,0 +1,21 @@ +engine_src = files([ + 'Evas_Engine_FB.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c', + 'evas_fb.h', + 'evas_fb_main.c', +]) + +engine_deps = [ecore_fb] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/gl_cocoa/meson.build b/src/modules/evas/engines/gl_cocoa/meson.build new file mode 100644 index 0000000000..9900862904 --- /dev/null +++ b/src/modules/evas/engines/gl_cocoa/meson.build @@ -0,0 +1,19 @@ +engine_src = files([ + 'Evas_Engine_GL_Cocoa.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.m', +]) + +engine_deps = [ecore_cocoa, gl_deps] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/gl_common/meson.build b/src/modules/evas/engines/gl_common/meson.build new file mode 100644 index 0000000000..0242012759 --- /dev/null +++ b/src/modules/evas/engines/gl_common/meson.build @@ -0,0 +1,45 @@ +engine_src = files([ + 'evas_gl_private.h', + 'evas_gl_common.h', + 'evas_gl_define.h', + 'evas_gl_context.c', + 'evas_gl_file_cache.c', + 'evas_gl_shader.c', + 'evas_gl_rectangle.c', + 'evas_gl_texture.c', + 'evas_gl_preload.c', + 'evas_gl_image.c', + 'evas_gl_font.c', + 'evas_gl_polygon.c', + 'evas_gl_line.c', + 'evas_gl_core.c', + 'evas_gl_api_ext.h', + 'evas_gl_api_ext_def.h', + 'evas_gl_core.h', + 'evas_gl_core_private.h', + 'evas_gl_api.c', + 'evas_gl_api_def.h', + 'evas_gl_api_gles1.c', + 'evas_gl_api_gles3_def.h', + 'evas_gl_api_ext.c', + 'evas_gl_3d_common.h', + 'evas_gl_3d_private.h', + 'evas_gl_3d.c', + 'evas_gl_3d_renderer.c', + 'evas_gl_3d_shader.c', + #join_paths('shader_3d', 'evas_gl_3d_shaders.x'), + #join_paths('shader','evas_gl_shaders.x'), +]) + +engine_deps = [gl_deps] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/gl_drm/meson.build b/src/modules/evas/engines/gl_drm/meson.build new file mode 100644 index 0000000000..0821638149 --- /dev/null +++ b/src/modules/evas/engines/gl_drm/meson.build @@ -0,0 +1,19 @@ +engine_src = files([ + 'Evas_Engine_GL_Drm.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c', +]) + +engine_deps = [ecore_drm2, libdrm, gl_deps] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/gl_generic/meson.build b/src/modules/evas/engines/gl_generic/meson.build new file mode 100644 index 0000000000..bfa7e82a6d --- /dev/null +++ b/src/modules/evas/engines/gl_generic/meson.build @@ -0,0 +1,44 @@ +engine_src = files([ + 'evas_engine.c', + 'Evas_Engine_GL_Generic.h', + 'Evas_Engine_GL_Shared.h', + 'evas_ector_gl.h', + 'evas_ector_gl_buffer.c', + 'evas_ector_gl_image_buffer.c', + join_paths('filters','gl_engine_filter.h'), + join_paths('filters','gl_filter_blend.c'), + join_paths('filters','gl_filter_blur.c'), + join_paths('filters','gl_filter_curve.c'), + join_paths('filters','gl_filter_displace.c'), + join_paths('filters','gl_filter_fill.c'), + join_paths('filters','gl_filter_mask.c'), +]) + + +pub_eo_files = [ + 'evas_ector_gl_buffer.eo', + 'evas_ector_gl_image_buffer.eo' +] + +foreach eo_file : pub_eo_files + engine_src += 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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +engine_deps = [gl_common] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/gl_x11/meson.build b/src/modules/evas/engines/gl_x11/meson.build new file mode 100644 index 0000000000..910c72a917 --- /dev/null +++ b/src/modules/evas/engines/gl_x11/meson.build @@ -0,0 +1,19 @@ +engine_src = files([ + 'Evas_Engine_GL_X11.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_x_main.c', +]) + +engine_deps = [ecore_x_deps, gl_deps] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/software_ddraw/meson.build b/src/modules/evas/engines/software_ddraw/meson.build new file mode 100644 index 0000000000..9d3724f5b1 --- /dev/null +++ b/src/modules/evas/engines/software_ddraw/meson.build @@ -0,0 +1,21 @@ +engine_src = files([ + 'Evas_Engine_Software_DDraw.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c', + 'evas_ddraw_buffer.c', + 'evas_ddraw_main.c', +]) + +engine_deps = [] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/software_gdi/meson.build b/src/modules/evas/engines/software_gdi/meson.build new file mode 100644 index 0000000000..9347ecd4d8 --- /dev/null +++ b/src/modules/evas/engines/software_gdi/meson.build @@ -0,0 +1,21 @@ +engine_src = files([ + 'Evas_Engine_Software_Gdi.h', + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c', + 'evas_gdi_buffer.c', + 'evas_gdi_main.c', +]) + +engine_deps = [] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/software_generic/filters/meson.build b/src/modules/evas/engines/software_generic/filters/meson.build new file mode 100644 index 0000000000..6ccd5f59a1 --- /dev/null +++ b/src/modules/evas/engines/software_generic/filters/meson.build @@ -0,0 +1,13 @@ +engine_include_dir += include_directories('.') + +engine_src += files([ + 'evas_engine_filter.h', + 'evas_filter_blend.c', + 'evas_filter_blur.c', + 'evas_filter_bump.c', + 'evas_filter_curve.c', + 'evas_filter_displace.c', + 'evas_filter_fill.c', + 'evas_filter_mask.c', + 'evas_filter_transform.c', +])
\ No newline at end of file diff --git a/src/modules/evas/engines/software_generic/meson.build b/src/modules/evas/engines/software_generic/meson.build new file mode 100644 index 0000000000..7571ca3bc1 --- /dev/null +++ b/src/modules/evas/engines/software_generic/meson.build @@ -0,0 +1,40 @@ +engine_src = files([ + 'evas_engine.c', + 'Evas_Engine_Software_Generic.h', + 'Evas_Engine_Software_Shared.h', + 'evas_native_tbm.c', + 'evas_native_dmabuf.c', + 'evas_ector_software_buffer.c', + 'evas_native_common.h', + 'evas_ector_software.h', +]) + + +pub_eo_files = [ + 'evas_ector_software_buffer.eo' +] + +subdir('filters') + +foreach eo_file : pub_eo_files + engine_src += 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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +engine_deps = [draw, dl] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/software_x11/meson.build b/src/modules/evas/engines/software_x11/meson.build new file mode 100644 index 0000000000..950c93ed04 --- /dev/null +++ b/src/modules/evas/engines/software_x11/meson.build @@ -0,0 +1,40 @@ +engine_src = files([ + 'evas_engine.c', + 'evas_engine.h', + 'evas_x_egl.c', + 'evas_x_egl.h', + 'Evas_Engine_Software_X11.h', + 'evas_xlib_swapbuf.c', + 'evas_xlib_outbuf.c', + 'evas_xlib_buffer.c', + 'evas_xlib_color.c', + 'evas_xlib_main.c', + 'evas_xlib_swapper.c', + 'evas_xlib_image.c', + 'evas_xlib_dri_image.c', + 'evas_xlib_outbuf.h', + 'evas_xlib_swapbuf.h', + 'evas_xlib_buffer.h', + 'evas_xlib_color.h', + 'evas_xlib_swapper.h', + 'evas_xlib_image.h', + 'evas_xlib_dri_image.h' +]) + +#xcb is DEAD ... we only use xlib +config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1') + +#ecore_x_deps carries all the extensions etc. so we dont have to search them twice +#it looks weird but is right, gl_deps is needed for evas_x_egl.c +engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps] + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/wayland_egl/meson.build b/src/modules/evas/engines/wayland_egl/meson.build new file mode 100644 index 0000000000..7dc76cac37 --- /dev/null +++ b/src/modules/evas/engines/wayland_egl/meson.build @@ -0,0 +1,21 @@ +engine_src = files([ + 'evas_engine.c', + 'evas_engine.h', + 'evas_wl_main.c' +]) + +engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps] + +engine_include_dir = include_directories(join_paths('..','wayland_common')) + + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/engines/wayland_shm/meson.build b/src/modules/evas/engines/wayland_shm/meson.build new file mode 100644 index 0000000000..5c1fe875a4 --- /dev/null +++ b/src/modules/evas/engines/wayland_shm/meson.build @@ -0,0 +1,20 @@ +engine_src = files([ + 'evas_engine.c', + 'evas_engine.h', + 'evas_outbuf.c' +]) + +engine_deps = [ecore_wl2] + +engine_include_dir = include_directories(join_paths('..','wayland_common')) + +if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine) + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension) +endif diff --git a/src/modules/evas/image_loaders/meson.build b/src/modules/evas/image_loaders/meson.build new file mode 100644 index 0000000000..df0d8968ac --- /dev/null +++ b/src/modules/evas/image_loaders/meson.build @@ -0,0 +1,42 @@ +evas_image_loaders_file = [ + ['bmp', []], + ['eet', [eet]], + ['generic', [rt]], + ['gif', [giflib]], + ['ico', []], + ['jpeg', [jpeg]], + ['pmaps', []], + ['png', [png]], + ['psd', []], + ['tga', []], + ['tgv', [rg_etc, lz4]], + ['tiff', [tiff]], + ['wbmp', []], + ['webp', [webp]], + ['xpm', []], +] + +foreach loader_inst : evas_image_loaders_file + loader = loader_inst[0] + loader_deps = loader_inst[1] + + + if get_option('evas-loaders-disabler').contains(loader) == false + file = join_paths(loader, 'evas_image_load_'+loader+'.c') + + tmp = static_library('image_loader_'+loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps + ) + + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + else + message('Image loader '+loader+' disabled') + endif +endforeach
\ No newline at end of file diff --git a/src/modules/evas/image_savers/meson.build b/src/modules/evas/image_savers/meson.build new file mode 100644 index 0000000000..81bdbd9f55 --- /dev/null +++ b/src/modules/evas/image_savers/meson.build @@ -0,0 +1,32 @@ + +evas_image_savers_file = [ +['eet', [eet]], +['jpeg', [jpeg]], +['png', [png]], +['tgv', [rg_etc, lz4]], +['tiff', [tiff]], +['webp', []] +] + +foreach loader_inst : evas_image_savers_file + loader = loader_inst[0] + loader_deps = loader_inst[1] + + if get_option('evas-loaders-disabler').contains(loader) == false + file = join_paths(loader, 'evas_image_save_'+loader+'.c') + + tmp = static_library('image_saver_'+loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps + ) + + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + else + message('Image saver '+loader+' disabled') + endif +endforeach diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build new file mode 100644 index 0000000000..e97ff1b2a0 --- /dev/null +++ b/src/modules/evas/meson.build @@ -0,0 +1,97 @@ +engines = [ + ['buffer', []], + ['software_generic', []], + ['fb', ['fb']], + ['drm', ['drm']], + ['software_x11', ['x11']], + ['wayland_shm', ['wl']], +] + +if get_option('opengl') != 'none' + engines += [ + ['gl_common', []], + ['gl_generic', []], + ['gl_x11', ['x11']], + ['gl_drm', ['drm']], + ['gl_cocoa', ['cocoa']], + ] +endif + +if get_option('opengl') == 'es-egl' + engines += [['wayland_egl', ['wl']]] +endif + +#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later +evas_force_static = ['software_generic', 'gl_common'] +evas_static_list = [] + +#fixed dependencies by efl +png = dependency('libpng') +tiff = dependency('libtiff-4') +giflib = cc.find_library('gif') + +webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false) + +subdir('image_loaders') +subdir('image_savers') +subdir('model_savers') +subdir('model_loaders') +subdir('vg_savers') +subdir('vg_loaders') + +foreach engine_conf : engines + engine = engine_conf[0] + build = true + if engine_conf[1].length() > 0 + build = get_option(engine_conf[1][0]) + endif + if build + engine_include_dir = [] + engine_src = [] + engine_deps = [] + engine_dep = declare_dependency( + include_directories: include_directories(join_paths('engines', engine)), + ) + + var_name = 'engine_'+engine + set_variable(var_name, engine_dep) + + mod_full_name = engine + mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name) + + subdir(join_paths('engines', engine)) + + if get_option('evas-modules') == 'static' or evas_force_static.contains(engine) + tmp = static_library(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + ) + + if engine == 'gl_common' + #gl_common will only be used by gl_generic, NOT by libevas.so, so we work arround the static list + gl_common = declare_dependency( + include_directories : include_directories(join_paths('engines', 'gl_common')), + link_with: tmp, + ) + else + evas_static_list += declare_dependency( + include_directories: [include_directories('.')] + config_dir + [engine_include_dir], + link_with: tmp, + dependencies : [eina, evas_pre] + engine_deps, + sources : engine_src + ) + if engine == 'gl_generic' + #special case, see evas_module.c + config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1') + else + config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1') + endif + endif + else + #nothing here shared building is handled directly on the engine configuration side + #reason for this is that the .so files have to be placed in the correct directory in order + # to make them discoverable by evas module code + endif + config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1') + endif +endforeach diff --git a/src/modules/evas/model_loaders/meson.build b/src/modules/evas/model_loaders/meson.build new file mode 100644 index 0000000000..7aae3611cc --- /dev/null +++ b/src/modules/evas/model_loaders/meson.build @@ -0,0 +1,16 @@ +evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply'] + +foreach loader : evas_model_loaders_file + file = join_paths(loader, 'evas_model_load_'+loader+'.c') + + tmp = static_library('model_loader_'+loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + ) + + evas_static_list += [declare_dependency( + include_directories: include_directories('.'), + sources: file, + dependencies: evas_pre, + )] +endforeach diff --git a/src/modules/evas/model_savers/meson.build b/src/modules/evas/model_savers/meson.build new file mode 100644 index 0000000000..bb0dca2e3a --- /dev/null +++ b/src/modules/evas/model_savers/meson.build @@ -0,0 +1,16 @@ +evas_model_savers_file = ['eet', 'obj', 'ply'] + +foreach loader : evas_model_savers_file + file = join_paths(loader, 'evas_model_save_'+loader+'.c') + + tmp = static_library('model_saver_'+loader, file, + include_directories : config_dir, + dependencies : evas_pre + ) + + evas_static_list += [declare_dependency( + include_directories: include_directories('.'), + sources: file, + dependencies: evas_pre, + )] +endforeach diff --git a/src/modules/evas/vg_loaders/meson.build b/src/modules/evas/vg_loaders/meson.build new file mode 100644 index 0000000000..584501a825 --- /dev/null +++ b/src/modules/evas/vg_loaders/meson.build @@ -0,0 +1,13 @@ +evas_vg_loaders_file = ['eet', 'svg'] + +foreach loader : evas_vg_loaders_file + file = join_paths(loader, 'evas_vg_load_'+loader+'.c') + static_library('vg_loader_'+loader, file, + include_directories : config_dir, + dependencies : evas_pre + ) + evas_static_list += [declare_dependency( + sources: file, + )] + config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1') +endforeach diff --git a/src/modules/evas/vg_savers/meson.build b/src/modules/evas/vg_savers/meson.build new file mode 100644 index 0000000000..414a695c27 --- /dev/null +++ b/src/modules/evas/vg_savers/meson.build @@ -0,0 +1,14 @@ +evas_vg_savers_file = ['eet', 'svg'] + +foreach loader : evas_vg_savers_file + file = join_paths(loader, 'evas_vg_save_'+loader+'.c') + tmp = static_library('vg_saver_'+loader, file, + include_directories : config_dir, + dependencies: [eo, ector, emile, freetype, eet, evas_pre], + ) + evas_static_list += [declare_dependency( + sources: file, + dependencies: [eo, ector, emile, freetype, eet, evas_pre], + )] + config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1') +endforeach
\ No newline at end of file diff --git a/src/scripts/elua/meson.build b/src/scripts/elua/meson.build new file mode 100644 index 0000000000..41d413a138 --- /dev/null +++ b/src/scripts/elua/meson.build @@ -0,0 +1,11 @@ +install_subdir('modules', + install_dir : join_paths(dir_data, 'elua') +) + +install_subdir('core', + install_dir : join_paths(dir_data, 'elua') +) + +install_subdir('apps', + install_dir : join_paths(dir_data, 'elua') +) diff --git a/src/scripts/eo/meson.build b/src/scripts/eo/meson.build new file mode 100644 index 0000000000..bdb2803541 --- /dev/null +++ b/src/scripts/eo/meson.build @@ -0,0 +1,11 @@ +eo_debug_config = configuration_data() + +eo_debug_config.set('prefix', dir_prefix) +eo_debug_config.set('exec_prefix', '${prefix}') +eo_debug_config.set('libdir', dir_lib) + +configure_file( + input: 'eo_debug.in', + output: 'eo_debug', + configuration: eo_debug_config, + install_dir: dir_bin) diff --git a/src/scripts/meson.build b/src/scripts/meson.build new file mode 100644 index 0000000000..6057ad788a --- /dev/null +++ b/src/scripts/meson.build @@ -0,0 +1,2 @@ +subdir('eo') +subdir('elua') diff --git a/src/static_libs/atspi/meson.build b/src/static_libs/atspi/meson.build new file mode 100644 index 0000000000..5024cc5c97 --- /dev/null +++ b/src/static_libs/atspi/meson.build @@ -0,0 +1,3 @@ +atspi = declare_dependency( + include_directories: include_directories('..'), +)
\ No newline at end of file diff --git a/src/static_libs/buildsystem/buildsystem_meson.c b/src/static_libs/buildsystem/buildsystem_meson.c new file mode 100644 index 0000000000..fd741e0d15 --- /dev/null +++ b/src/static_libs/buildsystem/buildsystem_meson.c @@ -0,0 +1,49 @@ +#include "config.h" + +#include <stdio.h> +#include <Eina.h> + +Eina_Bool +bs_mod_get(char *path, size_t maxlen, const char *subsystem, const char *mod_name) +{ + if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE; + + // there is a name conflict between a ethumb module and the emotion library, + // this causes the module to link to itself, instead of the library + if (!strcmp(subsystem, "ethumb")) + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s_el"MOD_SUFFIX, subsystem, mod_name, mod_name); + else + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s"MOD_SUFFIX, subsystem, mod_name, mod_name); + + return EINA_TRUE; +} + +Eina_Bool +bs_mod_dir_get(char *path, size_t maxlen, const char *subsystem, const char *mod_name) +{ + if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE; + + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/", subsystem, mod_name); + + return EINA_TRUE; +} + +Eina_Bool +bs_binary_get(char *path, size_t maxlen, const char *subsystem, const char *bin_name) +{ + if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE; + + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/bin/%s/%s"EXE_SUFFIX, subsystem, bin_name); + + return EINA_TRUE; +} + +Eina_Bool +bs_data_path_get(char *path, size_t maxlen, const char *subsystem, const char *file) +{ + if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE; + + snprintf(path, maxlen, PACKAGE_SRC_DIR"/data/%s/%s", subsystem, file); + + return EINA_TRUE; +} diff --git a/src/static_libs/buildsystem/meson.build b/src/static_libs/buildsystem/meson.build new file mode 100644 index 0000000000..61e7f1e37e --- /dev/null +++ b/src/static_libs/buildsystem/meson.build @@ -0,0 +1,20 @@ + +buildsystem_src = [ + 'buildsystem.h', + 'buildsystem_meson.c', +] + + +buildsystem_lib = static_library('buildsystem', + buildsystem_src, + dependencies : [eina, efl], + include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))], + install: false, + c_args : ['-DPACKAGE_SRC_DIR="'+ meson.source_root() +'"'], +) + +buildsystem = declare_dependency( + include_directories: [include_directories('.'), include_directories(join_paths('..', '..', 'lib'))], + link_with: buildsystem_lib, + dependencies: [eina], +) diff --git a/src/static_libs/draw/meson.build b/src/static_libs/draw/meson.build new file mode 100644 index 0000000000..1fcc6b1ba8 --- /dev/null +++ b/src/static_libs/draw/meson.build @@ -0,0 +1,23 @@ + +draw_src = [ + 'draw_main_sse2.c', + 'draw_main.c', + 'draw_main_neon.c', + 'draw_main.c', + 'draw_convert.c', + 'draw_alpha_main.c' +] + + +draw_lib = static_library('draw', + draw_src, + dependencies : [eina, efl], + include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))], + install: false, +) + +draw = declare_dependency( + include_directories: [include_directories('.'), include_directories(join_paths('..', '..', 'lib'))], + link_with: draw_lib, + dependencies: [eina], +) diff --git a/src/static_libs/freetype/meson.build b/src/static_libs/freetype/meson.build new file mode 100644 index 0000000000..bfa685b78e --- /dev/null +++ b/src/static_libs/freetype/meson.build @@ -0,0 +1,23 @@ + +freetype_src = [ + 'sw_ft_math.c', + 'sw_ft_math.h', + 'sw_ft_raster.c', + 'sw_ft_raster.h', + 'sw_ft_stroker.c', + 'sw_ft_stroker.h', + 'sw_ft_types.h', +] + + +freetype_lib = static_library('freetype', + freetype_src, + include_directories : config_dir, + install: false, +) + +freetype = declare_dependency( + include_directories: [include_directories('.')], + link_with: freetype_lib, + dependencies: [eina], +) diff --git a/src/static_libs/http-parser/meson.build b/src/static_libs/http-parser/meson.build new file mode 100644 index 0000000000..7e1308400e --- /dev/null +++ b/src/static_libs/http-parser/meson.build @@ -0,0 +1,11 @@ +http_parser_lib = [ + 'http_parser.c', + 'http_parser.h', +] + +http_parser_lib = static_library('http-parser', http_parser_lib) + +http_parser = declare_dependency( + include_directories: include_directories('.') , + link_with: http_parser_lib, +)
\ No newline at end of file diff --git a/src/static_libs/libdrm/meson.build b/src/static_libs/libdrm/meson.build new file mode 100644 index 0000000000..ec0278b243 --- /dev/null +++ b/src/static_libs/libdrm/meson.build @@ -0,0 +1,3 @@ +libdrm = declare_dependency( + include_directories: include_directories('.') +)
\ No newline at end of file diff --git a/src/static_libs/libunibreak/meson.build b/src/static_libs/libunibreak/meson.build new file mode 100644 index 0000000000..77bb2f93ac --- /dev/null +++ b/src/static_libs/libunibreak/meson.build @@ -0,0 +1,32 @@ + +libunibreak_src = [ + 'unibreakbase.h', + 'unibreakdef.h', + 'linebreak.h', + 'linebreakdef.h', + 'wordbreakdef.h', + 'wordbreak.h', + 'wordbreakdata.c', + 'unibreakbase.c', + 'unibreakdef.c', + 'linebreak.c', + 'linebreakdata.c', + 'linebreakdef.c', + 'wordbreak.c', + 'graphemebreak.c', + 'graphemebreak.h', + 'graphemebreakdata.c', + 'graphemebreakdef.h', +] + +libunibreak_lib = static_library('libunibreak', + libunibreak_src, + include_directories : config_dir, + install: false, +) + +libunibreak = declare_dependency( + include_directories: [include_directories('.')], + link_with: libunibreak_lib, + dependencies: [eina], +) diff --git a/src/static_libs/lz4/meson.build b/src/static_libs/lz4/meson.build new file mode 100644 index 0000000000..4e3dc02189 --- /dev/null +++ b/src/static_libs/lz4/meson.build @@ -0,0 +1,17 @@ +if (get_option('embedded-lz4')) + lz4_src = [ + 'lz4.c', + 'lz4hc.c' + ] + + lz4_lib = static_library('lz4', lz4_src, + include_directories : config_dir, + ) + + lz4 = declare_dependency( + include_directories: include_directories('.'), + link_with: lz4_lib + ) +else + lz4 = dependency('liblz4') +endif diff --git a/src/static_libs/rg_etc/meson.build b/src/static_libs/rg_etc/meson.build new file mode 100644 index 0000000000..3dad342457 --- /dev/null +++ b/src/static_libs/rg_etc/meson.build @@ -0,0 +1,16 @@ +rg_etc_src = [ +'etc2_encoder.c', +'rg_etc1.c', +'rg_etc1.h', +'rg_etc2.c', +] + +rg_etc_lib = static_library('rg_etc', rg_etc_src, + dependencies : eina, + include_directories : config_dir, +) + +rg_etc = declare_dependency( + include_directories: include_directories('.'), + link_with: rg_etc_lib +) diff --git a/src/static_libs/triangulator/meson.build b/src/static_libs/triangulator/meson.build new file mode 100644 index 0000000000..1a1af2ac0e --- /dev/null +++ b/src/static_libs/triangulator/meson.build @@ -0,0 +1,21 @@ + +triangulator_src = [ + 'triangulator_simple.c', + 'triangulator_simple.h', + 'triangulator_stroker.c', + 'triangulator_stroker.h', +] + + +triangulator_lib = static_library('triangulator', + triangulator_src, + dependencies : [eina, efl], + include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))], + install: false, +) + +triangulator = declare_dependency( + include_directories: [include_directories('.')], + link_with: triangulator_lib, + dependencies: [eina], +) diff --git a/src/static_libs/vg_common/meson.build b/src/static_libs/vg_common/meson.build new file mode 100644 index 0000000000..eeb72fce52 --- /dev/null +++ b/src/static_libs/vg_common/meson.build @@ -0,0 +1,13 @@ +#vg common is not really a static lib, is required by evas and requires evas ... so only collecting src here and compile them into evas ... ... + +vg_common_src = files([ + 'vg_common.c', + 'vg_common.h', +]) + +vg_common_inc_dir = include_directories('.') + +vg_common = declare_dependency( + include_directories: vg_common_inc_dir, + sources: vg_common_src, +) diff --git a/src/tests/ecore/meson.build b/src/tests/ecore/meson.build new file mode 100644 index 0000000000..4c8351a8bc --- /dev/null +++ b/src/tests/ecore/meson.build @@ -0,0 +1,56 @@ + +ecore_suite_src = [ + 'ecore_suite.c', + 'ecore_test_ecore.c', + 'ecore_test_ecore_imf.c', + 'ecore_test_idle.c', + 'ecore_test_timer.c', + 'ecore_test_ecore_evas.c', + 'ecore_test_animator.c', + 'ecore_test_ecore_thread_eina_thread_queue.c', + 'ecore_test_ecore_input.c', + 'ecore_test_ecore_file.c', + 'ecore_test_job.c', + 'ecore_test_args.c', + 'ecore_test_pipe.c', + 'ecore_suite.h' +] + +ecore_suite_deps = [m] +ecore_suite_deps += ecore +ecore_suite_deps += ecore_file +ecore_suite_deps += ecore_evas +ecore_suite_deps += ecore_input +ecore_suite_deps += ecore_imf + +if get_option('audio') + ecore_suite_deps += ecore_audio + ecore_suite_src += 'ecore_test_ecore_audio.c' +endif + +if get_option('fb') + ecore_suite_deps += ecore_fb + ecore_suite_src += 'ecore_test_ecore_fb.c' +endif + +if get_option('drm') + ecore_suite_deps += ecore_drm2 +endif + +if get_option('x11') + ecore_suite_src += 'ecore_test_ecore_x.c' + ecore_suite_deps += ecore_x +endif + +ecore_suite = executable('ecore_suite', + ecore_suite_src, + dependencies: [ecore_suite_deps, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('ecore-suite', ecore_suite, + timeout : 10*60, + env : test_env +) diff --git a/src/tests/ecore_con/meson.build b/src/tests/ecore_con/meson.build new file mode 100644 index 0000000000..0b8bd78909 --- /dev/null +++ b/src/tests/ecore_con/meson.build @@ -0,0 +1,20 @@ +ecore_con_suite_src = [ + 'ecore_con_suite.c', + 'ecore_con_test_ecore_con.c', + 'ecore_con_test_ecore_con_url.c', + 'ecore_con_test_ecore_con_eet.c', + 'ecore_con_test_efl_net_ip_address.c', + 'ecore_con_suite.h' +] + +ecore_con_suite = executable('ecore_con_suite', + ecore_con_suite_src, + dependencies: [ecore_con, eet, ecore, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('ecore_con-suite', ecore_con_suite, + env : test_env +) diff --git a/src/tests/ector/meson.build b/src/tests/ector/meson.build new file mode 100644 index 0000000000..3bc3d6ef47 --- /dev/null +++ b/src/tests/ector/meson.build @@ -0,0 +1 @@ +subdir('suite')
\ No newline at end of file diff --git a/src/tests/ector/suite/meson.build b/src/tests/ector/suite/meson.build new file mode 100644 index 0000000000..23335695d9 --- /dev/null +++ b/src/tests/ector/suite/meson.build @@ -0,0 +1,18 @@ +ector_suite_src = [ + 'ector_suite.c', + 'ector_suite.h', + 'ector_test_init.c', +] + +ector_suite = executable('ector_suite', + ector_suite_src, + include_directories : include_directories('..'), + dependencies: [eo, ector, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('ector-suite', ector_suite, + env : test_env +) diff --git a/src/tests/edje/data/meson.build b/src/tests/edje/data/meson.build new file mode 100644 index 0000000000..f9494ca1e7 --- /dev/null +++ b/src/tests/edje/data/meson.build @@ -0,0 +1,37 @@ +edc_files = [ + 'complex_layout.edc', + 'test_box.edc', + 'test_color_class.edc', + 'test_combine_keywords.edc', + 'test_filters.edc', + 'test_layout.edc', + 'test_masking.edc', + 'test_messages.edc', + 'test_parens.edc', + 'test_signal_callback_del_full.edc', + 'test_signals.edc', + 'test_size_class.edc', + 'test_snapshot.edc', + 'test_swallows.edc', + 'test_table.edc', + 'test_text_cursor.edc', + 'test_textblock.edc', +] + +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', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'), + '-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 diff --git a/src/tests/edje/meson.build b/src/tests/edje/meson.build new file mode 100644 index 0000000000..54aee4f873 --- /dev/null +++ b/src/tests/edje/meson.build @@ -0,0 +1,26 @@ +subdir('data') +subdir('tests') + +edje_suite_src = [ + 'edje_suite.c', + 'edje_suite.h', + 'edje_test_container.c', + 'edje_test_edje.c', + 'edje_test_features.c', + 'edje_test_signal.c', + 'edje_test_swallow.c', + 'edje_test_text.c', +] + +edje_suite = executable('edje_suite', + edje_suite_src, themes, + dependencies: [check, eina, ecore_evas, edje], + include_directories : config_dir, + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('edje-suite', edje_suite, + env : test_env +) diff --git a/src/tests/edje/tests/meson.build b/src/tests/edje/tests/meson.build new file mode 100644 index 0000000000..4780bcaeba --- /dev/null +++ b/src/tests/edje/tests/meson.build @@ -0,0 +1,19 @@ +edc_files = [ + 'edje_inherit_nearest.edc', +] + +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', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'), + '-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
\ No newline at end of file diff --git a/src/tests/eet/meson.build b/src/tests/eet/meson.build new file mode 100644 index 0000000000..2e3b2808ce --- /dev/null +++ b/src/tests/eet/meson.build @@ -0,0 +1,27 @@ +eet_suite_src = [ + 'eet_test_cache.c', + 'eet_test_cipher.c', + 'eet_test_common.c', + 'eet_test_connection.c', + 'eet_test_data.c', + 'eet_test_file.c', + 'eet_test_identity.c', + 'eet_test_image.c', + 'eet_test_init.c', + 'eet_suite.c', + 'eet_test_common.h', + 'eet_suite.h' +] + +eet_suite = executable('eet_suite', + eet_suite_src, + dependencies: [eet, check], + c_args : [ + '-DTESTS_WD="`pwd`"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eet-suite', eet_suite, + env : test_env +) diff --git a/src/tests/eeze/meson.build b/src/tests/eeze/meson.build new file mode 100644 index 0000000000..d4e5430b96 --- /dev/null +++ b/src/tests/eeze/meson.build @@ -0,0 +1,20 @@ +eeze_suite_src = [ + 'eeze_suite.c', + 'eeze_test_init.c', + 'eeze_test_net.c', + 'eeze_test_sensor.c', + 'eeze_test_udev.c', + 'eeze_suite.h' +] + +eeze_suite = executable('eeze_suite', + eeze_suite_src, + dependencies: [eeze, ecore, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eeze-suite', eeze_suite, + env : test_env +) diff --git a/src/tests/efl/meson.build b/src/tests/efl/meson.build new file mode 100644 index 0000000000..10b24071b8 --- /dev/null +++ b/src/tests/efl/meson.build @@ -0,0 +1,18 @@ +efl_suite_src = [ + 'efl_suite.c', + 'efl_suite.h', + 'efl_test_model_composite.c', + 'efl_test_model_container.c' +] + +efl_suite_bin = executable('efl_suite', + efl_suite_src, + dependencies: [efl, ecore, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('efl-suite', efl_suite_bin, + env : test_env +) diff --git a/src/tests/efreet/meson.build b/src/tests/efreet/meson.build new file mode 100644 index 0000000000..27ce1a0cc0 --- /dev/null +++ b/src/tests/efreet/meson.build @@ -0,0 +1,66 @@ +efreet_suite_src = [ + 'efreet_suite.c', + 'efreet_suite.h', + 'efreet_test_efreet.c', + 'efreet_test_efreet_cache.c' +] + +efreet_suite = executable('efreet_suite', + efreet_suite_src, + dependencies: [check, efreet], + include_directories : config_dir, + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('efreet-suite', efreet_suite, + env : test_env +) + +efreet_test_src = [ + 'ef_data_dirs.c', + 'ef_desktop.c', + 'ef_icon_theme.c', + 'ef_ini.c', + 'ef_locale.c', + 'ef_menu.c', + 'ef_mime.c', + 'ef_test.h', + 'ef_utils.c', + 'main.c' +] + +efreet_test = executable('efreet_test', + efreet_test_src, + dependencies: [check, efreet, ecore, ecore_file, efreet_mime], + include_directories : config_dir, + c_args : [ + package_c_args, + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', + '-DDATA_DIR="'+dir_data+'"'] +) + +additional_tests = [ + 'efreet_async_test', + 'efreet_spec_test', + 'efreet_icon_cache_dump', + 'efreet_user_dir', + join_paths('compare', 'efreet_alloc'), + join_paths('compare', 'efreet_menu_alloc') +] + +foreach additional_test : additional_tests + efreet_tmp = executable(additional_test.underscorify(), + additional_test+'.c', + dependencies: [check, efreet, ecore, eet, ecore_file, efreet_mime], + include_directories : config_dir, + c_args : [ + package_c_args, + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', + '-DDATA_DIR="'+dir_data+'"'] + ) + +endforeach diff --git a/src/tests/eina/meson.build b/src/tests/eina/meson.build new file mode 100644 index 0000000000..f111e3a12d --- /dev/null +++ b/src/tests/eina/meson.build @@ -0,0 +1,73 @@ +eina_test_src = files( +'eina_suite.c', +'eina_suite.h', +'eina_test_abi.c', +'eina_test_fp.c', +'eina_test_ustringshare.c', +'eina_test_ustr.c', +'eina_test_binshare.c', +'eina_test_binbuf.c', +'eina_test_debug.c', +'eina_test_inarray.c', +'eina_test_array.c', +'eina_test_clist.c', +'eina_test_error.c', +'eina_test_sched.c', +'eina_test_log.c', +'eina_test_magic.c', +'eina_test_inlist.c', +'eina_test_main.c', +'eina_test_counter.c', +'eina_test_lalloc.c', +'eina_test_hash.c', +'eina_test_iterator.c', +'eina_test_accessor.c', +'eina_test_module.c', +'eina_test_convert.c', +'eina_test_rbtree.c', +'eina_test_file.c', +'eina_test_benchmark.c', +'eina_test_mempool.c', +'eina_test_rectangle.c', +'eina_test_list.c', +'eina_test_matrixsparse.c', +'eina_test_tiler.c', +'eina_test_strbuf.c', +'eina_test_str.c', +'eina_test_quadtree.c', +'eina_test_simple_xml_parser.c', +'eina_test_value.c', +'eina_test_cow.c', +'eina_test_barrier.c', +'eina_test_tmpstr.c', +'eina_test_trash.c', +'eina_test_lock.c', +'eina_test_xattr.c', +'eina_test_crc.c', +'eina_test_quad.c', +'eina_test_matrix.c', +'eina_test_quaternion.c', +'eina_test_vector.c', +'eina_test_bezier.c', +'eina_test_safepointer.c', +'eina_test_slice.c', +'eina_test_freeq.c', +'eina_test_slstr.c', +'eina_test_vpath.c' +) + + +eina_test_exe = executable('eina_suite', + include_directories : config_dir, + sources : eina_test_src, + dependencies: [m, check, eina], + c_args : [ + '-DTESTS_WD="`pwd`"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eina', eina_test_exe, + env : test_env, + timeout : 5*60 +) diff --git a/src/tests/eio/meson.build b/src/tests/eio/meson.build new file mode 100644 index 0000000000..09feb3769b --- /dev/null +++ b/src/tests/eio/meson.build @@ -0,0 +1,30 @@ +eio_suite_src = [ + 'eio_suite.c', + 'eio_model_test_file.c', + 'eio_model_test_monitor_add.c', + 'eio_test_monitor.c', + 'eio_test_sentry.c', + 'eio_test_file.c', + 'eio_test_manager.c', + 'eio_test_manager_xattr.c', + 'eio_test_xattr.c', + 'eio_test_common.c', + 'eio_test_common.h', + 'eio_test_map.c', + 'eio_test_eet.c', + 'eio_suite.h' +] + +eio_suite = executable('eio_suite', + eio_suite_src, + include_directories : [config_dir], + dependencies: [eo, ecore, eina, ecore_file, eio, check, efreet], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eio-suite', eio_suite, + env : test_env, + timeout : 10*60 #10 min. can be realistic, this testsuite is slow! +) diff --git a/src/tests/eldbus/meson.build b/src/tests/eldbus/meson.build new file mode 100644 index 0000000000..0b0f97a34b --- /dev/null +++ b/src/tests/eldbus/meson.build @@ -0,0 +1,28 @@ +eldbus_suite_src = [ + 'eldbus_suite.c', + 'eldbus_test_eldbus_init.c', + 'eldbus_test_eldbus_model.h', + 'eldbus_fake_server.h', + 'eldbus_test_eldbus_model.c', + 'eldbus_test_eldbus_model_connection.c', + 'eldbus_test_eldbus_model_object.c', + 'eldbus_test_eldbus_model_proxy.c', + 'eldbus_test_eldbus_model_method.c', + 'eldbus_test_eldbus_model_signal.c', + 'eldbus_test_eldbus_object.c', + 'eldbus_test_eldbus_message.c', + 'eldbus_test_eldbus_signal_handler.c', + 'eldbus_test_eldbus_proxy.c', + 'eldbus_test_eldbus_pending_cancel.c', + 'eldbus_test_fake_server_eldbus_model_proxy.c', + 'eldbus_fake_server.c', + 'eldbus_suite.h' +] + +executable('eldbus_suite', + eldbus_suite_src, + dependencies: [eldbus, ecore, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build new file mode 100644 index 0000000000..0f083672cd --- /dev/null +++ b/src/tests/elementary/meson.build @@ -0,0 +1,122 @@ +priv_eo_files = [ + 'focus_test.eo', + 'focus_test_sub_main.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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + + +elementary_suite_src = [ + 'elm_suite.c', + 'elm_test_atspi.c', + 'elm_test_check.c', + 'elm_test_colorselector.c', + 'elm_test_entry.c', + 'elm_test_init.c', + 'elm_test_list.c', + 'elm_test_button.c', + 'elm_test_image.c', + 'elm_test_photo.c', + 'elm_test_actionslider.c', + 'elm_test_box.c', + 'elm_test_table.c', + 'elm_test_thumb.c', + 'elm_test_menu.c', + 'elm_test_photocam.c', + 'elm_test_win.c', + 'elm_test_icon.c', + 'elm_test_prefs.c', + 'elm_test_map.c', + 'elm_test_glview.c', + 'elm_test_web.c', + 'elm_test_toolbar.c', + 'elm_test_grid.c', + 'elm_test_diskselector.c', + 'elm_test_notify.c', + 'elm_test_mapbuf.c', + 'elm_test_flip.c', + 'elm_test_layout.c', + 'elm_test_slider.c', + 'elm_test_ctxpopup.c', + 'elm_test_separator.c', + 'elm_test_calendar.c', + 'elm_test_inwin.c', + 'elm_test_gengrid.c', + 'elm_test_radio.c', + 'elm_test_scroller.c', + 'elm_test_frame.c', + 'elm_test_datetime.c', + 'elm_test_player.c', + 'elm_test_bg.c', + 'elm_test_video.c', + 'elm_test_segmentcontrol.c', + 'elm_test_progressbar.c', + 'elm_test_fileselector.c', + 'elm_test_fileselector_button.c', + 'elm_test_fileselector_entry.c', + 'elm_test_hoversel.c', + 'elm_test_multibuttonentry.c', + 'elm_test_naviframe.c', + 'elm_test_popup.c', + 'elm_test_bubble.c', + 'elm_test_clock.c', + 'elm_test_conformant.c', + 'elm_test_dayselector.c', + 'elm_test_flipselector.c', + 'elm_test_genlist.c', + 'elm_test_hover.c', + 'elm_test_index.c', + 'elm_test_label.c', + 'elm_test_panel.c', + 'elm_test_panes.c', + 'elm_test_slideshow.c', + 'elm_test_spinner.c', + 'elm_test_plug.c', + 'elm_test_config.c', + 'elm_code_file_test_load.c', + 'elm_code_file_test_memory.c', + 'elm_code_test_basic.c', + 'elm_code_test_line.c', + 'elm_code_test_parse.c', + 'elm_code_test_syntax.c', + 'elm_code_test_text.c', + 'elm_code_test_indent.c', + 'elm_code_test_widget.c', + 'elm_code_test_widget_text.c', + 'elm_code_test_widget_selection.c', + 'elm_code_test_widget_undo.c', + 'elm_test_focus_common.c', + 'elm_test_focus_common.h', + 'elm_test_focus.c', + 'elm_test_focus_sub.c' +] + +elementary_suite = executable('elementary_suite', + elementary_suite_src, priv_eo_file_target, + dependencies: [check, eina, elementary, elementary_deps], + include_directories : [config_dir] + [elementary_config_dir], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"', + '-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"', + '-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"', + ] +) + +test('elementary-suite', elementary_suite, + env : test_env +) + + +install_data(files(['testdiff.diff', 'testfile-windows.txt', 'testfile-withblanks.txt', 'testfile.txt']), + install_dir : join_paths(dir_data, 'elementary') +) diff --git a/src/tests/elput/meson.build b/src/tests/elput/meson.build new file mode 100644 index 0000000000..529ffa18c2 --- /dev/null +++ b/src/tests/elput/meson.build @@ -0,0 +1,17 @@ +elput_suite_src = [ + 'elput_suite.c', + 'elput_suite.h', + 'elput_test_elput.c' +] + +elput_suite = executable('elput_suite', + elput_suite_src, + dependencies: [elput, ecore, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('elput-suite', elput_suite, + env : test_env +) diff --git a/src/tests/elua/meson.build b/src/tests/elua/meson.build new file mode 100644 index 0000000000..ec75f672b1 --- /dev/null +++ b/src/tests/elua/meson.build @@ -0,0 +1,31 @@ +elua_suite_deps = [check, eina, elua] + +elua_suite_src = [ + 'elua_suite.c', + 'elua_suite.h', + 'elua_lib.c' +] + +elua_bindings_dir = join_paths(meson.source_root(), 'src', 'bindings', 'luajit') +elua_core_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'core') +elua_modules_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'modules') +elua_apps_dir = join_paths(meson.source_root(), 'src', 'tests', 'elua', 'data', 'apps') + +elua_suite = executable('elua_suite', + elua_suite_src, + include_directories : config_dir, + dependencies: [elua_suite_deps, check], + c_args : [ + '-DELUA_BINDINGS_DIR="'+elua_bindings_dir+'"', + '-DELUA_CORE_DIR="'+elua_core_dir+'"', + '-DELUA_MODULES_DIR="'+elua_modules_dir+'"', + '-DELUA_APPS_DIR="'+elua_apps_dir+'"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"' + ] +) + +test('elua-suite', elua_suite, + timeout : 10*60, + env : test_env +) diff --git a/src/tests/emile/meson.build b/src/tests/emile/meson.build new file mode 100644 index 0000000000..438989a374 --- /dev/null +++ b/src/tests/emile/meson.build @@ -0,0 +1,18 @@ +emile_suite_src = [ + 'emile_suite.c', + 'emile_suite.h', + 'emile_test_base.c', + 'emile_test_base64.c' +] + +emile_suite = executable('emile_suite', + emile_suite_src, + dependencies: [emile, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('emile-suite', emile_suite, + env : test_env +) diff --git a/src/tests/emotion/data/meson.build b/src/tests/emotion/data/meson.build new file mode 100644 index 0000000000..82c3c03ad8 --- /dev/null +++ b/src/tests/emotion/data/meson.build @@ -0,0 +1,21 @@ +edc_files = [ + 'theme.edc', +] + +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
\ No newline at end of file diff --git a/src/tests/emotion/meson.build b/src/tests/emotion/meson.build new file mode 100644 index 0000000000..ec5027c07b --- /dev/null +++ b/src/tests/emotion/meson.build @@ -0,0 +1,21 @@ +subdir('data') + +emotion_eo_suite = executable('emotion_eo_suite', + 'emotion_test_main-eo.c', themes, + dependencies: [check, eo, evas, emotion, ecore_evas, edje, ecore], + include_directories : config_dir, + c_args : [ + '-DPACKAGE_DATA_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +emotion_suite = executable('emotion_suite', + 'emotion_test_main.c', themes, + dependencies: [check, eo, evas, emotion, ecore_evas, edje, ecore], + include_directories : config_dir, + c_args : [ + '-DPACKAGE_DATA_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) diff --git a/src/tests/eo/access/meson.build b/src/tests/eo/access/meson.build new file mode 100644 index 0000000000..79bc65f982 --- /dev/null +++ b/src/tests/eo/access/meson.build @@ -0,0 +1,20 @@ +eo_access_src = [ + 'access_inherit.c', + 'access_inherit.h', + 'access_main.c', + 'access_simple.c', + 'access_simple.h', + 'access_simple_protected.h' +] + +eo_access = executable('eo_access', + eo_access_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-access', eo_access, + env : test_env +) diff --git a/src/tests/eo/children/meson.build b/src/tests/eo/children/meson.build new file mode 100644 index 0000000000..e740b5cc9b --- /dev/null +++ b/src/tests/eo/children/meson.build @@ -0,0 +1,17 @@ +eo_children_src = [ + 'children_main.c', + 'children_simple.c', + 'children_simple.h' +] + +eo_children = executable('eo_children', + eo_children_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-children', eo_children, + env : test_env +) diff --git a/src/tests/eo/composite_objects/meson.build b/src/tests/eo/composite_objects/meson.build new file mode 100644 index 0000000000..578d4fabbc --- /dev/null +++ b/src/tests/eo/composite_objects/meson.build @@ -0,0 +1,19 @@ +eo_composite_objects_src = [ + 'composite_objects_comp.c', + 'composite_objects_comp.h', + 'composite_objects_main.c', + 'composite_objects_simple.c', + 'composite_objects_simple.h' +] + +eo_composite_objects = executable('eo_composite_objects', + eo_composite_objects_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-composite-objects', eo_composite_objects, + env : test_env +) diff --git a/src/tests/eo/constructors/meson.build b/src/tests/eo/constructors/meson.build new file mode 100644 index 0000000000..612c7be3ec --- /dev/null +++ b/src/tests/eo/constructors/meson.build @@ -0,0 +1,31 @@ +eo_constructors_src = [ + 'constructors_main.c', + 'constructors_mixin.c', + 'constructors_mixin.h', + 'constructors_simple.c', + 'constructors_simple.h', + 'constructors_simple2.c', + 'constructors_simple2.h', + 'constructors_simple3.c', + 'constructors_simple3.h', + 'constructors_simple4.c', + 'constructors_simple4.h', + 'constructors_simple5.c', + 'constructors_simple5.h', + 'constructors_simple6.c', + 'constructors_simple6.h', + 'constructors_simple7.c', + 'constructors_simple7.h' +] + +eo_constructors = executable('eo_constructors', + eo_constructors_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-constructors', eo_constructors, + env : test_env +) diff --git a/src/tests/eo/function_overrides/meson.build b/src/tests/eo/function_overrides/meson.build new file mode 100644 index 0000000000..fb2b8dcadb --- /dev/null +++ b/src/tests/eo/function_overrides/meson.build @@ -0,0 +1,23 @@ +eo_function_overrides_src = [ + 'function_overrides_inherit.c', + 'function_overrides_inherit.h', + 'function_overrides_inherit2.c', + 'function_overrides_inherit2.h', + 'function_overrides_inherit3.c', + 'function_overrides_inherit3.h', + 'function_overrides_main.c', + 'function_overrides_simple.c', + 'function_overrides_simple.h' +] + +eo_function_overrides = executable('eo_function_overrides', + eo_function_overrides_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-function-overrides', eo_interface, + env : test_env +) diff --git a/src/tests/eo/interface/meson.build b/src/tests/eo/interface/meson.build new file mode 100644 index 0000000000..77f725734b --- /dev/null +++ b/src/tests/eo/interface/meson.build @@ -0,0 +1,21 @@ +eo_interface_src = [ + 'interface_interface.c', + 'interface_interface.h', + 'interface_interface2.c', + 'interface_interface2.h', + 'interface_main.c', + 'interface_simple.c', + 'interface_simple.h' +] + +eo_interface = executable('eo_interface', + eo_interface_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-interface', eo_interface, + env : test_env +) diff --git a/src/tests/eo/meson.build b/src/tests/eo/meson.build new file mode 100644 index 0000000000..da4a899da7 --- /dev/null +++ b/src/tests/eo/meson.build @@ -0,0 +1,9 @@ +subdir('suite') +subdir('signals') +subdir('mixin') +subdir('interface') +subdir('function_overrides') +subdir('constructors') +subdir('composite_objects') +subdir('children') +subdir('access') diff --git a/src/tests/eo/mixin/meson.build b/src/tests/eo/mixin/meson.build new file mode 100644 index 0000000000..5ae83a9672 --- /dev/null +++ b/src/tests/eo/mixin/meson.build @@ -0,0 +1,27 @@ +eo_mixin_src = [ + 'mixin_inherit.c', + 'mixin_inherit.h', + 'mixin_main.c', + 'mixin_mixin.c', + 'mixin_mixin.h', + 'mixin_mixin2.c', + 'mixin_mixin2.h', + 'mixin_mixin3.c', + 'mixin_mixin3.h', + 'mixin_mixin4.c', + 'mixin_mixin4.h', + 'mixin_simple.c', + 'mixin_simple.h' +] + +eo_mixin = executable('eo_mixin', + eo_mixin_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-mixins', eo_mixin, + env : test_env +) diff --git a/src/tests/eo/signals/meson.build b/src/tests/eo/signals/meson.build new file mode 100644 index 0000000000..37006ac3fc --- /dev/null +++ b/src/tests/eo/signals/meson.build @@ -0,0 +1,17 @@ +eo_signals_src = [ + 'signals_main.c', + 'signals_simple.c', + 'signals_simple.h' +] + +eo_signals = executable('eo_signals', + eo_signals_src, + dependencies: [eo], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-signals', eo_signals, + env : test_env +) diff --git a/src/tests/eo/suite/meson.build b/src/tests/eo/suite/meson.build new file mode 100644 index 0000000000..6e7f4ba6f7 --- /dev/null +++ b/src/tests/eo/suite/meson.build @@ -0,0 +1,33 @@ +eo_suite_src = [ + 'eo_test_class_simple.c', + 'eo_test_class_simple.h', + 'eo_test_class_singleton.c', + 'eo_test_class_singleton.h', + 'eo_test_domain.c', + 'eo_test_domain.h', + 'eo_suite.c', + 'eo_suite.h', + 'eo_error_msgs.h', + 'eo_error_msgs.c', + 'eo_test_class_errors.c', + 'eo_test_class_behaviour_errors.c', + 'eo_test_call_errors.c', + 'eo_test_general.c', + 'eo_test_value.c', + 'eo_test_event.c', + 'eo_test_threaded_calls.c', + 'eo_test_init.c', + 'eo_test_lifecycle.c' +] + +eo_suite = executable('eo_suite', + eo_suite_src, + dependencies: [eo, check, valgrind], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eo-suite', eo_suite, + env : test_env +) diff --git a/src/tests/eolian/meson.build b/src/tests/eolian/meson.build new file mode 100644 index 0000000000..01fd6d3c10 --- /dev/null +++ b/src/tests/eolian/meson.build @@ -0,0 +1,38 @@ +priv_eo_files = [ + 'generated_future.eo' +] + +eolian_test_src = [ +'eolian_parsing.c', +'eolian_generation.c', +'eolian_generated_future.c', +'eolian_suite.c', +'eolian_suite.h', +'eolian_static.c' +] + +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'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +eolian_suite = executable('eolian_suite', + eolian_test_src, priv_eo_file_target, + dependencies: [eolian, check, eo], + c_args : [ + '-DEOLIAN_GEN="'+eolian_gen.full_path()+'"', + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DEO_SRC_DIR="'+join_paths(meson.source_root(), 'src', 'lib')+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('eolian', eolian_suite, + timeout: 30, + env : test_env +) diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build new file mode 100644 index 0000000000..62898cd241 --- /dev/null +++ b/src/tests/evas/meson.build @@ -0,0 +1,31 @@ +evas_suite_src = [ + 'evas_suite.c', + 'evas_test_new.c', + 'evas_test_init.c', + 'evas_test_object.c', + 'evas_test_object_smart.c', + 'evas_test_textblock.c', + 'evas_test_text.c', + 'evas_test_callbacks.c', + 'evas_test_render_engines.c', + 'evas_test_filters.c', + 'evas_test_image.c', + 'evas_test_mesh.c', + 'evas_test_mask.c', + 'evas_test_evasgl.c', + 'evas_test_matrix.c', + 'evas_tests_helpers.h', + 'evas_suite.h' +] + +evas_suite = executable('evas_suite', + evas_suite_src, + dependencies: [evas_bin, evas, ecore_evas, dl, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('evas-suite', evas_suite, + env : test_env +) diff --git a/src/tests/meson.build b/src/tests/meson.build new file mode 100644 index 0000000000..7604ba199a --- /dev/null +++ b/src/tests/meson.build @@ -0,0 +1 @@ +executable('timeout', 'timeout.c') diff --git a/src/wayland_protocol/meson.build b/src/wayland_protocol/meson.build new file mode 100644 index 0000000000..5f3680ee93 --- /dev/null +++ b/src/wayland_protocol/meson.build @@ -0,0 +1,67 @@ +wayland_scanner_bin = find_program('wayland-scanner') + +#make it typo proof +_wayland_protocols = dependency('wayland-protocols') +wayland_client = dependency('wayland-client') + +wl_protocol_local = [ + 'efl-aux-hints.xml', + 'efl-hints.xml', + 'session-recovery.xml', + 'teamwork.xml', + 'www.xml' +] + +wl_unstable_protocol_sys = [ + join_paths('xdg-shell', 'xdg-shell-unstable-v6.xml'), + join_paths('linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'), + join_paths('text-input', 'text-input-unstable-v1.xml'), +] + +wl_stable_protocol_sys = [ + join_paths('xdg-shell', 'xdg-shell.xml'), +] + +foreach sys_protocol : wl_unstable_protocol_sys + wl_protocol_local += [ + join_paths(_wayland_protocols.get_pkgconfig_variable('pkgdatadir'), 'unstable', + sys_protocol)] +endforeach + +foreach sys_protocol : wl_stable_protocol_sys + wl_protocol_local += [ + join_paths(_wayland_protocols.get_pkgconfig_variable('pkgdatadir'), 'stable', + sys_protocol)] +endforeach + +gen_obj = [] + +foreach item : wl_protocol_local + gen_obj += custom_target('wl_code_'+item.underscorify(), + input: item, + output : ['@BASENAME@-protocol.c'], + command: [wayland_scanner_bin, ['code','@INPUT@','@OUTPUT@']] + ) + gen_obj += custom_target('wl_client_header_'+item.underscorify(), + input: item, + output : ['@BASENAME@-client-protocol.h'], + command: [wayland_scanner_bin, ['client-header','@INPUT@','@OUTPUT@']] + ) + gen_obj += custom_target('wl_server_header_'+item.underscorify(), + input: item, + output : ['@BASENAME@-server-protocol.h'], + command: [wayland_scanner_bin, ['server-header','@INPUT@','@OUTPUT@']] + ) +endforeach + + +wayland_protocol_lib = static_library('wayland_protocol', + gen_obj, +) + +wayland_protocol = declare_dependency( + include_directories: include_directories('.'), + link_with: wayland_protocol_lib, + sources: gen_obj, + dependencies : [wayland_client] +)
\ No newline at end of file |