From 2a3e342740bd09099198890072296ef3be221ec1 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Wed, 23 Mar 2016 13:31:04 +0100 Subject: [PATCH] Remove code duplication for copying resources. qtcreatordata.pri was created for "conditional" copying of resources to the build tree. Adapt it a bit and use it for the "unconditionally" copied resources as well. A side effect is, that the unconditionally copied resources now are also installed file by file instead of the directory as a whole, which doesn't make a difference in the end result though. Change-Id: I6da3eeaadcb48c19987858bbb8c2d42ee149f6f3 Reviewed-by: Oswald Buddenhagen Reviewed-by: Eike Ziller --- qtcreatordata.pri | 20 ++++++++------ share/qtcreator/static.pro | 53 ++++-------------------------------- src/share/README | 2 -- src/share/qtcreator/data.pro | 22 +++++++++++++++ src/src.pro | 3 +- 5 files changed, 41 insertions(+), 59 deletions(-) delete mode 100644 src/share/README create mode 100644 src/share/qtcreator/data.pro diff --git a/qtcreatordata.pri b/qtcreatordata.pri index 27a21263f19..75251ccf0b3 100644 --- a/qtcreatordata.pri +++ b/qtcreatordata.pri @@ -4,24 +4,28 @@ # # Usage: Define variables (details below) and include this pri file afterwards. # -# STATIC_BASE - base directory for the files listed in STATIC_FILES -# STATIC_FILES - list of files to be deployed - -include(qtcreator.pri) +# STATIC_BASE - base directory for the files listed in STATIC_FILES +# STATIC_FILES - list of files to be deployed +# STATIC_OUTPUT_BASE - base directory in the compile output +# STATIC_INSTALL_BASE - base directory in the install output # used in custom compilers which just copy files defineReplace(stripStaticBase) { return($$relative_path($$1, $$STATIC_BASE)) } -# handle conditional copying; copydata will be set by qtcreator.pri +# handle conditional copying based on STATIC_BASE compared to STATIC_OUTPUT_BASE !isEmpty(STATIC_FILES) { isEmpty(STATIC_BASE): \ error("Using STATIC_FILES without having STATIC_BASE set") + isEmpty(STATIC_OUTPUT_BASE): \ + error("Using STATIC_FILES without having STATIC_OUTPUT_BASE set") + !osx:isEmpty(STATIC_INSTALL_BASE): \ + error("Using STATIC_FILES without having STATIC_INSTALL_BASE set") - !isEmpty(copydata) { + !isEqual(STATIC_BASE, $$STATIC_OUTPUT_BASE) { copy2build.input += STATIC_FILES - copy2build.output = $$IDE_DATA_PATH/${QMAKE_FUNC_FILE_IN_stripStaticBase} + copy2build.output = $$STATIC_OUTPUT_BASE/${QMAKE_FUNC_FILE_IN_stripStaticBase} isEmpty(vcproj):copy2build.variable_out = PRE_TARGETDEPS win32:copy2build.commands = $$QMAKE_COPY \"${QMAKE_FILE_IN}\" \"${QMAKE_FILE_OUT}\" unix:copy2build.commands = $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} @@ -33,7 +37,7 @@ defineReplace(stripStaticBase) { !osx { static.files = $$STATIC_FILES static.base = $$STATIC_BASE - static.path = $$INSTALL_DATA_PATH + static.path = $$STATIC_INSTALL_BASE INSTALLS += static } } diff --git a/share/qtcreator/static.pro b/share/qtcreator/static.pro index ec7a5a9839e..9b3b102b9e5 100644 --- a/share/qtcreator/static.pro +++ b/share/qtcreator/static.pro @@ -1,8 +1,11 @@ TEMPLATE = aux -STATIC_BASE = $$PWD +include(../../qtcreator.pri) + +STATIC_BASE = $$PWD +STATIC_OUTPUT_BASE = $$IDE_DATA_PATH +STATIC_INSTALL_BASE = $$INSTALL_DATA_PATH -# files/folders that are conditionally "deployed" to the build directory DATA_DIRS = \ welcomescreen \ examplebrowser \ @@ -32,49 +35,3 @@ for(data_dir, DATA_DIRS) { } include(../../qtcreatordata.pri) - -SRCRESOURCEDIR = $$IDE_SOURCE_TREE/src/share/qtcreator/ -defineReplace(stripSrcResourceDir) { - win32 { - !contains(1, ^.:.*):1 = $$OUT_PWD/$$1 - } else { - !contains(1, ^/.*):1 = $$OUT_PWD/$$1 - } - out = $$clean_path($$1) - out ~= s|^$$re_escape($$SRCRESOURCEDIR)||$$i_flag - return($$out) -} - -# files that are to be unconditionally "deployed" to the build dir from src/share to share -DATA_DIRS = \ - externaltools -DATA_FILES_SRC = \ - externaltools/lrelease.xml \ - externaltools/lupdate.xml \ - externaltools/sort.xml \ - externaltools/qmlviewer.xml \ - externaltools/qmlscene.xml -unix { - macx:DATA_FILES_SRC += externaltools/vi_mac.xml - else:DATA_FILES_SRC += externaltools/vi.xml -} else { - DATA_FILES_SRC += externaltools/notepad_win.xml -} -for(file, DATA_FILES_SRC):DATA_FILES += $${SRCRESOURCEDIR}$$file -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 - -!macx { - for(data_dir, DATA_DIRS) { - $${data_dir}.files = $$IDE_DATA_PATH/$$data_dir - $${data_dir}.path = $$INSTALL_DATA_PATH - $${data_dir}.CONFIG += no_check_exist - INSTALLS += $$data_dir - } -} diff --git a/src/share/README b/src/share/README deleted file mode 100644 index 6b930079d4a..00000000000 --- a/src/share/README +++ /dev/null @@ -1,2 +0,0 @@ -This directory contains *only* data files which are installed conditionally. -The installation code is in ../../share/qtcreator/static.pro diff --git a/src/share/qtcreator/data.pro b/src/share/qtcreator/data.pro new file mode 100644 index 00000000000..5ae7d1d2697 --- /dev/null +++ b/src/share/qtcreator/data.pro @@ -0,0 +1,22 @@ +TEMPLATE = aux + +include(../../../qtcreator.pri) + +STATIC_BASE = $$PWD +STATIC_OUTPUT_BASE = $$IDE_DATA_PATH +STATIC_INSTALL_BASE = $$INSTALL_DATA_PATH + +STATIC_FILES = \ + $$PWD/externaltools/lrelease.xml \ + $$PWD/externaltools/lupdate.xml \ + $$PWD/externaltools/sort.xml \ + $$PWD/externaltools/qmlviewer.xml \ + $$PWD/externaltools/qmlscene.xml +unix { + osx:STATIC_FILES += $$PWD/externaltools/vi_mac.xml + else:STATIC_FILES += $$PWD/externaltools/vi.xml +} else { + STATIC_FILES += $$PWD/externaltools/notepad_win.xml +} + +include(../../../qtcreatordata.pri) diff --git a/src/src.pro b/src/src.pro index ee25d3dbc5d..0cbba619fd0 100644 --- a/src/src.pro +++ b/src/src.pro @@ -31,4 +31,5 @@ SUBDIRS += \ libs \ app \ plugins \ - tools + tools \ + share/qtcreator/data.pro