From 49217e9657f2a47954b703d1d08077317b9e3c6d Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 20 Mar 2015 10:58:02 +0100 Subject: add DISTFILES support for Visual Studio projects Files in DISTFILES are placed into a "Distribution Files" folder under the project node. Task-number: QTBUG-43162 Change-Id: Ib75aacf1010d9ea63af89d4a9cc92275d714b3cb Reviewed-by: Oswald Buddenhagen Reviewed-by: Joerg Bornemann --- qmake/generators/win32/msbuild_objectmodel.cpp | 4 ++++ qmake/generators/win32/msvc_objectmodel.cpp | 4 ++++ qmake/generators/win32/msvc_objectmodel.h | 1 + qmake/generators/win32/msvc_vcproj.cpp | 13 +++++++++++++ qmake/generators/win32/msvc_vcproj.h | 1 + 5 files changed, 23 insertions(+) (limited to 'qmake') diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 3d1b05c9b3..6c2d2c6206 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -571,6 +571,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool) addFilters(tempProj, xmlFilter, "Source Files"); addFilters(tempProj, xmlFilter, "Translation Files"); addFilters(tempProj, xmlFilter, "Deployment Files"); + addFilters(tempProj, xmlFilter, "Distribution Files"); for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) addFilters(tempProj, xmlFilter, tempProj.ExtraCompilers.at(x)); @@ -585,6 +586,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool) outputFilter(tempProj, xml, xmlFilter, "Form Files"); outputFilter(tempProj, xml, xmlFilter, "Resource Files"); outputFilter(tempProj, xml, xmlFilter, "Deployment Files"); + outputFilter(tempProj, xml, xmlFilter, "Distribution Files"); for (int x = 0; x < tempProj.ExtraCompilers.count(); ++x) { outputFilter(tempProj, xml, xmlFilter, tempProj.ExtraCompilers.at(x)); @@ -804,6 +806,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) addFilters(tool, xmlFilter, "Source Files"); addFilters(tool, xmlFilter, "Translation Files"); addFilters(tool, xmlFilter, "Deployment Files"); + addFilters(tool, xmlFilter, "Distribution Files"); for (int x = 0; x < tool.ExtraCompilers.count(); ++x) addFilters(tool, xmlFilter, tool.ExtraCompilers.at(x)); @@ -818,6 +821,7 @@ void VCXProjectWriter::write(XmlOutput &xml, VCProject &tool) outputFilter(tool, xml, xmlFilter, "Form Files"); outputFilter(tool, xml, xmlFilter, "Resource Files"); outputFilter(tool, xml, xmlFilter, "Deployment Files"); + outputFilter(tool, xml, xmlFilter, "Distribution Files"); for (int x = 0; x < tool.ExtraCompilers.count(); ++x) { outputFilter(tool, xml, xmlFilter, tool.ExtraCompilers.at(x)); } diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 4a65d24687..917f4467a0 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -2449,6 +2449,8 @@ const VCFilter &VCProjectSingleConfig::filterByName(const QString &name) const return ResourceFiles; if (name == "Deployment Files") return DeploymentFiles; + if (name == "Distribution Files") + return DistributionFiles; return filterForExtraCompiler(name); } @@ -2531,6 +2533,7 @@ void VCProjectWriter::write(XmlOutput &xml, VCProjectSingleConfig &tool) outputFilter(tempProj, xml, "Form Files"); outputFilter(tempProj, xml, "Resource Files"); outputFilter(tempProj, xml, "Deployment Files"); + outputFilter(tempProj, xml, "Distribution Files"); QSet extraCompilersInProject; for (int i = 0; i < tool.ExtraCompilersFiles.count(); ++i) { @@ -2584,6 +2587,7 @@ void VCProjectWriter::write(XmlOutput &xml, VCProject &tool) outputFilter(tool, xml, "Form Files"); outputFilter(tool, xml, "Resource Files"); outputFilter(tool, xml, "Deployment Files"); + outputFilter(tool, xml, "Distribution Files"); for (int x = 0; x < tool.ExtraCompilers.count(); ++x) { outputFilter(tool, xml, tool.ExtraCompilers.at(x)); } diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 62ea9bc055..59136b16c8 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -1010,6 +1010,7 @@ public: VCFilter FormFiles; VCFilter ResourceFiles; VCFilter DeploymentFiles; + VCFilter DistributionFiles; VCFilterList ExtraCompilersFiles; bool flat_files; diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 57557732c5..4822bcf22a 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -56,6 +56,7 @@ const char _GUIDTranslationFiles[] = "{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C} const char _GUIDFormFiles[] = "{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"; const char _GUIDExtraCompilerFiles[] = "{E0D8C965-CC5F-43d7-AD63-FAEF0BBC0F85}"; const char _GUIDDeploymentFiles[] = "{D9D6E243-F8AF-46E4-B9FD-80ECBC20BA3E}"; +const char _GUIDDistributionFiles[] = "{B83CAF91-C7BF-462F-B76C-EA11631F866C}"; QT_END_NAMESPACE #ifdef Q_OS_WIN32 @@ -943,6 +944,7 @@ void VcprojGenerator::initProject() initTranslationFiles(); initFormFiles(); initResourceFiles(); + initDistributionFiles(); initExtraCompilerOutputs(); // Own elements ----------------------------- @@ -1565,6 +1567,17 @@ void VcprojGenerator::initResourceFiles() vcProject.ResourceFiles.Config = &(vcProject.Configuration); } +void VcprojGenerator::initDistributionFiles() +{ + vcProject.DistributionFiles.Name = "Distribution Files"; + vcProject.DistributionFiles.ParseFiles = _False; + vcProject.DistributionFiles.Filter = "*"; + vcProject.DistributionFiles.Guid = _GUIDDistributionFiles; + vcProject.DistributionFiles.addFiles(project->values("DISTFILES")); + vcProject.DistributionFiles.Project = this; + vcProject.DistributionFiles.Config = &(vcProject.Configuration); +} + void VcprojGenerator::initExtraCompilerOutputs() { ProStringList otherFilters; diff --git a/qmake/generators/win32/msvc_vcproj.h b/qmake/generators/win32/msvc_vcproj.h index 87cc39f323..3396ea4986 100644 --- a/qmake/generators/win32/msvc_vcproj.h +++ b/qmake/generators/win32/msvc_vcproj.h @@ -108,6 +108,7 @@ protected: void initFormFiles(); void initResourceFiles(); void initDeploymentFiles(); + void initDistributionFiles(); void initLexYaccFiles(); void initExtraCompilerOutputs(); -- cgit v1.2.3