q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5a3d79d3833a85675a26875594b5b07a99d79365

commit 5a3d79d3833a85675a26875594b5b07a99d79365
Author: Daniel Kolesa <[email protected]>
Date:   Sun Oct 21 15:55:51 2018 +0200

    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.
---
 src/lib/ecore/meson.build                          | 20 ++++++++++---
 src/lib/ecore_audio/meson.build                    |  4 ++-
 src/lib/ecore_con/meson.build                      | 27 ++++++++++++-----
 src/lib/ector/cairo/meson.build                    |  4 ++-
 src/lib/ector/gl/meson.build                       |  4 ++-
 src/lib/ector/meson.build                          |  8 +++--
 src/lib/ector/software/meson.build                 |  4 ++-
 src/lib/edje/meson.build                           | 24 +++++++++++----
 src/lib/efl/interfaces/meson.build                 | 24 +++++++++++----
 src/lib/eio/meson.build                            |  4 ++-
 src/lib/eldbus/meson.build                         |  8 +++--
 src/lib/elementary/meson.build                     | 19 ++++++++----
 src/lib/emotion/meson.build                        | 16 ++++++++--
 src/lib/eo/meson.build                             |  4 ++-
 src/lib/evas/canvas/meson.build                    | 23 ++++++++++++---
 src/lib/evas/gesture/meson.build                   | 34 ++++++++++++++++++----
 src/lib/evas/include/meson.build                   |  4 ++-
 src/lib/evas/meson.build                           | 24 +++++++++++----
 src/modules/elementary/web/none/meson.build        |  4 ++-
 src/modules/evas/engines/gl_generic/meson.build    |  4 ++-
 .../evas/engines/software_generic/meson.build      |  4 ++-
 src/tests/elementary/meson.build                   |  4 ++-
 src/tests/eolian/meson.build                       |  4 ++-
 23 files changed, 215 insertions(+), 60 deletions(-)

diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build
index 732856dd23..dbb511e2bf 100644
--- a/src/lib/ecore/meson.build
+++ b/src/lib/ecore/meson.build
@@ -12,15 +12,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : dir_package_include,
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_files = [
@@ -72,12 +82,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 # special handling, because this is already eo API and legacy API
diff --git a/src/lib/ecore_audio/meson.build b/src/lib/ecore_audio/meson.build
index 099f8454db..6fdd5a30b4 100644
--- a/src/lib/ecore_audio/meson.build
+++ b/src/lib/ecore_audio/meson.build
@@ -16,12 +16,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 pub_eo_types_files = []
diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build
index b8b5a36b2a..f945ccd0d4 100644
--- a/src/lib/ecore_con/meson.build
+++ b/src/lib/ecore_con/meson.build
@@ -27,15 +27,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : dir_package_include,
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_files = [
@@ -85,14 +95,15 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
@@ -106,11 +117,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/ector/cairo/meson.build b/src/lib/ector/cairo/meson.build
index 2b45ce2b87..e9ebc60708 100644
--- a/src/lib/ector/cairo/meson.build
+++ b/src/lib/ector/cairo/meson.build
@@ -21,12 +21,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 install_data(pub_eo_files,
diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build
index dad958c0fc..11bb8cfc6a 100644
--- a/src/lib/ector/gl/meson.build
+++ b/src/lib/ector/gl/meson.build
@@ -24,12 +24,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 install_data(pub_eo_files,
diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build
index be3c6a5f62..58e4f96d53 100644
--- a/src/lib/ector/meson.build
+++ b/src/lib/ector/meson.build
@@ -34,12 +34,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
@@ -60,11 +62,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 ector_lib = library('ector',
diff --git a/src/lib/ector/software/meson.build 
b/src/lib/ector/software/meson.build
index ceb08ef3f2..5e5dc599d7 100644
--- a/src/lib/ector/software/meson.build
+++ b/src/lib/ector/software/meson.build
@@ -23,12 +23,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 install_data(pub_eo_files,
diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build
index bcfcd9b569..bd2374637b 100644
--- a/src/lib/edje/meson.build
+++ b/src/lib/edje/meson.build
@@ -42,15 +42,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : dir_package_include,
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_types_files = [
@@ -61,11 +71,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 priv_eo_files = [
@@ -77,9 +89,11 @@ foreach eo_file : priv_eo_files
   priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'h:' + join_paths(meson.current_build_dir(), 
eo_file + '.h'),
-                           '-gch', '@INPUT@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
diff --git a/src/lib/efl/interfaces/meson.build 
b/src/lib/efl/interfaces/meson.build
index 8d29c404a8..cb39cff2e5 100644
--- a/src/lib/efl/interfaces/meson.build
+++ b/src/lib/efl/interfaces/meson.build
@@ -18,15 +18,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : join_paths(dir_package_include, 'interfaces'),
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_files = [
@@ -99,12 +109,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 pub_eo_types_files = [
@@ -119,11 +131,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build
index fd6902f38b..c3410d752e 100644
--- a/src/lib/eio/meson.build
+++ b/src/lib/eio/meson.build
@@ -10,13 +10,15 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 pub_eo_types_files = []
diff --git a/src/lib/eldbus/meson.build b/src/lib/eldbus/meson.build
index 57f2981c4a..fcb452c8a3 100644
--- a/src/lib/eldbus/meson.build
+++ b/src/lib/eldbus/meson.build
@@ -15,12 +15,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
@@ -32,11 +34,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index 16ea518792..31bc4fede2 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -117,13 +117,15 @@ 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',],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchld', '@INPUT@'])
 
 endforeach
 
@@ -277,14 +279,15 @@ 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'],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
@@ -300,11 +303,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 priv_eo_files = [
@@ -323,10 +328,12 @@ foreach eo_file : priv_eo_files
   priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/emotion/meson.build b/src/lib/emotion/meson.build
index 56fda43cb9..1caea9dcee 100644
--- a/src/lib/emotion/meson.build
+++ b/src/lib/emotion/meson.build
@@ -8,15 +8,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : dir_package_include,
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/eo/meson.build b/src/lib/eo/meson.build
index 5789c95f4c..34f60aac76 100644
--- a/src/lib/eo/meson.build
+++ b/src/lib/eo/meson.build
@@ -32,12 +32,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
index 47db33de4b..982d8f3af1 100644
--- a/src/lib/evas/canvas/meson.build
+++ b/src/lib/evas/canvas/meson.build
@@ -14,13 +14,15 @@ 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',],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchld', '@INPUT@'])
 
 endforeach
 
@@ -82,14 +84,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : join_paths(dir_package_include, 'canvas'),
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 
@@ -102,11 +115,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 pub_evas_eot_files += files(pub_eo_types_files)
diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build
index 62d9b27599..a6289264eb 100644
--- a/src/lib/evas/gesture/meson.build
+++ b/src/lib/evas/gesture/meson.build
@@ -10,14 +10,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : join_paths(dir_package_include, 'gesture'),
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_evas_eo_files += files(pub_eo_files)
@@ -30,14 +41,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : false,
+    install_dir : join_paths(dir_package_include, 'gesture'),
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_types_files = [
@@ -50,11 +72,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 evas_src += files([
diff --git a/src/lib/evas/include/meson.build b/src/lib/evas/include/meson.build
index aaeeb9ba66..a833f67b40 100644
--- a/src/lib/evas/include/meson.build
+++ b/src/lib/evas/include/meson.build
@@ -9,10 +9,12 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index 8498016763..9c118030fe 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -26,15 +26,25 @@ 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',],
+    output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
+  pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
+    input : eo_file,
+    output : [eo_file + '.legacy.h'],
+    depfile : eo_file + '.legacy.d',
+    install : true,
+    install_dir : dir_package_include,
+    command : [eolian_gen, '-I', meson.current_source_dir(), 
eolian_include_directories,
                            '-o', 'l:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.h'),
-                           '-gchl', '@INPUT@'])
-
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.legacy.d'),
+                           '-gld', '@INPUT@'])
 endforeach
 
 pub_eo_files = [
@@ -45,12 +55,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
@@ -62,11 +74,13 @@ foreach eo_file : pub_eo_types_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-ghd', '@INPUT@'])
 endforeach
 
 eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/modules/elementary/web/none/meson.build 
b/src/modules/elementary/web/none/meson.build
index ddbd9c2f2e..18a5aa4187 100644
--- a/src/modules/elementary/web/none/meson.build
+++ b/src/modules/elementary/web/none/meson.build
@@ -7,12 +7,14 @@ foreach eo_file : pub_eo_files
   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
diff --git a/src/modules/evas/engines/gl_generic/meson.build 
b/src/modules/evas/engines/gl_generic/meson.build
index bfa7e82a6d..5d29b4e020 100644
--- a/src/modules/evas/engines/gl_generic/meson.build
+++ b/src/modules/evas/engines/gl_generic/meson.build
@@ -24,10 +24,12 @@ foreach eo_file : pub_eo_files
   engine_src += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 engine_deps = [gl_common]
diff --git a/src/modules/evas/engines/software_generic/meson.build 
b/src/modules/evas/engines/software_generic/meson.build
index 7571ca3bc1..fe3ef78ee8 100644
--- a/src/modules/evas/engines/software_generic/meson.build
+++ b/src/modules/evas/engines/software_generic/meson.build
@@ -20,10 +20,12 @@ foreach eo_file : pub_eo_files
   engine_src += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 engine_deps = [draw, dl]
diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build
index 0f083672cd..b6073af73d 100644
--- a/src/tests/elementary/meson.build
+++ b/src/tests/elementary/meson.build
@@ -8,10 +8,12 @@ foreach eo_file : priv_eo_files
   priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 
diff --git a/src/tests/eolian/meson.build b/src/tests/eolian/meson.build
index 01fd6d3c10..4c6102a78d 100644
--- a/src/tests/eolian/meson.build
+++ b/src/tests/eolian/meson.build
@@ -16,10 +16,12 @@ foreach eo_file : priv_eo_files
   priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
     input : eo_file,
     output : [eo_file + '.h'],
+    depfile : eo_file + '.d',
     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@'])
+                           '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+                           '-gchd', '@INPUT@'])
 endforeach
 
 eolian_suite = executable('eolian_suite',

-- 


Reply via email to