From 5d8b8eed90c52afbd54d7c057657dc12d1e8e61a Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Date: Fri, 17 May 2013 19:53:25 +0200
Subject: [PATCH] move module version header generation back to syncqt

there is no particular reason for it being done by qmake.
avoids that the logic is distributed over two source files,
and allows us to generate these headers at pre-build time already,
including not forwarding to a yet unexisting file (which would have a
yet unknown location).

Change-Id: I9c78ab425cf6f01d076c86fd1ee602626f231487
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
---
 bin/syncqt.pl                          | 13 ++++++++++++
 mkspecs/features/qt_module_headers.prf | 29 --------------------------
 2 files changed, 13 insertions(+), 29 deletions(-)

diff --git a/bin/syncqt.pl b/bin/syncqt.pl
index 8ce091053ff..f31466ad339 100755
--- a/bin/syncqt.pl
+++ b/bin/syncqt.pl
@@ -1094,6 +1094,19 @@ foreach my $lib (@modules_to_sync) {
         syncHeader($lib, $VHeader, $vheader, 0);
         $pri_install_files .= fixPaths($vheader, $dir) . " ";
         $pri_install_classes .= fixPaths($VHeader, $dir) . " ";
+        my @versions = split(/\./, $module_version);
+        my $modulehexstring = sprintf("0x%02X%02X%02X", $versions[0], $versions[1], $versions[2]);
+        my $vhdrcont =
+            "/* This file was generated by syncqt. */\n".
+            "#ifndef QT_".uc($lib)."_VERSION_H\n".
+            "#define QT_".uc($lib)."_VERSION_H\n".
+            "\n".
+            "#define ".uc($lib)."_VERSION_STR \"".$module_version."\"\n".
+            "\n".
+            "#define ".uc($lib)."_VERSION ".$modulehexstring."\n".
+            "\n".
+            "#endif // QT_".uc($lib)."_VERSION_H\n";
+        writeFile($vheader, $vhdrcont, $lib, "version header");
 
         #handle the headers.pri for each module
         my $headers_pri_contents = "";
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf
index 298ca102bc7..3c50e041c78 100644
--- a/mkspecs/features/qt_module_headers.prf
+++ b/mkspecs/features/qt_module_headers.prf
@@ -31,9 +31,6 @@ minimal_syncqt: return()
 #load up the headers info
 include($$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/headers.pri, "", true)
 
-lctarget = $$lower($$MODULE_INCNAME)
-uctarget = $$upper($$MODULE_INCNAME)
-
 defineTest(shouldMasterInclude) {
     bn = $$basename(1)
     contains(bn, .*_.*):return(false)
@@ -46,32 +43,6 @@ defineTest(shouldMasterInclude) {
 autogen_warning = \
     "/* This file was generated by qmake with the info from <root>/$$relative_path($$_PRO_FILE_, $$MODULE_BASE_DIR). */"
 
-# Create module version header
-MODULE_VERSION_HEADER = $$find(SYNCQT.HEADER_FILES, (^|/)$${lctarget}version\\.h$)
-count(MODULE_VERSION_HEADER, 1) {
-    MODULE_VERSION_HEADER = $$absolute_path($$MODULE_VERSION_HEADER, $$_PRO_FILE_PWD_)
-
-    !build_pass {
-        majorhexstr = $$format_number($$section(VERSION, ., 0, 0), width=2 zeropad obase=16)
-        minorhexstr = $$format_number($$section(VERSION, ., 1, 1), width=2 zeropad obase=16)
-        patchhexstr = $$format_number($$section(VERSION, ., 2, 2), width=2 zeropad obase=16)
-        modulehexstring = 0x$${majorhexstr}$${minorhexstr}$${patchhexstr}
-        MODULE_VERSION_HEADER_CONT = \
-            $$autogen_warning \
-            "$${LITERAL_HASH}ifndef QT_$${uctarget}_VERSION_H" \
-            "$${LITERAL_HASH}define QT_$${uctarget}_VERSION_H" \
-            "" \
-            "$${LITERAL_HASH}define $${uctarget}_VERSION_STR \"$$VERSION\"" \
-            "" \
-            "$${LITERAL_HASH}define $${uctarget}_VERSION $$modulehexstring" \
-            "" \
-            "$${LITERAL_HASH}endif // QT_$${uctarget}_VERSION_H"
-        write_file($$MODULE_VERSION_HEADER, MODULE_VERSION_HEADER_CONT)|error("Aborting.")
-    }
-
-    HEADERS += $$MODULE_VERSION_HEADER
-}
-
 # Create a module master header
 MODULE_MASTER_HEADER = $$MODULE_BASE_OUTDIR/include/$$MODULE_INCNAME/$$MODULE_INCNAME
 !build_pass {
-- 
GitLab