summaryrefslogtreecommitdiffstats
path: root/Source/cmQtAutoGenerators.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-09-17 00:42:30 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-10-24 17:45:27 (GMT)
commit6e1c359fe9bee71c421a671108176d47fb415d93 (patch)
tree7672d870bac30b8ede0e201558155e5107cdb9b9 /Source/cmQtAutoGenerators.h
parenta29953180c21ba0d56fb236eb58bafd40ae68961 (diff)
downloadCMake-6e1c359fe9bee71c421a671108176d47fb415d93.zip
CMake-6e1c359fe9bee71c421a671108176d47fb415d93.tar.gz
CMake-6e1c359fe9bee71c421a671108176d47fb415d93.tar.bz2
QtAutogen: Regenerate qrc files if their input changes (#15074)
Get dependencies from the output of ``rcc --list`` if using Qt 5. Otherwise process the file in the same way as the qt4_add_resources macro. This does not work for RCC files which are generated. The cmake_autogen build step is implemented as a PRE_BUILD step of the target currently if possible, rather than a standalone custom target. This is to keep the number of (synthesized) custom targets that appear in the UI low, but in some cases it is necessary to fall back to a full custom target. Fall back to a full custom target for the VS builds if autorcc is used.
Diffstat (limited to 'Source/cmQtAutoGenerators.h')
-rw-r--r--Source/cmQtAutoGenerators.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h
index ce27852..79fa5df 100644
--- a/Source/cmQtAutoGenerators.h
+++ b/Source/cmQtAutoGenerators.h
@@ -88,6 +88,15 @@ private:
std::string GetRccExecutable(cmTarget const* target);
+ std::string ListQt5RccInputs(cmSourceFile* sf, cmTarget const* target,
+ std::vector<std::string>& depends);
+
+ std::string ListQt4RccInputs(cmSourceFile* sf,
+ std::vector<std::string>& depends);
+
+ bool InputFilesNewerThanQrc(const std::string& qrcFile,
+ const std::string& rccOutput);
+
std::string QtMajorVersion;
std::string Sources;
std::vector<std::string> RccSources;
@@ -118,6 +127,7 @@ private:
std::vector<std::string> UicTargetOptions;
std::map<std::string, std::string> UicOptions;
std::map<std::string, std::string> RccOptions;
+ std::map<std::string, std::vector<std::string> > RccInputs;
bool Verbose;
bool ColorOutput;