mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-29 10:39:28 -05:00
Autogen: Detect rcc feature once during configuration
We used to detect the `rcc` features before every `rcc` list invocation wich resulted in `rcc` be called twice for every listing operation. Now we detect the `rcc` list capabilities once during configuration and pass it to the cmake_autorcc target in the info file.
This commit is contained in:
@@ -7,5 +7,5 @@ set(ARCC_CMAKE_CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@/")
|
|||||||
set(ARCC_CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@/")
|
set(ARCC_CMAKE_CURRENT_BINARY_DIR "@CMAKE_CURRENT_BINARY_DIR@/")
|
||||||
set(ARCC_BUILD_DIR @_build_dir@)
|
set(ARCC_BUILD_DIR @_build_dir@)
|
||||||
# Qt environment
|
# Qt environment
|
||||||
set(ARCC_QT_VERSION_MAJOR @_qt_version_major@)
|
set(ARCC_RCC_EXECUTABLE @_qt_rcc_executable@)
|
||||||
set(ARCC_QT_RCC_EXECUTABLE @_qt_rcc_executable@)
|
set(ARCC_RCC_LIST_OPTIONS @_qt_rcc_list_options@)
|
||||||
|
|||||||
+38
-53
@@ -80,16 +80,6 @@ void MergeOptions(std::vector<std::string>& baseOpts,
|
|||||||
baseOpts.insert(baseOpts.end(), extraOpts.begin(), extraOpts.end());
|
baseOpts.insert(baseOpts.end(), extraOpts.begin(), extraOpts.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string utilStripCR(std::string const& line)
|
|
||||||
{
|
|
||||||
// Strip CR characters rcc may have printed (possibly more than one!).
|
|
||||||
std::string::size_type cr = line.find('\r');
|
|
||||||
if (cr != std::string::npos) {
|
|
||||||
return line.substr(0, cr);
|
|
||||||
}
|
|
||||||
return line;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// @brief Reads the resource files list from from a .qrc file - Qt4 version
|
/// @brief Reads the resource files list from from a .qrc file - Qt4 version
|
||||||
/// @return True if the .qrc file was successfully parsed
|
/// @return True if the .qrc file was successfully parsed
|
||||||
static bool RccListInputsQt4(std::string const& fileName,
|
static bool RccListInputsQt4(std::string const& fileName,
|
||||||
@@ -107,10 +97,10 @@ static bool RccListInputsQt4(std::string const& fileName,
|
|||||||
qrcContents = osst.str();
|
qrcContents = osst.str();
|
||||||
} else {
|
} else {
|
||||||
if (errorMessage != nullptr) {
|
if (errorMessage != nullptr) {
|
||||||
std::ostringstream ost;
|
std::string& err = *errorMessage;
|
||||||
ost << "rcc file not readable:\n"
|
err = "rcc file not readable:\n ";
|
||||||
<< " " << cmQtAutoGen::Quoted(fileName) << "\n";
|
err += cmQtAutoGen::Quoted(fileName);
|
||||||
*errorMessage = ost.str();
|
err += "\n";
|
||||||
}
|
}
|
||||||
allGood = false;
|
allGood = false;
|
||||||
}
|
}
|
||||||
@@ -146,6 +136,7 @@ static bool RccListInputsQt4(std::string const& fileName,
|
|||||||
/// @brief Reads the resource files list from from a .qrc file - Qt5 version
|
/// @brief Reads the resource files list from from a .qrc file - Qt5 version
|
||||||
/// @return True if the .qrc file was successfully parsed
|
/// @return True if the .qrc file was successfully parsed
|
||||||
static bool RccListInputsQt5(std::string const& rccCommand,
|
static bool RccListInputsQt5(std::string const& rccCommand,
|
||||||
|
std::vector<std::string> const& rccListOptions,
|
||||||
std::string const& fileName,
|
std::string const& fileName,
|
||||||
std::vector<std::string>& files,
|
std::vector<std::string>& files,
|
||||||
std::string* errorMessage)
|
std::string* errorMessage)
|
||||||
@@ -155,24 +146,6 @@ static bool RccListInputsQt5(std::string const& rccCommand,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read rcc features
|
|
||||||
bool hasDashDashList = false;
|
|
||||||
{
|
|
||||||
std::vector<std::string> command;
|
|
||||||
command.push_back(rccCommand);
|
|
||||||
command.push_back("--help");
|
|
||||||
std::string rccStdOut;
|
|
||||||
std::string rccStdErr;
|
|
||||||
int retVal = 0;
|
|
||||||
bool result = cmSystemTools::RunSingleCommand(
|
|
||||||
command, &rccStdOut, &rccStdErr, &retVal, nullptr,
|
|
||||||
cmSystemTools::OUTPUT_NONE, 0.0, cmProcessOutput::Auto);
|
|
||||||
if (result && retVal == 0 &&
|
|
||||||
rccStdOut.find("--list") != std::string::npos) {
|
|
||||||
hasDashDashList = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string const fileDir = cmSystemTools::GetFilenamePath(fileName);
|
std::string const fileDir = cmSystemTools::GetFilenamePath(fileName);
|
||||||
std::string const fileNameName = cmSystemTools::GetFilenameName(fileName);
|
std::string const fileNameName = cmSystemTools::GetFilenameName(fileName);
|
||||||
|
|
||||||
@@ -184,7 +157,8 @@ static bool RccListInputsQt5(std::string const& rccCommand,
|
|||||||
{
|
{
|
||||||
std::vector<std::string> command;
|
std::vector<std::string> command;
|
||||||
command.push_back(rccCommand);
|
command.push_back(rccCommand);
|
||||||
command.push_back(hasDashDashList ? "--list" : "-list");
|
command.insert(command.end(), rccListOptions.begin(),
|
||||||
|
rccListOptions.end());
|
||||||
command.push_back(fileNameName);
|
command.push_back(fileNameName);
|
||||||
result = cmSystemTools::RunSingleCommand(
|
result = cmSystemTools::RunSingleCommand(
|
||||||
command, &rccStdOut, &rccStdErr, &retVal, fileDir.c_str(),
|
command, &rccStdOut, &rccStdErr, &retVal, fileDir.c_str(),
|
||||||
@@ -192,22 +166,32 @@ static bool RccListInputsQt5(std::string const& rccCommand,
|
|||||||
}
|
}
|
||||||
if (!result || retVal) {
|
if (!result || retVal) {
|
||||||
if (errorMessage != nullptr) {
|
if (errorMessage != nullptr) {
|
||||||
std::ostringstream ost;
|
std::string& err = *errorMessage;
|
||||||
ost << "rcc list process failed for\n " << cmQtAutoGen::Quoted(fileName)
|
err = "rcc list process failed for:\n ";
|
||||||
<< "\n"
|
err += cmQtAutoGen::Quoted(fileName);
|
||||||
<< rccStdOut << "\n"
|
err += "\n";
|
||||||
<< rccStdErr << "\n";
|
err += rccStdOut;
|
||||||
*errorMessage = ost.str();
|
err += "\n";
|
||||||
|
err += rccStdErr;
|
||||||
|
err += "\n";
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lambda to strip CR characters
|
||||||
|
auto StripCR = [](std::string& line) {
|
||||||
|
std::string::size_type cr = line.find('\r');
|
||||||
|
if (cr != std::string::npos) {
|
||||||
|
line = line.substr(0, cr);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Parse rcc std output
|
// Parse rcc std output
|
||||||
{
|
{
|
||||||
std::istringstream ostr(rccStdOut);
|
std::istringstream ostr(rccStdOut);
|
||||||
std::string oline;
|
std::string oline;
|
||||||
while (std::getline(ostr, oline)) {
|
while (std::getline(ostr, oline)) {
|
||||||
oline = utilStripCR(oline);
|
StripCR(oline);
|
||||||
if (!oline.empty()) {
|
if (!oline.empty()) {
|
||||||
files.push_back(oline);
|
files.push_back(oline);
|
||||||
}
|
}
|
||||||
@@ -218,17 +202,17 @@ static bool RccListInputsQt5(std::string const& rccCommand,
|
|||||||
std::istringstream estr(rccStdErr);
|
std::istringstream estr(rccStdErr);
|
||||||
std::string eline;
|
std::string eline;
|
||||||
while (std::getline(estr, eline)) {
|
while (std::getline(estr, eline)) {
|
||||||
eline = utilStripCR(eline);
|
StripCR(eline);
|
||||||
if (cmHasLiteralPrefix(eline, "RCC: Error in")) {
|
if (cmHasLiteralPrefix(eline, "RCC: Error in")) {
|
||||||
static std::string searchString = "Cannot find file '";
|
static std::string searchString = "Cannot find file '";
|
||||||
|
|
||||||
std::string::size_type pos = eline.find(searchString);
|
std::string::size_type pos = eline.find(searchString);
|
||||||
if (pos == std::string::npos) {
|
if (pos == std::string::npos) {
|
||||||
if (errorMessage != nullptr) {
|
if (errorMessage != nullptr) {
|
||||||
std::ostringstream ost;
|
std::string& err = *errorMessage;
|
||||||
ost << "rcc lists unparsable output:\n"
|
err = "rcc lists unparsable output:\n";
|
||||||
<< cmQtAutoGen::Quoted(eline) << "\n";
|
err += cmQtAutoGen::Quoted(eline);
|
||||||
*errorMessage = ost.str();
|
err += "\n";
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -349,25 +333,26 @@ void cmQtAutoGen::RccMergeOptions(std::vector<std::string>& baseOpts,
|
|||||||
MergeOptions(baseOpts, newOpts, valueOpts, isQt5);
|
MergeOptions(baseOpts, newOpts, valueOpts, isQt5);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cmQtAutoGen::RccListInputs(std::string const& qtMajorVersion,
|
bool cmQtAutoGen::RccListInputs(std::string const& rccCommand,
|
||||||
std::string const& rccCommand,
|
std::vector<std::string> const& rccListOptions,
|
||||||
std::string const& fileName,
|
std::string const& fileName,
|
||||||
std::vector<std::string>& files,
|
std::vector<std::string>& files,
|
||||||
std::string* errorMessage)
|
std::string* errorMessage)
|
||||||
{
|
{
|
||||||
bool allGood = false;
|
bool allGood = false;
|
||||||
if (cmSystemTools::FileExists(fileName.c_str())) {
|
if (cmSystemTools::FileExists(fileName.c_str())) {
|
||||||
if (qtMajorVersion == "4") {
|
if (rccListOptions.empty()) {
|
||||||
allGood = RccListInputsQt4(fileName, files, errorMessage);
|
allGood = RccListInputsQt4(fileName, files, errorMessage);
|
||||||
} else {
|
} else {
|
||||||
allGood = RccListInputsQt5(rccCommand, fileName, files, errorMessage);
|
allGood = RccListInputsQt5(rccCommand, rccListOptions, fileName, files,
|
||||||
|
errorMessage);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (errorMessage != nullptr) {
|
if (errorMessage != nullptr) {
|
||||||
std::ostringstream ost;
|
std::string& err = *errorMessage;
|
||||||
ost << "rcc file does not exist:\n"
|
err = "rcc resource file does not exist:\n ";
|
||||||
<< " " << cmQtAutoGen::Quoted(fileName) << "\n";
|
err += cmQtAutoGen::Quoted(fileName);
|
||||||
*errorMessage = ost.str();
|
err += "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return allGood;
|
return allGood;
|
||||||
|
|||||||
@@ -61,9 +61,9 @@ public:
|
|||||||
|
|
||||||
/// @brief Reads the resource files list from from a .qrc file
|
/// @brief Reads the resource files list from from a .qrc file
|
||||||
/// @arg fileName Must be the absolute path of the .qrc file
|
/// @arg fileName Must be the absolute path of the .qrc file
|
||||||
/// @return True if the rcc file was successfully parsed
|
/// @return True if the rcc file was successfully read
|
||||||
static bool RccListInputs(std::string const& qtMajorVersion,
|
static bool RccListInputs(std::string const& rccCommand,
|
||||||
std::string const& rccCommand,
|
std::vector<std::string> const& rccListOptions,
|
||||||
std::string const& fileName,
|
std::string const& fileName,
|
||||||
std::vector<std::string>& files,
|
std::vector<std::string>& files,
|
||||||
std::string* errorMessage = nullptr);
|
std::string* errorMessage = nullptr);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
#include "cmMakefile.h"
|
#include "cmMakefile.h"
|
||||||
#include "cmOutputConverter.h"
|
#include "cmOutputConverter.h"
|
||||||
#include "cmPolicies.h"
|
#include "cmPolicies.h"
|
||||||
|
#include "cmProcessOutput.h"
|
||||||
#include "cmSourceFile.h"
|
#include "cmSourceFile.h"
|
||||||
#include "cmSourceGroup.h"
|
#include "cmSourceGroup.h"
|
||||||
#include "cmState.h"
|
#include "cmState.h"
|
||||||
@@ -190,40 +191,6 @@ static bool StaticLibraryCycle(cmGeneratorTarget const* targetOrigin,
|
|||||||
return cycle;
|
return cycle;
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::string RccGetExecutable(cmGeneratorTarget const* target,
|
|
||||||
std::string const& qtMajorVersion)
|
|
||||||
{
|
|
||||||
std::string rccExec;
|
|
||||||
std::string err;
|
|
||||||
|
|
||||||
cmLocalGenerator* localGen = target->GetLocalGenerator();
|
|
||||||
if (qtMajorVersion == "5") {
|
|
||||||
cmGeneratorTarget* tgt = localGen->FindGeneratorTargetToUse("Qt5::rcc");
|
|
||||||
if (tgt != nullptr) {
|
|
||||||
rccExec = SafeString(tgt->ImportedGetLocation(""));
|
|
||||||
} else {
|
|
||||||
err = "AUTORCC: Qt5::rcc target not found";
|
|
||||||
}
|
|
||||||
} else if (qtMajorVersion == "4") {
|
|
||||||
cmGeneratorTarget* tgt = localGen->FindGeneratorTargetToUse("Qt4::rcc");
|
|
||||||
if (tgt != nullptr) {
|
|
||||||
rccExec = SafeString(tgt->ImportedGetLocation(""));
|
|
||||||
} else {
|
|
||||||
err = "AUTORCC: Qt4::rcc target not found";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
err = "The AUTORCC feature supports only Qt 4 and Qt 5";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!err.empty()) {
|
|
||||||
err += " (";
|
|
||||||
err += target->GetName();
|
|
||||||
err += ")";
|
|
||||||
cmSystemTools::Error(err.c_str());
|
|
||||||
}
|
|
||||||
return rccExec;
|
|
||||||
}
|
|
||||||
|
|
||||||
cmQtAutoGeneratorInitializer::cmQtAutoGeneratorInitializer(
|
cmQtAutoGeneratorInitializer::cmQtAutoGeneratorInitializer(
|
||||||
cmGeneratorTarget* target, bool mocEnabled, bool uicEnabled, bool rccEnabled,
|
cmGeneratorTarget* target, bool mocEnabled, bool uicEnabled, bool rccEnabled,
|
||||||
std::string const& qtVersionMajor)
|
std::string const& qtVersionMajor)
|
||||||
@@ -368,6 +335,56 @@ void cmQtAutoGeneratorInitializer::InitCustomTargets()
|
|||||||
this->Target->AddIncludeDirectory(includeDir, true);
|
this->Target->AddIncludeDirectory(includeDir, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Acquire rcc executable and features
|
||||||
|
if (this->RccEnabled) {
|
||||||
|
{
|
||||||
|
std::string err;
|
||||||
|
if (this->QtVersionMajor == "5") {
|
||||||
|
cmGeneratorTarget* tgt =
|
||||||
|
localGen->FindGeneratorTargetToUse("Qt5::rcc");
|
||||||
|
if (tgt != nullptr) {
|
||||||
|
this->RccExecutable = SafeString(tgt->ImportedGetLocation(""));
|
||||||
|
} else {
|
||||||
|
err = "AUTORCC: Qt5::rcc target not found";
|
||||||
|
}
|
||||||
|
} else if (QtVersionMajor == "4") {
|
||||||
|
cmGeneratorTarget* tgt =
|
||||||
|
localGen->FindGeneratorTargetToUse("Qt4::rcc");
|
||||||
|
if (tgt != nullptr) {
|
||||||
|
this->RccExecutable = SafeString(tgt->ImportedGetLocation(""));
|
||||||
|
} else {
|
||||||
|
err = "AUTORCC: Qt4::rcc target not found";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = "The AUTORCC feature supports only Qt 4 and Qt 5";
|
||||||
|
}
|
||||||
|
if (!err.empty()) {
|
||||||
|
err += " (";
|
||||||
|
err += this->Target->GetName();
|
||||||
|
err += ")";
|
||||||
|
cmSystemTools::Error(err.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Detect if rcc supports (-)-list
|
||||||
|
if (!this->RccExecutable.empty() && (this->QtVersionMajor == "5")) {
|
||||||
|
std::vector<std::string> command;
|
||||||
|
command.push_back(this->RccExecutable);
|
||||||
|
command.push_back("--help");
|
||||||
|
std::string rccStdOut;
|
||||||
|
std::string rccStdErr;
|
||||||
|
int retVal = 0;
|
||||||
|
bool result = cmSystemTools::RunSingleCommand(
|
||||||
|
command, &rccStdOut, &rccStdErr, &retVal, nullptr,
|
||||||
|
cmSystemTools::OUTPUT_NONE, 0.0, cmProcessOutput::Auto);
|
||||||
|
if (result && retVal == 0 &&
|
||||||
|
rccStdOut.find("--list") != std::string::npos) {
|
||||||
|
this->RccListOptions.push_back("--list");
|
||||||
|
} else {
|
||||||
|
this->RccListOptions.push_back("-list");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Extract relevant source files
|
// Extract relevant source files
|
||||||
std::vector<std::string> generatedSources;
|
std::vector<std::string> generatedSources;
|
||||||
std::vector<std::string> generatedHeaders;
|
std::vector<std::string> generatedHeaders;
|
||||||
@@ -548,8 +565,6 @@ void cmQtAutoGeneratorInitializer::InitCustomTargets()
|
|||||||
// Process qrc files
|
// Process qrc files
|
||||||
if (!this->Qrcs.empty()) {
|
if (!this->Qrcs.empty()) {
|
||||||
const bool QtV5 = (this->QtVersionMajor == "5");
|
const bool QtV5 = (this->QtVersionMajor == "5");
|
||||||
std::string const rcc =
|
|
||||||
RccGetExecutable(this->Target, this->QtVersionMajor);
|
|
||||||
// Target rcc options
|
// Target rcc options
|
||||||
std::vector<std::string> optionsTarget;
|
std::vector<std::string> optionsTarget;
|
||||||
cmSystemTools::ExpandListArgument(
|
cmSystemTools::ExpandListArgument(
|
||||||
@@ -673,9 +688,9 @@ void cmQtAutoGeneratorInitializer::InitCustomTargets()
|
|||||||
// Add the resource files to the dependencies
|
// Add the resource files to the dependencies
|
||||||
{
|
{
|
||||||
std::string error;
|
std::string error;
|
||||||
if (cmQtAutoGen::RccListInputs(this->QtVersionMajor, rcc,
|
if (cmQtAutoGen::RccListInputs(this->RccExecutable,
|
||||||
qrc.QrcFile, qrc.Resources,
|
this->RccListOptions, qrc.QrcFile,
|
||||||
&error)) {
|
qrc.Resources, &error)) {
|
||||||
for (std::string const& fileName : qrc.Resources) {
|
for (std::string const& fileName : qrc.Resources) {
|
||||||
// Add resource file to the custom command dependencies
|
// Add resource file to the custom command dependencies
|
||||||
ccDepends.push_back(fileName);
|
ccDepends.push_back(fileName);
|
||||||
@@ -881,8 +896,9 @@ void cmQtAutoGeneratorInitializer::SetupCustomTargets()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->RccEnabled) {
|
if (this->RccEnabled) {
|
||||||
AddDefinitionEscaped(makefile, "_qt_rcc_executable",
|
AddDefinitionEscaped(makefile, "_qt_rcc_executable", this->RccExecutable);
|
||||||
RccGetExecutable(this->Target, this->QtVersionMajor));
|
AddDefinitionEscaped(makefile, "_qt_rcc_list_options",
|
||||||
|
this->RccListOptions);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create info directory on demand
|
// Create info directory on demand
|
||||||
|
|||||||
@@ -65,8 +65,11 @@ private:
|
|||||||
bool MocEnabled;
|
bool MocEnabled;
|
||||||
bool UicEnabled;
|
bool UicEnabled;
|
||||||
bool RccEnabled;
|
bool RccEnabled;
|
||||||
|
// Qt
|
||||||
std::string QtVersionMajor;
|
std::string QtVersionMajor;
|
||||||
std::string QtVersionMinor;
|
std::string QtVersionMinor;
|
||||||
|
std::string RccExecutable;
|
||||||
|
std::vector<std::string> RccListOptions;
|
||||||
// Configurations
|
// Configurations
|
||||||
std::string ConfigDefault;
|
std::string ConfigDefault;
|
||||||
std::vector<std::string> ConfigsList;
|
std::vector<std::string> ConfigsList;
|
||||||
|
|||||||
@@ -78,8 +78,8 @@ bool cmQtAutoGeneratorRcc::InfoFileRead(cmMakefile* makefile)
|
|||||||
this->AutogenBuildDir = InfoGet("ARCC_BUILD_DIR");
|
this->AutogenBuildDir = InfoGet("ARCC_BUILD_DIR");
|
||||||
|
|
||||||
// - Qt environment
|
// - Qt environment
|
||||||
this->QtMajorVersion = InfoGet("ARCC_QT_VERSION_MAJOR");
|
this->RccExecutable = InfoGet("ARCC_RCC_EXECUTABLE");
|
||||||
this->RccExecutable = InfoGet("ARCC_QT_RCC_EXECUTABLE");
|
this->RccListOptions = InfoGetList("ARCC_RCC_LIST_OPTIONS");
|
||||||
|
|
||||||
// - Job
|
// - Job
|
||||||
this->QrcFile = InfoGet("ARCC_SOURCE");
|
this->QrcFile = InfoGet("ARCC_SOURCE");
|
||||||
@@ -135,6 +135,8 @@ void cmQtAutoGeneratorRcc::SettingsFileRead(cmMakefile* makefile)
|
|||||||
std::string str;
|
std::string str;
|
||||||
str += this->RccExecutable;
|
str += this->RccExecutable;
|
||||||
str += sep;
|
str += sep;
|
||||||
|
str += cmJoin(this->RccListOptions, ";");
|
||||||
|
str += sep;
|
||||||
str += this->QrcFile;
|
str += this->QrcFile;
|
||||||
str += sep;
|
str += sep;
|
||||||
str += this->RccFile;
|
str += this->RccFile;
|
||||||
@@ -307,7 +309,7 @@ bool cmQtAutoGeneratorRcc::RccGenerate()
|
|||||||
} else {
|
} else {
|
||||||
// Read input file list from qrc file
|
// Read input file list from qrc file
|
||||||
std::string error;
|
std::string error;
|
||||||
if (cmQtAutoGen::RccListInputs(this->QtMajorVersion, this->RccExecutable,
|
if (cmQtAutoGen::RccListInputs(this->RccExecutable, this->RccListOptions,
|
||||||
this->QrcFile, readFiles, &error)) {
|
this->QrcFile, readFiles, &error)) {
|
||||||
files = &readFiles;
|
files = &readFiles;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ private:
|
|||||||
std::string AutogenBuildDir;
|
std::string AutogenBuildDir;
|
||||||
cmFilePathChecksum FilePathChecksum;
|
cmFilePathChecksum FilePathChecksum;
|
||||||
// -- Qt environment
|
// -- Qt environment
|
||||||
std::string QtMajorVersion;
|
|
||||||
std::string RccExecutable;
|
std::string RccExecutable;
|
||||||
|
std::vector<std::string> RccListOptions;
|
||||||
// -- Job
|
// -- Job
|
||||||
std::string QrcFile;
|
std::string QrcFile;
|
||||||
std::string RccFile;
|
std::string RccFile;
|
||||||
|
|||||||
Reference in New Issue
Block a user