diff --git a/header_checks/meson.build b/header_checks/meson.build index ed66b80b4d..98f906c0cc 100644 --- a/header_checks/meson.build +++ b/header_checks/meson.build @@ -212,7 +212,7 @@ if sys_linux and config_h.has('HAVE_LISTXATTR') and config_h.has('HAVE_SETXATTR' config_h.set10('HAVE_XATTR', true) endif -if sys_windows == true +if sys_windows # pcre pcre_project = subproject('pcre') @@ -245,7 +245,9 @@ config_h.set('VREV', '0') jpeg = dependency('libjpeg', required: false) if jpeg.found() == false -# jpeg = cc.find_library('jpeg') + if not sys_windows + jpeg = cc.find_library('jpeg') + endif endif if sys_bsd == true diff --git a/meson.build b/meson.build index 1cf48b5f7c..8a6576c5b6 100644 --- a/meson.build +++ b/meson.build @@ -91,12 +91,12 @@ endforeach add_global_arguments(dev_cflags, language: 'c') add_global_arguments(dev_cflags, language: 'cpp') -if not get_option('dbus') - dbus = declare_dependency() - eldbus = declare_dependency() -endif +if sys_windows + if not get_option('dbus') + dbus = declare_dependency() + eldbus = declare_dependency() + endif -if sys_windows == true dl = declare_dependency() m = declare_dependency() @@ -361,7 +361,11 @@ luaold_interpreters = [ lua_pc_name = '' -if get_option('lua-interpreter') == 'lua' +if sys_windows or get_option('lua-interpreter') == 'lua' + if sys_windows and get_option('lua-interpreter') != 'lua' + warning('There is no "' + get_option('lua-interpreter') + + '" binding option for Windows, backing up to "lua"') + endif foreach l : luaold_interpreters lua = dependency(l[0], version: l[1], required:false) lua_pc_name = l[0] @@ -371,8 +375,7 @@ if get_option('lua-interpreter') == 'lua' endforeach else lua = dependency(get_option('lua-interpreter')) - #lua_pc_name = 'luajit' - lua_pc_name = 'lua' + lua_pc_name = 'luajit' endif if sys_osx == true and get_option('lua-interpreter') == 'luajit' @@ -392,8 +395,17 @@ subprojects = [ ['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' ,[] , false, true, false, false, false, + false, ['eina', 'eo', 'efl'], ['buildsystem']]] + +if not sys_windows + subprojects += [['eldbus' ,[] , false, true, + true, false, true, true, ['eina', 'eo', 'efl'], []]] + assert(subprojects[-1] == ['eldbus' ,[] , false, + true, true, false, true, true, ['eina', 'eo', 'efl'], []]) +endif + +subprojects += [ ['ecore' ,[] , true, false, false, false, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus ['ecore_audio' ,['audio'] , false, true, false, false, false, false, ['eina', 'eo'], []], ['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, ['eina', 'ecore'], []], @@ -408,8 +420,17 @@ subprojects = [ ['ecore_win32' ,[] , 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'], []], +['ector' ,[] , false, true, false, false, true, + false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],] + +if not sys_windows + subprojects += [['elput' ,['drm'] , false, true, + false, false, true, false, ['eina', 'eldbus'], []]] + assert(subprojects[-1] == ['elput' ,['drm'] , false, + true, false, false, true, false, ['eina', 'eldbus'], []]) +endif + +subprojects += [ ['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']], @@ -427,13 +448,30 @@ subprojects = [ ['ethumb' ,[] , true, true, true, false, false, false, ['eina', 'efl', 'eo'], []], ['ethumb_client' ,[] , false, true, true, false, false, true, ['eina', 'efl', 'eo', 'ethumb'], []], ['elementary' ,[] , true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], -['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, ['eina', 'efl', 'eo', 'evas', 'ecore'], []], -['elua' ,['elua'] , false, true, true, false, true, false, ['eina', 'luajit'], []], +['efl_canvas_wl' ,['wl'] , false, true, true, false, false, + false, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],] + +if not sys_windows + subprojects += [['elua' ,['elua'] , false, true, + true, false, true, false, ['eina', 'luajit'], []]] + assert(subprojects[-1] == ['elua' ,['elua'] , false, + true, true, false, true, false, ['eina', 'luajit'], []]) +else + subprojects += [['elua' ,['elua'] , false, true, + true, false, true, false, ['eina', 'lua'], []]] + assert(subprojects[-1] == ['elua' ,['elua'] , false, + true, true, false, true, false, ['eina', 'lua'], []]) +endif + +subprojects += [ ['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, ['eina'], []], ['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, ['eina'], []], ['exactness' ,[] , false, false, true, false, false, false, ['eina, evas, eet'], []], ] +assert(subprojects[-1] == ['exactness' ,[] , false, + false, true, false, false, false, ['eina, evas, eet'], []]) + # We generate Efl_Config.h and config.h later, they will be available here config_dir += include_directories('.') @@ -621,8 +659,9 @@ configure_file( ) subdir(join_paths('systemd-services')) -if get_option('dbus') -subdir(join_paths('dbus-services')) + +if not sys_windows and get_option('dbus') + subdir(join_paths('dbus-services')) endif if sys_windows == false diff --git a/meson_options.txt b/meson_options.txt index 9b78bb1067..30b5370c38 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -297,8 +297,8 @@ option('nls', option('bindings', type : 'array', - choices : ['cxx', 'mono'], - value : ['cxx'], + choices : ['luajit','cxx', 'mono'], + value : ['luajit', 'cxx'], description : 'Which auto-generated language bindings for efl to enable', ) @@ -334,8 +334,8 @@ option('dotnet', option('lua-interpreter', type: 'combo', - choices: ['lua'], - value: 'lua', + choices: ['luajit', 'lua'], + value: 'luajit', description: 'Which Lua back-end library to use in efl' ) diff --git a/src/bindings/cxx/meson.build b/src/bindings/cxx/meson.build index d1ca59c24f..3da51ab489 100644 --- a/src/bindings/cxx/meson.build +++ b/src/bindings/cxx/meson.build @@ -9,8 +9,14 @@ cxx_sublibs = [ ['Eet', true, true, false, []], ['Eio', false, false, true, []], ['Evas', false, true, true, []], - ['Edje', false, false, true, []], -# ['Eldbus', true, true, true, []], + ['Edje', false, false, true, []],] + +if (not sys_windows) + cxx_sublibs += [['Eldbus', true, true, true, []]] + assert(cxx_sublibs[-1] == ['Eldbus', true, true, true, []]) +endif + +cxx_sublibs += [ ['Elementary', true, true, true, []] ] diff --git a/src/bindings/meson.build b/src/bindings/meson.build index e05981efbd..00b807060d 100644 --- a/src/bindings/meson.build +++ b/src/bindings/meson.build @@ -1,6 +1,10 @@ bindings = get_option('bindings') -bindings_order = ['cxx', 'mono'] +if (not sys_windows) + bindings_order = ['luajit', 'cxx', 'mono'] +else + bindings_order = ['lua', 'cxx', 'mono'] +endif if (get_option('dotnet') and not bindings.contains('mono')) message('dotnet support requires the C# bindings') diff --git a/src/generic/evas/meson.build b/src/generic/evas/meson.build index 275ecfbdbd..62cc93e6b8 100644 --- a/src/generic/evas/meson.build +++ b/src/generic/evas/meson.build @@ -9,10 +9,22 @@ generic_deps = [] subdir('common') +inc_dir = config_dir +common_deps = generic_deps +if (sys_windows) + inc_dir = [inc_dir, zlib_include_dir] + assert(inc_dir[0] == config_dir) + assert(inc_dir[1] == zlib_include_dir) +else + common_deps = [generic_deps, rt] + assert(common_deps[0] == generic_deps) + assert(common_deps[1] == rt) +endif + common = static_library('evas_loader_common', generic_src, - include_directories : [config_dir, zlib_include_dir], - dependencies: [generic_deps, rt, evil_unposix], + include_directories : inc_dir, + dependencies: common_deps, ) bin_ext='' diff --git a/src/generic/evas/xcf/meson.build b/src/generic/evas/xcf/meson.build index f0039fd5e2..58f228715f 100644 --- a/src/generic/evas/xcf/meson.build +++ b/src/generic/evas/xcf/meson.build @@ -4,5 +4,9 @@ generic_src = files([ 'pixelfuncs.c' ]) -generic_deps = [eina, zlib] +if (not sys_windows) + generic_deps = [eina, dependency('zlib')] +else + generic_deps = [eina, zlib] +endif generic_support = ['xcf.gz'] diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build index 3a1f3a62b9..8eaf1d69da 100644 --- a/src/lib/ecore/meson.build +++ b/src/lib/ecore/meson.build @@ -196,10 +196,17 @@ if get_option('systemd') == true ecore_deps += systemd endif +if (not sys_windows) + ecore_lib_deps = [m, buildsystem, ecore_deps] +else + ecore_lib_deps = [buildsystem, ecore_deps] +endif + ecore_lib = library('ecore', ecore_src, pub_eo_file_target, - dependencies: ecore_pub_deps + [buildsystem, ecore_deps], - include_directories : config_dir + [include_directories(join_paths('..','..'))], + dependencies: ecore_pub_deps + ecore_lib_deps, + include_directories : config_dir + + [include_directories(join_paths('..','..'))], install: true, c_args : package_c_args, version : meson.project_version() diff --git a/src/lib/eet/meson.build b/src/lib/eet/meson.build index fe8d273f61..d3b04bdeab 100644 --- a/src/lib/eet/meson.build +++ b/src/lib/eet/meson.build @@ -1,4 +1,9 @@ eet_deps = [crypto, jpeg, rg_etc] +if not sys_windows + eet_deps += m + assert(eet_deps[-1] == m) +endif + eet_pub_deps = [eina, emile, efl] eet_header_src = [ diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build index 781c9d536d..6e3301f264 100644 --- a/src/lib/efl/meson.build +++ b/src/lib/efl/meson.build @@ -11,9 +11,15 @@ efl_src = [] subdir('interfaces') package_header_subdirs += 'interfaces' +efl_lib_deps = [eina, eo] + +if not sys_windows + efl_lib_deps += m +endif + efl_lib = library('efl', efl_src, pub_eo_file_target, - dependencies: [eina, eo], + dependencies: efl_lib_deps, install: true, version : meson.project_version() ) diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build index ea32d3c693..b53eac8744 100644 --- a/src/lib/eina/meson.build +++ b/src/lib/eina/meson.build @@ -1,4 +1,4 @@ -if sys_windows == false +if not sys_windows eina_deps = [dl] else eina_deps = [] @@ -372,9 +372,16 @@ endif execinfo = cc.find_library('execinfo', required: false) +if sys_windows + eina_lib_deps = [execinfo, iconv, eina_deps, thread_dep, eina_mem_pools, evil] +else + eina_lib_deps = [m, rt, dl, execinfo, iconv, eina_deps, thread_dep + , eina_mem_pools, evil] +endif + eina_lib = library('eina', sources, include_directories : config_dir, - dependencies: [execinfo, iconv, eina_deps, thread_dep, eina_mem_pools, evil, evil_unposix], + dependencies: eina_lib_deps, install: true, version : meson.project_version() ) @@ -396,7 +403,7 @@ install_headers(public_sub_headers, automatic_pkgfile = false -if sys_windows == false +if not sys_windows pkgconfig.generate(eina_lib, name : 'eina', subdirs : ['eina-'+version_major, 'efl-'+version_major, join_paths('eina-'+version_major, 'eina')], diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build index 3129abc0c1..21f53e50f6 100644 --- a/src/lib/elementary/meson.build +++ b/src/lib/elementary/meson.build @@ -258,7 +258,7 @@ endforeach eolian_include_directories += ['-I', meson.current_source_dir()] -if sys_windows == true +if sys_windows embed_script = find_program('config_embed.bat') else embed_script = find_program('config_embed') diff --git a/src/lib/elua/meson.build b/src/lib/elua/meson.build index 227d211584..2e72e12593 100644 --- a/src/lib/elua/meson.build +++ b/src/lib/elua/meson.build @@ -4,9 +4,14 @@ elua_pub_deps = [lua] elua_src = ['elua.c', 'io.c', 'cache.c'] elua_header_src = ['Elua.h'] +elua_lib_deps = [] +if not sys_windows + elua_lib_deps = [m, dl] +endif + elua_lib = library('elua', elua_src, - dependencies: [m, dl] + elua_deps + elua_pub_deps, + dependencies: elua_lib_deps + elua_deps + elua_pub_deps, include_directories : config_dir + [include_directories(join_paths('..','..'))], install: true, c_args : package_c_args, diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build index 1be2355315..453a350127 100644 --- a/src/lib/emile/meson.build +++ b/src/lib/emile/meson.build @@ -23,10 +23,16 @@ elif (get_option('crypto') == 'openssl') emile_src += 'emile_cipher_openssl.c' endif +if not sys_windows + emili_lib_deps = [lz4, rg_etc, m] +else + emili_lib_deps = [lz4, rg_etc] +endif + emile_lib = library('emile', emile_src, include_directories: config_dir, - dependencies: emile_pub_deps + emile_deps + [lz4, rg_etc], + dependencies: emile_pub_deps + emile_deps + emili_lib_deps, install: true, version : meson.project_version() ) diff --git a/src/lib/eo/meson.build b/src/lib/eo/meson.build index 20b7f3b88f..6746b60e79 100644 --- a/src/lib/eo/meson.build +++ b/src/lib/eo/meson.build @@ -43,16 +43,28 @@ endforeach eolian_include_directories += ['-I', meson.current_source_dir()] +if (sys_windows) + eo_lib_deps = [eina, valgrind, execinfo] +else + eo_lib_deps = [eina, valgrind, dl, execinfo] +endif + eo_lib = library('eo', eo_src, pub_eo_file_target, - dependencies: [eina, valgrind, execinfo], + dependencies: eo_lib_deps, install: true, version : meson.project_version(), ) +if sys_windows + eo_lib_dbg_deps = [eina, valgrind, execinfo] +else + eo_lib_dbg_deps = [eina, valgrind, dl, execinfo] +endif + eo_lib_dbg = library('eo_dbg', eo_src, pub_eo_file_target, - dependencies: [eina, valgrind, execinfo], + dependencies: eo_lib_dbg_deps, install: true, c_args : '-DEO_DEBUG', version : meson.project_version(), diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index 5af6c3f7ce..07c4e508f8 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -4,17 +4,24 @@ # as 'source :', later everything is build as libevas.so. # -png = dependency('libpng', required: false) -tiff = dependency('libtiff-4', required: get_option('evas-loaders-disabler').contains('tiff') == false) -if get_option('evas-loaders-disabler').contains('gif') - giflib = declare_dependency() +if not sys_windows + png = dependency('libpng') else - giflib = cc.find_library('gif') + png = declare_dependency() endif + +tiff = dependency('libtiff-4', required: get_option('evas-loaders-disabler').contains('tiff') == false) + +if not sys_windows + giflib = cc.find_library('gif') +elif get_option('evas-loaders-disabler').contains('gif') + giflib = declare_dependency() +endif + webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false) libopenjp2 = dependency('libopenjp2', required: get_option('evas-loaders-disabler').contains('jp2k') == false) -if get_option('evas-loaders-disabler').contains('generic') +if (sys_windows and get_option('evas-loaders-disabler').contains('generic')) rt = declare_dependency() endif @@ -147,7 +154,7 @@ evas_src_opt = [ ] evas_src += vg_common_src -if sys_windows == false +if not sys_windows evas_deps += dependency('freetype2') endif diff --git a/src/tests/elua/meson.build b/src/tests/elua/meson.build index 714e3f8e4b..e74498fb83 100644 --- a/src/tests/elua/meson.build +++ b/src/tests/elua/meson.build @@ -6,7 +6,13 @@ elua_suite_src = [ 'elua_lib.c' ] -elua_bindings_dir = join_paths(meson.source_root(), 'src', 'bindings') +if not sys_windows + elua_bindings_dir = join_paths(meson.source_root(), 'src' + , 'bindings', 'luajit') +else + elua_bindings_dir = join_paths(meson.source_root(), 'src', 'bindings') +endif + 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')