aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/edje
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-08-12 15:26:29 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-10-02 17:22:50 +0200
commit46d464e5bfc10398461a33a2256c1c58d509dd1a (patch)
tree8c1a9272c05f14033a4430bc122632461bd73608 /src/lib/edje
parentecore_cocoa: stop leaking init counts (diff)
downloadefl-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 https://phab.enlightenment.org/D7011
Diffstat (limited to 'src/lib/edje')
-rw-r--r--src/lib/edje/meson.build160
1 files changed, 160 insertions, 0 deletions
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,
+)