There is some work going on for windows, i tried to reach you this week because of this.
I tried two things: 1) Crosscompiling: it failed in the end due to a very very weird error message: ./config.h:10:17: Fehler: expected unqualified-id before string constant #define DATADIR "/usr/local/share" I cannot make any sense of it, maybe you can :) 2) Compiling in vs2017: failed because stuff like pid_t and mode_t is not defined. In the end i ended up pushing what i had (which was initial eina), windows is not forgotten, i just need help there, since i dont know much about windows. So in the end, so there some time of you, where we could try to sort a few of those things ? :) btw. you can check it yourself: efl branch devs/bu5hm4n/evil-meson tldr: there is windows stuff, just not working yet. Greetings, Marcel Hollerbach On Sat, Dec 23, 2017 at 11:04:25AM +0100, Vincent Torri wrote: > andwindows ? (including evil) > > On Wed, Dec 20, 2017 at 8:12 PM, <marcel-hollerb...@t-online.de> wrote: > > This is the first stage for porting efl to meson! > > > > Right now this should work on osx, *bsd, and linux. > > > > I plan to rebase the branch every friday, so if there are things you > > want to push, please do this before friday noon (CET). > > > > I would also like to only merge complete subsystems that are tested on > > bsd linux and osx, so we dont break this thing before it works ... :) > > > > Greetings, > > Marcel Hollerbach > > > > > > On Wed, Dec 20, 2017 at 11:04:55AM -0800, Marcel Hollerbach wrote: > >> bu5hm4n pushed a commit to branch feature/meson. > >> > >> http://git.enlightenment.org/core/efl.git/commit/?id=b828aa49590182aa6f43e71c0fa34c9507e3154c > >> > >> commit b828aa49590182aa6f43e71c0fa34c9507e3154c > >> Author: Marcel Hollerbach <marcel-hollerb...@t-online.de> > >> Date: Wed Dec 20 19:57:23 2017 +0100 > >> > >> meson: add inital eina support > >> > >> things that are working: > >> - tests > >> - benchmarks > >> - lib > >> - modules > >> - bin > >> > >> Due to the fact that eina depends on efl (why?!) efl is already there > >> just to generate the Efl_Config.h file. > >> --- > >> header_checks/meson.build | 136 +++++++++++ > >> meson.build | 86 +++++++ > >> meson_options.txt | 28 +++ > >> src/benchmarks/eina/meson.build | 41 ++++ > >> src/bin/eina/eina_btlog/meson.build | 5 + > >> src/bin/eina/eina_modinfo/meson.build | 5 + > >> src/bin/eina/meson.build | 2 + > >> src/examples/eina/meson.build | 47 ++++ > >> src/examples/meson.build | 1 + > >> src/lib/efl/meson.build | 22 ++ > >> src/lib/eina/meson.build | 348 > >> +++++++++++++++++++++++++++ > >> src/modules/eina/meson.build | 9 + > >> src/modules/eina/mp/chained_pool/meson.build | 3 + > >> src/modules/eina/mp/one_big/meson.build | 3 + > >> src/modules/eina/mp/pass_through/meson.build | 3 + > >> src/tests/eina/meson.build | 69 ++++++ > >> src/tests/meson.build | 2 + > >> 17 files changed, 810 insertions(+) > >> > >> diff --git a/header_checks/meson.build b/header_checks/meson.build > >> new file mode 100644 > >> index 0000000000..d9c6a83216 > >> --- /dev/null > >> +++ b/header_checks/meson.build > >> @@ -0,0 +1,136 @@ > >> +header_checks = [ > >> + 'alloca.h', > >> + 'asm/hwcap.h', > >> + 'bsd/string.h', > >> + 'dirent.h', > >> + 'execinfo.h', > >> + 'mcheck.h', > >> + 'netinet/in.h', > >> + 'stdlib.h', > >> + 'sys/auxv.h', > >> + 'sys/inotify.h', > >> + 'sys/ioctl.h', > >> + 'sys/mman.h', > >> + 'sys/types.h', > >> + 'sys/socket.h', > >> + 'arpa/inet.h', > >> + 'sys/epoll.h', > >> + 'sys/un.h', > >> + 'dirent.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_t', ['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']], > >> +#FIXME strlcpy is detected by meson but drops at compilation time > >> +# ['strlcpy', ['string.h']], > >> + ['siginfo_t', ['signal.h']], > >> + ['strerror_r', ['string.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 > >> + > >> +config_h.set('VMAJ', version_major) > >> +config_h.set('VMIN', version_minor) > >> +config_h.set('VMIC', version_micro) > >> +config_h.set('VREV', '0') > >> +config_h.set_quoted('SHARED_LIB_SUFFIX', '.so') > >> diff --git a/meson.build b/meson.build > >> new file mode 100644 > >> index 0000000000..a566a5381d > >> --- /dev/null > >> +++ b/meson.build > >> @@ -0,0 +1,86 @@ > >> +project('efl', ['c','cpp'], version: '1.20.99') > >> + > >> +pkgconfig = import('pkgconfig') > >> + > >> +version_arr = meson.project_version().split('.') > >> + > >> +version_major = version_arr[0] > >> +version_minor = version_arr[1] > >> +version_micro = version_arr[2] > >> + > >> +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 > >> + > >> +module_arch = '@0@-@1@-@2@'.format(host_os, host_machine.cpu_family(), > >> meson.project_version()) > >> + > >> +#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') > >> + > >> +add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c') > >> +add_global_arguments('-D_GNU_SOURCE=1', language: 'c') > >> +add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'c') > >> +add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'c') > >> + > >> +config_h = configuration_data() > >> +config_h.set_quoted('MODULE_ARCH', module_arch) > >> +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_BUILD_DIR', meson.current_source_dir()) > >> +config_h.set_quoted('PACKAGE_DATA_DIR', join_paths(dir_data, > >> meson.project_name())) > >> +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_dir = [include_directories('.')] > >> + > >> +subdir('header_checks') > >> + > >> +subdir(join_paths(local_lib, 'efl')) > >> + > >> +subdir(join_paths(local_module, 'eina')) > >> +subdir(join_paths(local_lib, 'eina')) > >> +subdir(join_paths(local_bin, 'eina')) > >> +subdir(join_paths(local_benchmark, 'eina')) > >> + > >> +if get_option('build-tests') > >> + subdir(join_paths(local_tests)) > >> +endif > >> + > >> +if get_option('build-examples') > >> + subdir(join_paths(local_examples)) > >> +endif > >> + > >> +configure_file(output: 'config.h', install: false, configuration: > >> config_h) > >> diff --git a/meson_options.txt b/meson_options.txt > >> new file mode 100644 > >> index 0000000000..f9985b7d64 > >> --- /dev/null > >> +++ b/meson_options.txt > >> @@ -0,0 +1,28 @@ > >> +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' > >> +) > >> 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/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/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/meson.build b/src/examples/meson.build > >> new file mode 100644 > >> index 0000000000..39eb335298 > >> --- /dev/null > >> +++ b/src/examples/meson.build > >> @@ -0,0 +1 @@ > >> +subdir('eina') > >> diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build > >> new file mode 100644 > >> index 0000000000..f6462f4b4a > >> --- /dev/null > >> +++ b/src/lib/efl/meson.build > >> @@ -0,0 +1,22 @@ > >> +#FIXME > >> +#weird to have here ... but oooooh well and its not correct aaarg > >> +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"') > >> + > >> +efl_config_file = configure_file( > >> + input: '../efl/Efl_Config.h.in', > >> + output: 'Efl_Config.h', > >> + configuration: efl_config_h) > >> + > >> +install_headers(efl_config_file) > >> + > >> +config_dir += include_directories('.') > >> + > >> +#end FIXME > >> diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build > >> new file mode 100644 > >> index 0000000000..c7ec72afac > >> --- /dev/null > >> +++ b/src/lib/eina/meson.build > >> @@ -0,0 +1,348 @@ > >> +eina_deps = [] > >> + > >> +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'] > >> + > >> +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'] > >> + > >> +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) > >> +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 > >> + > >> +eina_config.set('EINA_SAFETY_CHECKS', '1') > >> +eina_config.set('EINA_HAVE_THREADS', '1') > >> + > >> +if cc.has_header_symbol('pthread.h', 'pthread_attr_setaffinity_np') > >> + eina_config.set('EINA_HAVE_PTHREAD_AFFINITY', '1') > >> +endif > >> + > >> +if cc.has_header_symbol('pthread.h', 'pthread_barrier_init') > >> + eina_config.set('EINA_HAVE_PTHREAD_BARRIER', '1') > >> +endif > >> + > >> +if cc.has_header_symbol('pthread.h', 'pthread_setname_np') > >> + eina_config.set('EINA_HAVE_PTHREAD_SETNAME', '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')) > >> + > >> +eina_config.set('EINA_SIZEOF_UINTPTR_T', cc.sizeof('uintptr_t')) > >> + > >> +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_CONFIGURE_HAVE_BSWAP16', '1') > >> +endif > >> + > >> +if cc.has_header_symbol('byteswap.h', 'bswap_32') > >> + eina_config.set('EINA_CONFIGURE_HAVE_BSWAP32', '1') > >> +endif > >> + > >> +if cc.has_header_symbol('byteswap.h', 'bswap_64') > >> + eina_config.set('EINA_CONFIGURE_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_CONFIGURE_HAVE_OSX_SPINLOCK', 1) > >> + endif > >> + if cc.has_header_symbol('semaphore.h', 'semaphore_create') > >> + eina_config.set('EINA_CONFIGURE_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) > >> +execinfo = cc.find_library('execinfo', required: false) > >> + > >> +eina_lib = shared_library('eina', sources, > >> + include_directories : config_dir, > >> + dependencies: [m, rt, dl, execinfo, iconv, eina_deps, > >> thread_dep, eina_mem_pools], > >> + install: true) > >> + > >> +eina = declare_dependency( > >> + include_directories: [include_directories('.')] + config_dir, > >> + dependencies : [thread_dep], > >> + link_with: eina_lib, > >> +) > >> + > >> +install_headers(public_headers) > >> +install_headers(public_sub_headers, subdir : 'eina') > >> 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/tests/eina/meson.build b/src/tests/eina/meson.build > >> new file mode 100644 > >> index 0000000000..cbad7e9580 > >> --- /dev/null > >> +++ b/src/tests/eina/meson.build > >> @@ -0,0 +1,69 @@ > >> +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_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_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, > >> + timeout : 5*60, > >> +) > >> diff --git a/src/tests/meson.build b/src/tests/meson.build > >> new file mode 100644 > >> index 0000000000..856d351fa4 > >> --- /dev/null > >> +++ b/src/tests/meson.build > >> @@ -0,0 +1,2 @@ > >> +check = dependency('check') > >> +subdir('eina') > >> > >> -- > >> > >> > > > > ------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel