diff options
Diffstat (limited to 'qmake/generators/win32/msvc_vcproj.cpp')
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 867b14faea..e117f472e0 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -1481,36 +1481,20 @@ void VcprojGenerator::initResourceFiles() // Bad hack, please look away ------------------------------------- QString rcc_dep_cmd = project->values("rcc.depend_command").join(' '); if(!rcc_dep_cmd.isEmpty()) { - ProStringList qrc_files = project->values("RESOURCES"); + const QStringList qrc_files = project->values("RESOURCES").toQStringList(); QStringList deps; - if(!qrc_files.isEmpty()) { - for (int i = 0; i < qrc_files.count(); ++i) { - char buff[256]; - QString dep_cmd = replaceExtraCompilerVariables( - rcc_dep_cmd, qrc_files.at(i).toQString(), QString(), LocalShell); - - dep_cmd = Option::fixPathToLocalOS(dep_cmd, true, false); - if(canExecute(dep_cmd)) { - dep_cmd.prepend(QLatin1String("cd ") - + IoUtils::shellQuote(Option::fixPathToLocalOS(Option::output_dir, false)) - + QLatin1String(" && ")); - if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) { - QString indeps; - while(!feof(proc)) { - int read_in = (int)fread(buff, 1, 255, proc); - if(!read_in) - break; - indeps += QByteArray(buff, read_in); - } - QT_PCLOSE(proc); - if(!indeps.isEmpty()) - deps += fileFixify(indeps.replace('\n', ' ').simplified().split(' '), - FileFixifyFromOutdir); - } - } - } - vcProject.ResourceFiles.addFiles(deps); + for (const QString &qrc_file : qrc_files) { + callExtraCompilerDependCommand("rcc", + rcc_dep_cmd, + qrc_file, + QString(), + true, // dep_lines + &deps, + false, // existingDepsOnly + true // checkCommandavailability + ); } + vcProject.ResourceFiles.addFiles(deps); } // You may look again -------------------------------------------- |