diff options
Diffstat (limited to 'qmake/generators')
-rw-r--r-- | qmake/generators/win32/mingw_make.cpp | 5 | ||||
-rw-r--r-- | qmake/generators/win32/mingw_make.h | 1 | ||||
-rw-r--r-- | qmake/generators/win32/msbuild_objectmodel.cpp | 48 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_nmake.cpp | 7 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_objectmodel.cpp | 4 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_objectmodel.h | 2 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 68 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.h | 1 | ||||
-rw-r--r-- | qmake/generators/win32/winmakefile.cpp | 18 | ||||
-rw-r--r-- | qmake/generators/win32/winmakefile.h | 1 |
10 files changed, 40 insertions, 115 deletions
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp index 3c53421fc4..42431f0131 100644 --- a/qmake/generators/win32/mingw_make.cpp +++ b/qmake/generators/win32/mingw_make.cpp @@ -66,6 +66,11 @@ QString MingwMakefileGenerator::getLibTarget() return QString("lib" + project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".a"); } +QString MingwMakefileGenerator::getManifestFileForRcFile() const +{ + return project->first("QMAKE_MANIFEST").toQString(); +} + bool MingwMakefileGenerator::findLibraries() { QList<QMakeLocalFileName> dirs; diff --git a/qmake/generators/win32/mingw_make.h b/qmake/generators/win32/mingw_make.h index 2442ea852b..bd26f343dc 100644 --- a/qmake/generators/win32/mingw_make.h +++ b/qmake/generators/win32/mingw_make.h @@ -46,6 +46,7 @@ public: protected: QString escapeDependencyPath(const QString &path) const; QString getLibTarget(); + virtual QString getManifestFileForRcFile() const; bool writeMakefile(QTextStream &); void init(); private: diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 1f51ff0342..e9f0d17718 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -615,7 +615,6 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) bool isWinRT = false; bool isWinPhone = false; - bool isWinPhone80 = false; // ### Windows Phone 8.0, remove in Qt 5.4 for (int i = 0; i < tool.SingleProjects.count(); ++i) { xml << tag("ProjectConfiguration") << attrTag("Include" , tool.SingleProjects.at(i).Configuration.Name) @@ -624,7 +623,6 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) << closetag(); isWinRT = isWinRT || tool.SingleProjects.at(i).Configuration.WinRT; isWinPhone = isWinPhone = tool.SingleProjects.at(i).Configuration.WinPhone; - isWinPhone80 = isWinPhone80 || tool.SingleProjects.at(i).Configuration.WinPhone80; } xml << closetag() @@ -636,18 +634,10 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) if (isWinRT) { xml << tagValue("MinimumVisualStudioVersion", tool.Version) - << tagValue("DefaultLanguage", "en"); - if (isWinPhone80) { - xml << tagValue("WinMDAssembly", "true"); - if (tool.SingleProjects.at(0).Configuration.ConfigurationType == typeApplication) { - xml << tagValue("XapOutputs", "true"); - xml << tagValue("XapFilename", "$(RootNamespace)_$(Configuration)_$(Platform).xap"); - } - } else { - xml << tagValue("AppContainerApplication", "true") - << tagValue("ApplicationType", isWinPhone ? "Windows Phone" : "Windows Store") - << tagValue("ApplicationTypeRevision", tool.SdkVersion); - } + << tagValue("DefaultLanguage", "en") + << tagValue("AppContainerApplication", "true") + << tagValue("ApplicationType", isWinPhone ? "Windows Phone" : "Windows Store") + << tagValue("ApplicationTypeRevision", tool.SdkVersion); } xml << closetag(); @@ -832,19 +822,9 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) } outputFilter(tool, xml, xmlFilter, "Root Files"); - if (isWinPhone80) { - xml << tag("ItemGroup") - << tag("Reference") - << attrTag("Include", "platform") - << attrTagS("IsWinMDFile", "true") - << attrTagS("Private", "false") - << closetag() - << closetag(); - } - // App manifest if (isWinRT) { - QString manifest = isWinPhone80 ? QStringLiteral("WMAppManifest.xml") : QStringLiteral("Package.appxmanifest"); + const QString manifest = QStringLiteral("Package.appxmanifest"); // Find all icons referenced in the manifest QSet<QString> icons; @@ -865,7 +845,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) // Write out manifest + icons as content items xml << tag(_ItemGroup) - << tag(isWinPhone80 ? "Xml" : "AppxManifest") + << tag("AppxManifest") << attrTag("Include", manifest) << closetag(); foreach (const QString &icon, icons) { @@ -876,12 +856,8 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) xml << closetag(); } - xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets"); - - if (isWinPhone80) - xml << import("Project", "$(MSBuildExtensionsPath)\\Microsoft\\WindowsPhone\\v8.0\\Microsoft.Cpp.WindowsPhone.8.0.targets"); - - xml << tag("ImportGroup") + xml << import("Project", "$(VCTargetsPath)\\Microsoft.Cpp.targets") + << tag("ImportGroup") << attrTag("Label", "ExtensionTargets") << closetag(); } @@ -1968,11 +1944,13 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml } if ( !filter.CompilerTool.PrecompiledHeaderThrough.isEmpty() ) { - xml << tag("PrecompiledHeaderFile") << attrTag("Condition", condition) - << valueTag(filter.CompilerTool.PrecompiledHeaderThrough) - << tag("PrecompiledHeader") + << valueTag(filter.CompilerTool.PrecompiledHeaderThrough); + } + + if (filter.CompilerTool.UsePrecompiledHeader != pchUnset) { + xml << tag("PrecompiledHeader") << attrTag("Condition", condition) << valueTag(toString(filter.CompilerTool.UsePrecompiledHeader)); } diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp index 758db337ea..9544ce8381 100644 --- a/qmake/generators/win32/msvc_nmake.cpp +++ b/qmake/generators/win32/msvc_nmake.cpp @@ -160,10 +160,7 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t) QString windowsPath; if (isPhone) { - if (targetVer == "WP80") // ### Windows Phone 8.0, remove in Qt 5.4 - windowsPath = "Microsoft\\Microsoft SDKs\\WindowsPhone\\v"; - else - windowsPath = "Microsoft\\Microsoft SDKs\\WindowsPhoneApp\\v"; + windowsPath = "Microsoft\\Microsoft SDKs\\WindowsPhoneApp\\v"; } else { windowsPath = "Microsoft\\Microsoft SDKs\\Windows\\v"; } @@ -184,8 +181,6 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t) QStringList binDirs; if (isPhone) { QString sdkDir = vcInstallDir; - if (targetVer == "WP80") - sdkDir += QStringLiteral("/WPSDK/") + targetVer; if (!QDir(sdkDir).exists()) { fprintf(stderr, "Failed to find the Windows Phone SDK in %s.\n" "Check that it is properly installed.\n", diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 74a0a20ea2..26ba2a06aa 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -2137,7 +2137,6 @@ VCPreLinkEventTool::VCPreLinkEventTool() VCConfiguration::VCConfiguration() : WinRT(false), WinPhone(false), - WinPhone80(false), ATLMinimizesCRunTimeLibraryUsage(unset), BuildBrowserInformation(unset), CharacterSet(charSetNotSet), @@ -2237,7 +2236,8 @@ void VCFilter::modifyPCHstage(QString str) useCompilerTool = true; // Setup PCH options CompilerTool.UsePrecompiledHeader = (isCFile ? pchNone : pchCreateUsingSpecific); - CompilerTool.PrecompiledHeaderThrough = (isCPPFile ? Project->precompHFilename : QString("$(NOINHERIT)")); + if (isCFile) + CompilerTool.PrecompiledHeaderThrough = QLatin1String("$(NOINHERIT)"); CompilerTool.ForcedIncludeFiles = QStringList("$(NOINHERIT)"); } diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 4b70ca3d71..f16e5446bb 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -873,7 +873,7 @@ public: bool suppressUnknownOptionWarnings; DotNET CompilerVersion; - bool WinRT, WinPhone, WinPhone80; + bool WinRT, WinPhone; // Variables triState ATLMinimizesCRunTimeLibraryUsage; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index f271eb0679..61c0cda89e 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -908,11 +908,6 @@ void VcprojGenerator::initProject() initFormFiles(); initResourceFiles(); initExtraCompilerOutputs(); - if (vcProject.Configuration.WinRT) { - if (vcProject.Configuration.WinPhone80 - && vcProject.Configuration.ConfigurationType == typeApplication) - initWMAppManifest(); - } // Own elements ----------------------------- vcProject.Name = unescapeFilePath(project->first("QMAKE_ORIG_TARGET").toQString()); @@ -1020,7 +1015,6 @@ void VcprojGenerator::initConfiguration() conf.WinRT = project->isActiveConfig("winrt"); if (conf.WinRT) { conf.WinPhone = project->isActiveConfig("winphone"); - conf.WinPhone80 = project->first("WINTARGET_VER") == "WP80"; // Saner defaults conf.compiler.UsePrecompiledHeader = pchNone; conf.compiler.CompileAsWinRT = _False; @@ -1616,68 +1610,6 @@ void VcprojGenerator::initExtraCompilerOutputs() } } -void VcprojGenerator::initWMAppManifest() -{ - if (!project->isActiveConfig("autogen_wmappmanifest")) - return; - - // autogen_wmappmanifest - QFile file(Option::output_dir + "\\WMAppManifest.xml"); - if (!file.open(QFile::WriteOnly)) - return; - - QTextStream stream(&file); - - QString productID = project->first("PRODUCTID").toQString(); - QString target = project->first("TARGET").toQString(); - QString author = project->first("AUTHOR").toQString(); - QString publisher = project->first("PUBLISHER").toQString(); - QString publisherID = project->first("PUBLISHERID").toQString(); - QString description = project->first("DESCRIPTION").toQString(); - - if (author.isEmpty()) - author = "Qt"; - if (publisher.isEmpty()) - publisher = "Qt"; - if (productID.isEmpty()) - productID = QUuid::createUuid().toString(); - if (publisherID.isEmpty()) - publisherID = QUuid::createUuid().toString(); - - stream << "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" - << "<Deployment xmlns=\"http://schemas.microsoft.com/windowsphone/2012/deployment\" AppPlatformVersion=\"8.0\">\n" - << " <DefaultLanguage xmlns=\"\" code=\"en-US\"/>\n" - << " <App xmlns=\"\" ProductID=\"" << productID << "\" Title=\"" << target - << "\" RuntimeType=\"Modern Native\" Version=\"1.0.0.0\"" - << " Genre=\"apps.normal\" Author=\"" << author - << "\" Description=\"" << description << "\" Publisher=\"" << publisher - << "\" PublisherID=\"" << publisherID << "\">\n" - << " <IconPath IsRelative=\"true\" IsResource=\"false\">ApplicationIcon.png</IconPath>\n" - << " <Capabilities>\n" - << " <Capability Name=\"ID_CAP_NETWORKING\" />\n" - << " <Capability Name=\"ID_CAP_MEDIALIB_AUDIO\" />\n" - << " <Capability Name=\"ID_CAP_MEDIALIB_PLAYBACK\" />\n" - << " </Capabilities>\n" - << " <Tasks>\n" - << " <DefaultTask Name=\"_default\" ImagePath=\"" << target << ".exe\" ImageParams=\"\" />\n" - << " </Tasks>\n" - << " <Tokens>\n" - << " <PrimaryToken TokenID=\"" << target << "Token\" TaskName=\"_default\">\n" - << " <TemplateType5>\n" - << " <Count>0</Count>\n" - << " <Title>" << target << "</Title>\n" - << " </TemplateType5>\n" - << " </PrimaryToken>\n" - << " </Tokens>\n" - << " <ScreenResolutions>\n" - << " <ScreenResolution Name=\"ID_RESOLUTION_WVGA\" />\n" - << " <ScreenResolution Name=\"ID_RESOLUTION_WXGA\" />\n" - << " <ScreenResolution Name=\"ID_RESOLUTION_HD720P\" />\n" - << " </ScreenResolutions>\n" - << " </App>\n" - << "</Deployment>\n"; -} - void VcprojGenerator::initOld() { // $$QMAKE.. -> $$MSVCPROJ.. ------------------------------------- diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h index f436b6da20..f155fc2d5f 100644 --- a/qmake/generators/win32/msvc_vcproj.h +++ b/qmake/generators/win32/msvc_vcproj.h @@ -113,7 +113,6 @@ protected: void initDeploymentFiles(); void initLexYaccFiles(); void initExtraCompilerOutputs(); - void initWMAppManifest(); void writeSubDirs(QTextStream &t); // Called from VCXProj backend QUuid getProjectUUID(const QString &filename=QString()); // Called from VCXProj backend diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 81bc16a3c6..b6bcdbf366 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -368,7 +368,8 @@ void Win32MakefileGenerator::processRcFileVar() if (Option::qmake_mode == Option::QMAKE_GENERATE_NOTHING) return; - if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty()) + const QString manifestFile = getManifestFileForRcFile(); + if (((!project->values("VERSION").isEmpty() || !project->values("RC_ICONS").isEmpty() || !manifestFile.isEmpty()) && project->values("RC_FILE").isEmpty() && project->values("RES_FILE").isEmpty() && !project->isActiveConfig("no_generated_target_info") @@ -412,7 +413,7 @@ void Win32MakefileGenerator::processRcFileVar() ts << "# if defined(UNDER_CE)\n"; ts << "# include <winbase.h>\n"; ts << "# else\n"; - ts << "# include <winver.h>\n"; + ts << "# include <windows.h>\n"; ts << "# endif\n"; ts << endl; if (!rcIcons.isEmpty()) { @@ -420,6 +421,14 @@ void Win32MakefileGenerator::processRcFileVar() ts << QString("IDI_ICON%1\tICON\tDISCARDABLE\t%2").arg(i + 1).arg(cQuoted(rcIcons[i])) << endl; ts << endl; } + if (!manifestFile.isEmpty()) { + QString manifestResourceId; + if (project->first("TEMPLATE") == "lib") + manifestResourceId = QStringLiteral("ISOLATIONAWARE_MANIFEST_RESOURCE_ID"); + else + manifestResourceId = QStringLiteral("CREATEPROCESS_MANIFEST_RESOURCE_ID"); + ts << manifestResourceId << " RT_MANIFEST \"" << manifestFile << "\"\n"; + } ts << "VS_VERSION_INFO VERSIONINFO\n"; ts << "\tFILEVERSION " << QString(versionString).replace(".", ",") << endl; ts << "\tPRODUCTVERSION " << QString(versionString).replace(".", ",") << endl; @@ -894,4 +903,9 @@ QString Win32MakefileGenerator::cQuoted(const QString &str) return ret; } +QString Win32MakefileGenerator::getManifestFileForRcFile() const +{ + return QString(); +} + QT_END_NAMESPACE diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h index 3016bad5b4..468f2f3ee6 100644 --- a/qmake/generators/win32/winmakefile.h +++ b/qmake/generators/win32/winmakefile.h @@ -66,6 +66,7 @@ protected: void processRcFileVar(); virtual QString getLibTarget(); static QString cQuoted(const QString &str); + virtual QString getManifestFileForRcFile() const; }; inline Win32MakefileGenerator::~Win32MakefileGenerator() |