From c14fd1e0b6c9a6a27d247d14ae59cb1e1b6532ae Mon Sep 17 00:00:00 2001
From: con <qtc-committer@nokia.com>
Date: Wed, 15 Dec 2010 12:49:11 +0100
Subject: [PATCH] Fix deployment of external tools on Linux/Win

---
 .gitignore                                    |  1 +
 share/qtcreator/static.pro                    | 39 +++++++++++++------
 .../qtcreator/externaltools/lrelease.xml      |  0
 .../qtcreator/externaltools/lupdate.xml       |  0
 .../share}/qtcreator/externaltools/sort.xml   |  0
 .../share}/qtcreator/externaltools/vi.xml     |  0
 .../share}/qtcreator/externaltools/vi_mac.xml |  0
 7 files changed, 28 insertions(+), 12 deletions(-)
 rename {share => src/share}/qtcreator/externaltools/lrelease.xml (100%)
 rename {share => src/share}/qtcreator/externaltools/lupdate.xml (100%)
 rename {share => src/share}/qtcreator/externaltools/sort.xml (100%)
 rename {share => src/share}/qtcreator/externaltools/vi.xml (100%)
 rename {share => src/share}/qtcreator/externaltools/vi_mac.xml (100%)

diff --git a/.gitignore b/.gitignore
index 2202b168f48..f5d119ec6e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@ Thumbs.db
 *.pluginspec
 src/app/Info.plist
 src/plugins/coreplugin/ide_version.h
+share/qtcreator/externaltools
 
 # xemacs temporary files
 *.flc
diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro
index f870be90935..b4dd3908199 100644
--- a/share/qtcreator/static.pro
+++ b/share/qtcreator/static.pro
@@ -39,17 +39,36 @@ DATA_DIRS = \
     generic-highlighter \
     glsl
 
-DATA_FILES = \
+# files that are to be unconditionally "deployed" to the build dir from src/share to share
+defineReplace(stripSrcResourceDir) {
+    win32 {
+        !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
+    } else {
+        !contains(1, ^/.*):1 = $$OUT_PWD/$$1
+    }
+    out = $$cleanPath($$1)
+    out ~= s|^$$re_escape($$IDE_SOURCE_TREE/src/share/qtcreator/)||$$i_flag
+    return($$out)
+}
+DATA_FILES_SRC = \
     externaltools/lrelease.xml \
     externaltools/lupdate.xml
-unix:DATA_FILES += externaltools/sort.xml
-linux-*:DATA_FILES += externaltools/vi.xml
-macx:DATA_FILES += externaltools/vi_mac.xml
-#macx:DATA_FILES += runInTerminal.command
-win32:DATA_FILES ~= s|\\\\|/|g
-
-OTHER_FILES += $$DATA_FILES
+unix:DATA_FILES_SRC += externaltools/sort.xml
+linux-*:DATA_FILES_SRC += externaltools/vi.xml
+macx:DATA_FILES_SRC += externaltools/vi_mac.xml
+win32:DATA_FILES_SRC ~= s|\\\\|/|g
+for(file, DATA_FILES_SRC):DATA_FILES += $$IDE_SOURCE_TREE/src/share/qtcreator/$$file
+macx:OTHER_FILES += $$DATA_FILES
+unconditionalCopy2build.input = DATA_FILES
+unconditionalCopy2build.output = $$IDE_DATA_PATH/${QMAKE_FUNC_FILE_IN_stripSrcResourceDir}
+isEmpty(vcproj):unconditionalCopy2build.variable_out = PRE_TARGETDEPS
+win32:unconditionalCopy2build.commands = $$QMAKE_COPY \"${QMAKE_FILE_IN}\" \"${QMAKE_FILE_OUT}\"
+unix:unconditionalCopy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT}
+unconditionalCopy2build.name = COPY ${QMAKE_FILE_IN}
+unconditionalCopy2build.CONFIG += no_link
+QMAKE_EXTRA_COMPILERS += unconditionalCopy2build
 
+# conditionally deployed data
 !isEmpty(copydata) {
 
     for(data_dir, DATA_DIRS) {
@@ -57,7 +76,6 @@ OTHER_FILES += $$DATA_FILES
         win32:files ~= s|\\\\|/|g
         for(file, files):!exists($$file/*):FILES += $$file
     }
-    for(file, DATA_FILES):FILES += $$PWD/$$file
 
     macx:OTHER_FILES += $$FILES
     copy2build.input = FILES
@@ -76,7 +94,4 @@ OTHER_FILES += $$DATA_FILES
         eval($${data_dir}.path = /share/qtcreator)
         INSTALLS += $$data_dir
     }
-    data_files.files = $$DATA_FILES
-    data_files.path = /share/qtcreator
-    INSTALLS += $$data_files
 }
diff --git a/share/qtcreator/externaltools/lrelease.xml b/src/share/qtcreator/externaltools/lrelease.xml
similarity index 100%
rename from share/qtcreator/externaltools/lrelease.xml
rename to src/share/qtcreator/externaltools/lrelease.xml
diff --git a/share/qtcreator/externaltools/lupdate.xml b/src/share/qtcreator/externaltools/lupdate.xml
similarity index 100%
rename from share/qtcreator/externaltools/lupdate.xml
rename to src/share/qtcreator/externaltools/lupdate.xml
diff --git a/share/qtcreator/externaltools/sort.xml b/src/share/qtcreator/externaltools/sort.xml
similarity index 100%
rename from share/qtcreator/externaltools/sort.xml
rename to src/share/qtcreator/externaltools/sort.xml
diff --git a/share/qtcreator/externaltools/vi.xml b/src/share/qtcreator/externaltools/vi.xml
similarity index 100%
rename from share/qtcreator/externaltools/vi.xml
rename to src/share/qtcreator/externaltools/vi.xml
diff --git a/share/qtcreator/externaltools/vi_mac.xml b/src/share/qtcreator/externaltools/vi_mac.xml
similarity index 100%
rename from share/qtcreator/externaltools/vi_mac.xml
rename to src/share/qtcreator/externaltools/vi_mac.xml
-- 
GitLab