summaryrefslogtreecommitdiff
path: root/src/lib/evas/gesture
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2018-10-21 15:55:51 +0200
committerDaniel Kolesa <d.kolesa@samsung.com>2018-10-24 12:02:55 +0200
commit5a3d79d3833a85675a26875594b5b07a99d79365 (patch)
treee264900c8e160240eaafc45f5d739d611374b4ee /src/lib/evas/gesture
parentd82deea833d1adf993b115049ee60b628c530420 (diff)
meson: add eolian custom dependencies support
This uses the meson/ninja depfile functionality + eolian to make sure proper dependencies between generated files and .eo files are managed, to ensure consistent re-generation of all generated files that are affected upon .eo file modification. For custom rules with multiple outputs, Ninja currently does not support depfiles. Therefore, split those into two custom rules so that the depfiles functionality can be enabled. While this is ugly and slows down the process a little by having to invoke Eolian twice instead of once, it has to be done and it's still better than what we had in Autotools anyway. Differential revision: D7187 Fixes T6700.
Diffstat (limited to 'src/lib/evas/gesture')
-rw-r--r--src/lib/evas/gesture/meson.build34
1 files changed, 29 insertions, 5 deletions
diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build
index 62d9b27..a628926 100644
--- a/src/lib/evas/gesture/meson.build
+++ b/src/lib/evas/gesture/meson.build
@@ -10,14 +10,25 @@ pub_eo_files = [
10foreach eo_file : pub_eo_files 10foreach eo_file : pub_eo_files
11 pub_eo_file_target += custom_target('eolian_gen_' + eo_file, 11 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
12 input : eo_file, 12 input : eo_file,
13 output : [eo_file + '.h', eo_file + '.legacy.h',], 13 output : [eo_file + '.h'],
14 depfile : eo_file + '.d',
14 install : true, 15 install : true,
15 install_dir : join_paths(dir_package_include, 'gesture'), 16 install_dir : join_paths(dir_package_include, 'gesture'),
16 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, 17 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
17 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), 18 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
18 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), 19 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
20 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
21 '-gchd', '@INPUT@'])
22 pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
23 input : eo_file,
24 output : [eo_file + '.legacy.h'],
25 depfile : eo_file + '.legacy.d',
26 install : true,
27 install_dir : join_paths(dir_package_include, 'gesture'),
28 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
19 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), 29 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
20 '-gchl', '@INPUT@']) 30 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'),
31 '-gld', '@INPUT@'])
21endforeach 32endforeach
22 33
23pub_evas_eo_files += files(pub_eo_files) 34pub_evas_eo_files += files(pub_eo_files)
@@ -30,14 +41,25 @@ pub_eo_files = [
30foreach eo_file : pub_eo_files 41foreach eo_file : pub_eo_files
31 pub_eo_file_target += custom_target('eolian_gen_' + eo_file, 42 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
32 input : eo_file, 43 input : eo_file,
33 output : [eo_file + '.h', eo_file + '.legacy.h',], 44 output : [eo_file + '.h'],
45 depfile : eo_file + '.d',
34 install : false, 46 install : false,
35 install_dir : join_paths(dir_package_include, 'gesture'), 47 install_dir : join_paths(dir_package_include, 'gesture'),
36 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, 48 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
37 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), 49 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
38 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), 50 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
51 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
52 '-gchd', '@INPUT@'])
53 pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
54 input : eo_file,
55 output : [eo_file + '.legacy.h'],
56 depfile : eo_file + '.legacy.d',
57 install : false,
58 install_dir : join_paths(dir_package_include, 'gesture'),
59 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
39 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), 60 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
40 '-gchl', '@INPUT@']) 61 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'),
62 '-gld', '@INPUT@'])
41endforeach 63endforeach
42 64
43pub_eo_types_files = [ 65pub_eo_types_files = [
@@ -50,11 +72,13 @@ foreach eo_file : pub_eo_types_files
50 pub_eo_file_target += custom_target('eolian_gen_' + eo_file, 72 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
51 input : eo_file, 73 input : eo_file,
52 output : [eo_file + '.h'], 74 output : [eo_file + '.h'],
75 depfile : eo_file + '.d',
53 install : true, 76 install : true,
54 install_dir : join_paths(dir_package_include, 'gesture'), 77 install_dir : join_paths(dir_package_include, 'gesture'),
55 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, 78 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
56 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), 79 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
57 '-gh', '@INPUT@']) 80 '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
81 '-ghd', '@INPUT@'])
58endforeach 82endforeach
59 83
60evas_src += files([ 84evas_src += files([