Alexandre Julliard : makefiles: Also look for generated includes in the source file directory.

Alexandre Julliard julliard at winehq.org
Fri Jan 21 15:54:47 CST 2022


Module: wine
Branch: master
Commit: 5d4ca2225e8edecbaab25545d6a08d40e54cfca9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=5d4ca2225e8edecbaab25545d6a08d40e54cfca9

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Jan 21 09:49:19 2022 +0100

makefiles: Also look for generated includes in the source file directory.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tools/makedep.c | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/tools/makedep.c b/tools/makedep.c
index a4557785f3a..04cb14504b5 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1203,6 +1203,28 @@ static struct file *open_file_same_dir( const struct incl_file *parent, const ch
 }
 
 
+/*******************************************************************
+ *         open_same_dir_generated_file
+ *
+ * Open a generated_file in the same directory as the parent.
+ */
+static struct file *open_same_dir_generated_file( const struct makefile *make,
+                                                  const struct incl_file *parent, struct incl_file *file,
+                                                  const char *ext, const char *src_ext )
+{
+    char *filename;
+    struct file *ret = NULL;
+
+    if (strendswith( file->name, ext ) &&
+        (ret = open_file_same_dir( parent, replace_extension( file->name, ext, src_ext ), &filename )))
+    {
+        file->sourcename = filename;
+        file->filename = obj_dir_path( make, replace_filename( parent->name, file->name ));
+    }
+    return ret;
+}
+
+
 /*******************************************************************
  *         open_local_file
  *
@@ -1426,7 +1448,9 @@ static struct file *open_include_file( const struct makefile *make, struct incl_
     if (pFile->type == INCL_SYSTEM) return NULL;  /* ignore system files we cannot find */
 
     /* try in src file directory */
-    if ((file = open_file_same_dir( pFile->included_by, pFile->name, &pFile->filename )))
+    if ((file = open_same_dir_generated_file( make, pFile->included_by, pFile, ".tab.h", ".y" )) ||
+        (file = open_same_dir_generated_file( make, pFile->included_by, pFile, ".h", ".idl" )) ||
+        (file = open_file_same_dir( pFile->included_by, pFile->name, &pFile->filename )))
     {
         pFile->is_external = pFile->included_by->is_external;
         return file;




More information about the wine-cvs mailing list