From 871236d4cd2b6537097fe409fc6fcc230bb837ff Mon Sep 17 00:00:00 2001 From: hogliux Date: Wed, 1 Feb 2017 15:52:55 +0000 Subject: [PATCH] Removed MSVC 2005 and 2008 exporters --- .../Project Saving/jucer_ProjectExport_MSVC.h | 414 ------------------ .../Project Saving/jucer_ProjectExporter.cpp | 20 +- 2 files changed, 6 insertions(+), 428 deletions(-) diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h index 7eb96f8a57..c62e8a841d 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExport_MSVC.h @@ -1049,420 +1049,6 @@ protected: JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterBase) }; - -//============================================================================== -class MSVCProjectExporterVC2008 : public MSVCProjectExporterBase -{ -public: - //============================================================================== - MSVCProjectExporterVC2008 (Project& p, const ValueTree& s, - const char* folderName = "VisualStudio2008") - : MSVCProjectExporterBase (p, s, folderName) - { - name = getName(); - } - - static const char* getName() { return "Visual Studio 2008"; } - static const char* getValueTreeTypeName() { return "VS2008"; } - int getVisualStudioVersion() const override { return 9; } - - static MSVCProjectExporterVC2008* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC2008 (project, settings); - - return nullptr; - } - - //============================================================================== - class MSVC2008Target : public MSVCTargetBase - { - public: - MSVC2008Target (ProjectType::Target::Type targetType, const MSVCProjectExporterVC2008& exporter) - : MSVCTargetBase (targetType, exporter) - {} - - const MSVCProjectExporterVC2008& getOwner() const { return dynamic_cast (owner); } - String getProjectVersionString() const override { return "9.00"; } - String getProjectFileSuffix() const override { return ".vcproj"; } - String getTopLevelXmlEntity() const override { return "VisualStudioProject"; } - - //============================================================================== - void fillInProjectXml (XmlElement& projectXml) const override - { - projectXml.setAttribute("ProjectType", "Visual C++"); - projectXml.setAttribute("Version", getProjectVersionString()); - - String fullTargetName = (getOwner().getProjectName() + String (" (") + getName() + String (")")); - - projectXml.setAttribute("Name", fullTargetName); - projectXml.setAttribute("ProjectGUID", getProjectGuid()); - projectXml.setAttribute("TargetFrameworkVersion", "131072"); - - { - XmlElement* platforms = projectXml.createNewChildElement("Platforms"); - XmlElement* platform = platforms->createNewChildElement("Platform"); - platform->setAttribute("Name", "Win32"); - } - - projectXml.createNewChildElement("ToolFiles"); - createConfigs (*projectXml.createNewChildElement("Configurations")); - projectXml.createNewChildElement("References"); - createFiles (*projectXml.createNewChildElement("Files")); - projectXml.createNewChildElement("Globals"); - } - - void createConfig (XmlElement& xml, const MSVCBuildConfiguration& config) const - { - const bool isDebug = config.isDebug(); - - xml.setAttribute ("Name", config.createMSVCConfigName()); - - if (getConfigTargetPath (config).isNotEmpty()) - xml.setAttribute ("OutputDirectory", FileHelpers::windowsStylePath (getConfigTargetPath (config))); - - xml.setAttribute ("IntermediateDirectory", FileHelpers::windowsStylePath (getIntermediatesPath (config))); - - const ProjectType::Target::TargetFileType fileType = getTargetFileType(); - - xml.setAttribute ("ConfigurationType", (fileType == sharedLibraryOrDLL || fileType == pluginBundle) ? "2" - : ((fileType == staticLibrary) ? "4" : "1")); - xml.setAttribute ("UseOfMFC", "0"); - xml.setAttribute ("ATLMinimizesCRunTimeLibraryUsage", "false"); - xml.setAttribute ("CharacterSet", "2"); - - if (! (isDebug || config.shouldDisableWholeProgramOpt())) - xml.setAttribute ("WholeProgramOptimization", "1"); - - XmlElement* preBuildEvent = createToolElement (xml, "VCPreBuildEventTool"); - const String preBuildCommand = getPreBuildSteps (config); - if (preBuildCommand.isNotEmpty()) - { - preBuildEvent->setAttribute ("Description", "Pre-build"); - preBuildEvent->setAttribute ("CommandLine", preBuildCommand); - } - - createToolElement (xml, "VCCustomBuildTool"); - createToolElement (xml, "VCXMLDataGeneratorTool"); - createToolElement (xml, "VCWebServiceProxyGeneratorTool"); - - if (fileType != staticLibrary) - { - XmlElement* midl = createToolElement (xml, "VCMIDLTool"); - midl->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); - midl->setAttribute ("MkTypLibCompatible", "true"); - midl->setAttribute ("SuppressStartupBanner", "true"); - midl->setAttribute ("TargetEnvironment", "1"); - midl->setAttribute ("TypeLibraryName", getOwner().getIntDirFile (config, config.getOutputFilename (".tlb", true))); - midl->setAttribute ("HeaderFileName", ""); - } - - { - XmlElement* compiler = createToolElement (xml, "VCCLCompilerTool"); - - compiler->setAttribute ("Optimization", getOptimisationLevelString (config.getOptimisationLevelInt())); - - if (isDebug) - { - compiler->setAttribute ("BufferSecurityCheck", ""); - compiler->setAttribute ("DebugInformationFormat", (fileType == staticLibrary) ? "3" : "4"); - } - else - { - compiler->setAttribute ("InlineFunctionExpansion", "1"); - compiler->setAttribute ("StringPooling", "true"); - } - - compiler->setAttribute ("AdditionalIncludeDirectories", getOwner().replacePreprocessorTokens (config, getOwner().getHeaderSearchPaths (config).joinIntoString (";"))); - compiler->setAttribute ("PreprocessorDefinitions", getPreprocessorDefs (config, ";")); - - const bool runtimeDLL = shouldUseRuntimeDLL (config); - compiler->setAttribute ("RuntimeLibrary", runtimeDLL ? (isDebug ? 3 : 2) // MT DLL - : (isDebug ? 1 : 0)); // MT static - compiler->setAttribute ("RuntimeTypeInfo", "true"); - compiler->setAttribute ("UsePrecompiledHeader", "0"); - compiler->setAttribute ("PrecompiledHeaderFile", getOwner().getIntDirFile (config, config.getOutputFilename (".pch", true))); - compiler->setAttribute ("AssemblerListingLocation", "$(IntDir)\\"); - compiler->setAttribute ("ObjectFile", "$(IntDir)\\"); - compiler->setAttribute ("ProgramDataBaseFileName", "$(IntDir)\\"); - compiler->setAttribute ("WarningLevel", String (config.getWarningLevel())); - compiler->setAttribute ("SuppressStartupBanner", "true"); - - const String extraFlags (getOwner().replacePreprocessorTokens (config, getOwner().getExtraCompilerFlagsString()).trim()); - if (extraFlags.isNotEmpty()) - compiler->setAttribute ("AdditionalOptions", extraFlags); - } - - createToolElement (xml, "VCManagedResourceCompilerTool"); - - { - XmlElement* resCompiler = createToolElement (xml, "VCResourceCompilerTool"); - resCompiler->setAttribute ("PreprocessorDefinitions", isDebug ? "_DEBUG" : "NDEBUG"); - } - - createToolElement (xml, "VCPreLinkEventTool"); - - if (fileType != staticLibrary) - { - XmlElement* linker = createToolElement (xml, "VCLinkerTool"); - - linker->setAttribute ("OutputFile", getOutputFilePath (config)); - linker->setAttribute ("SuppressStartupBanner", "true"); - - linker->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); - linker->setAttribute ("GenerateDebugInformation", (isDebug || config.shouldGenerateDebugSymbols()) ? "true" : "false"); - linker->setAttribute ("LinkIncremental", config.shouldLinkIncremental() ? "2" : "1"); - linker->setAttribute ("ProgramDatabaseFile", getOwner().getIntDirFile (config, config.getOutputFilename (".pdb", true))); - linker->setAttribute ("SubSystem", (type != ConsoleApp ? "2" : "1")); - - const StringArray librarySearchPaths (getLibrarySearchPaths (config)); - if (librarySearchPaths.size() > 0) - linker->setAttribute ("AdditionalLibraryDirectories", librarySearchPaths.joinIntoString (";")); - - linker->setAttribute ("GenerateManifest", config.shouldGenerateManifest() ? "true" : "false"); - - if (! isDebug) - { - linker->setAttribute ("OptimizeReferences", "2"); - linker->setAttribute ("EnableCOMDATFolding", "2"); - } - - linker->setAttribute ("TargetMachine", "1"); // (64-bit build = 5) - - const String delayLoadedDLLs (getDelayLoadedDLLs()); - if (delayLoadedDLLs.isNotEmpty()) - linker->setAttribute ("DelayLoadDLLs", delayLoadedDLLs); - - if (config.config [Ids::msvcModuleDefinitionFile].toString().isNotEmpty()) - linker->setAttribute ("ModuleDefinitionFile", config.config [Ids::msvcModuleDefinitionFile].toString()); - - const String externalLibraries (getExternalLibraries (config, getOwner().getExternalLibrariesString())); - if (externalLibraries.isNotEmpty()) - linker->setAttribute ("AdditionalDependencies", getOwner().replacePreprocessorTokens (config, externalLibraries).trim()); - - String extraLinkerOptions (getOwner().getExtraLinkerFlagsString()); - if (extraLinkerOptions.isNotEmpty()) - linker->setAttribute ("AdditionalOptions", getOwner().replacePreprocessorTokens (config, extraLinkerOptions).trim()); - } - else - { - XmlElement* librarian = createToolElement (xml, "VCLibrarianTool"); - - librarian->setAttribute ("OutputFile", getOutputFilePath (config)); - librarian->setAttribute ("IgnoreDefaultLibraryNames", isDebug ? "libcmt.lib, msvcrt.lib" : ""); - } - - createToolElement (xml, "VCALinkTool"); - createToolElement (xml, "VCManifestTool"); - createToolElement (xml, "VCXDCMakeTool"); - - { - XmlElement* bscMake = createToolElement (xml, "VCBscMakeTool"); - bscMake->setAttribute ("SuppressStartupBanner", "true"); - bscMake->setAttribute ("OutputFile", getOwner().getIntDirFile (config, config.getOutputFilename (".bsc", true))); - } - - createToolElement (xml, "VCFxCopTool"); - - if (fileType != staticLibrary) - createToolElement (xml, "VCAppVerifierTool"); - - XmlElement* postBuildEvent = createToolElement (xml, "VCPostBuildEventTool"); - const String postBuild = getPostBuildSteps (config); - - if (postBuild.isNotEmpty()) - { - postBuildEvent->setAttribute ("Description", "Post-build"); - postBuildEvent->setAttribute ("CommandLine", postBuild); - } - } - - void createConfigs (XmlElement& xml) const - { - for (ConstConfigIterator config (getOwner()); config.next();) - createConfig (*xml.createNewChildElement ("Configuration"), - dynamic_cast (*config)); - } - - //============================================================================== - void addFile (const RelativePath& file, XmlElement& parent, const bool useStdcall) const - { - jassert (file.getRoot() == RelativePath::buildTargetFolder); - - XmlElement* fileXml = parent.createNewChildElement ("File"); - fileXml->setAttribute ("RelativePath", file.toWindowsStyle()); - - if (useStdcall) - { - for (ConstConfigIterator i (getOwner()); i.next();) - { - const MSVCBuildConfiguration& config = dynamic_cast (*i); - XmlElement* fileConfig = fileXml->createNewChildElement ("FileConfiguration"); - fileConfig->setAttribute ("Name", config.createMSVCConfigName()); - - XmlElement* tool = createToolElement (*fileConfig, "VCCLCompilerTool"); - - if (useStdcall) - tool->setAttribute ("CallingConvention", "2"); - } - } - } - - XmlElement* createGroup (const String& groupName, XmlElement& parent) const - { - XmlElement* filter = parent.createNewChildElement ("Filter"); - filter->setAttribute ("Name", groupName); - return filter; - } - - void addFiles (const Project::Item& projectItem, XmlElement& parent) const - { - const Type targetType = (getOwner().getProject().getProjectType().isAudioPlugin() ? type : SharedCodeTarget); - - if (projectItem.isGroup()) - { - XmlElement* filter = createGroup (projectItem.getName(), parent); - - for (int i = 0; i < projectItem.getNumChildren(); ++i) - addFiles (projectItem.getChild (i), *filter); - } - else if (projectItem.shouldBeCompiled() - && getOwner().getProject().getTargetTypeFromFilePath (projectItem.getFile(), true) == targetType) - { - const RelativePath path (projectItem.getFile(), getOwner().getTargetFolder(), RelativePath::buildTargetFolder); - - if (getOwner().shouldFileBeCompiledByDefault (path)) - addFile (path, parent, getOwner().shouldFileBeCompiledByDefault (path) && shouldUseStdCall (path)); - } - } - - void createFiles (XmlElement& files) const - { - for (int i = 0; i < getOwner().getAllGroups().size(); ++i) - { - const Project::Item& group = getOwner().getAllGroups().getReference (i); - - if (group.getNumChildren() > 0) - addFiles (group, files); - } - } - }; - - //============================================================================== - void addPlatformSpecificSettingsForProjectType (const ProjectType& type) override - { - MSVCProjectExporterBase::addPlatformSpecificSettingsForProjectType (type); - - callForAllSupportedTargets ([this] (ProjectType::Target::Type targetType) - { - if (MSVCTargetBase* target = new MSVC2008Target (targetType, *this)) - { - if (targetType != ProjectType::Target::AggregateTarget) - targets.add (target); - } - }); - - // If you hit this assert, you tried to generate a project for an exporter - // that does not support any of your targets! - jassert (targets.size() > 0); - } - - void create (const OwnedArray&) const override - { - createResourcesAndIcon(); - - if (hasResourceFile()) - { - for (int i = 0; i < getAllGroups().size(); ++i) - { - Project::Item& group = getAllGroups().getReference (i); - - if (group.getID() == ProjectSaver::getGeneratedGroupID()) - { - if (iconFile != File()) - { - group.addFileAtIndex (iconFile, -1, true); - group.findItemForFile (iconFile).getShouldAddToBinaryResourcesValue() = false; - } - - group.addFileAtIndex (rcFile, -1, true); - group.findItemForFile (rcFile).getShouldAddToBinaryResourcesValue() = false; - - break; - } - } - } - - for (int i = 0; i < targets.size(); ++i) - if (MSVCTargetBase* target = targets[i]) - target->writeProjectFile(); - - { - MemoryOutputStream mo; - writeSolutionFile (mo, getSolutionVersionString(), String()); - - overwriteFileIfDifferentOrThrow (getSLNFile(), mo); - } - } - -protected: - virtual String getSolutionVersionString() const { return String ("10.00") + newLine + "# Visual C++ Express 2008"; } - - //============================================================================== - static const char* getOptimisationLevelString (int level) - { - switch (level) - { - case optimiseMaxSpeed: return "3"; - case optimiseMinSize: return "1"; - default: return "0"; - } - } - - //============================================================================== - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2008) -}; - - -//============================================================================== -class MSVCProjectExporterVC2005 : public MSVCProjectExporterVC2008 -{ -public: - MSVCProjectExporterVC2005 (Project& p, const ValueTree& t) - : MSVCProjectExporterVC2008 (p, t, "VisualStudio2005") - { - name = getName(); - } - - class MSVC2005Target : public MSVC2008Target - { - public: - MSVC2005Target (ProjectType::Target::Type targetType, const MSVCProjectExporterVC2005& exporter) - : MSVC2008Target (targetType, exporter) - {} - - const MSVCProjectExporterVC2005& getOwner() const { return dynamic_cast (owner); } - String getProjectVersionString() const override { return "8.00"; } - }; - - static const char* getName() { return "Visual Studio 2005"; } - static const char* getValueTreeTypeName() { return "VS2005"; } - int getVisualStudioVersion() const override { return 8; } - - static MSVCProjectExporterVC2005* createForSettings (Project& project, const ValueTree& settings) - { - if (settings.hasType (getValueTreeTypeName())) - return new MSVCProjectExporterVC2005 (project, settings); - - return nullptr; - } - -protected: - String getSolutionVersionString() const override { return String ("9.00") + newLine + "# Visual C++ Express 2005"; } - - JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2005) -}; - //============================================================================== class MSVCProjectExporterVC2010 : public MSVCProjectExporterBase { diff --git a/extras/Projucer/Source/Project Saving/jucer_ProjectExporter.cpp b/extras/Projucer/Source/Project Saving/jucer_ProjectExporter.cpp index 9279b13a50..6b96b46928 100644 --- a/extras/Projucer/Source/Project Saving/jucer_ProjectExporter.cpp +++ b/extras/Projucer/Source/Project Saving/jucer_ProjectExporter.cpp @@ -50,8 +50,6 @@ Array ProjectExporter::getExporterTypes() addType (types, MSVCProjectExporterVC2013::getName(), BinaryData::projectIconVisualStudio_png, BinaryData::projectIconVisualStudio_pngSize); addType (types, MSVCProjectExporterVC2012::getName(), BinaryData::projectIconVisualStudio_png, BinaryData::projectIconVisualStudio_pngSize); addType (types, MSVCProjectExporterVC2010::getName(), BinaryData::projectIconVisualStudio_png, BinaryData::projectIconVisualStudio_pngSize); - addType (types, MSVCProjectExporterVC2008::getName(), BinaryData::projectIconVisualStudio_png, BinaryData::projectIconVisualStudio_pngSize); - addType (types, MSVCProjectExporterVC2005::getName(), BinaryData::projectIconVisualStudio_png, BinaryData::projectIconVisualStudio_pngSize); addType (types, MakefileProjectExporter::getNameLinux(), BinaryData::projectIconLinuxMakefile_png, BinaryData::projectIconLinuxMakefile_pngSize); addType (types, AndroidProjectExporter::getName(), BinaryData::projectIconAndroid_png, BinaryData::projectIconAndroid_pngSize); addType (types, CodeBlocksProjectExporter::getNameWindows(), BinaryData::projectIconCodeblocks_png, BinaryData::projectIconCodeblocks_pngSize); @@ -72,12 +70,10 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const int case 3: exp = new MSVCProjectExporterVC2013 (project, ValueTree (MSVCProjectExporterVC2013 ::getValueTreeTypeName())); break; case 4: exp = new MSVCProjectExporterVC2012 (project, ValueTree (MSVCProjectExporterVC2012 ::getValueTreeTypeName())); break; case 5: exp = new MSVCProjectExporterVC2010 (project, ValueTree (MSVCProjectExporterVC2010 ::getValueTreeTypeName())); break; - case 6: exp = new MSVCProjectExporterVC2008 (project, ValueTree (MSVCProjectExporterVC2008 ::getValueTreeTypeName())); break; - case 7: exp = new MSVCProjectExporterVC2005 (project, ValueTree (MSVCProjectExporterVC2005 ::getValueTreeTypeName())); break; - case 8: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter ::getValueTreeTypeName())); break; - case 9: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter ::getValueTreeTypeName())); break; - case 10: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter ::getValueTreeTypeName (CodeBlocksProjectExporter::windowsTarget)), CodeBlocksProjectExporter::windowsTarget); break; - case 11: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter ::getValueTreeTypeName (CodeBlocksProjectExporter::linuxTarget)), CodeBlocksProjectExporter::linuxTarget); break; + case 6: exp = new MakefileProjectExporter (project, ValueTree (MakefileProjectExporter ::getValueTreeTypeName())); break; + case 7: exp = new AndroidProjectExporter (project, ValueTree (AndroidProjectExporter ::getValueTreeTypeName())); break; + case 8: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter ::getValueTreeTypeName (CodeBlocksProjectExporter::windowsTarget)), CodeBlocksProjectExporter::windowsTarget); break; + case 9: exp = new CodeBlocksProjectExporter (project, ValueTree (CodeBlocksProjectExporter ::getValueTreeTypeName (CodeBlocksProjectExporter::linuxTarget)), CodeBlocksProjectExporter::linuxTarget); break; default: jassertfalse; return 0; } @@ -118,9 +114,7 @@ ProjectExporter* ProjectExporter::createNewExporter (Project& project, const Str ProjectExporter* ProjectExporter::createExporter (Project& project, const ValueTree& settings) { - ProjectExporter* exp = MSVCProjectExporterVC2005 ::createForSettings (project, settings); - if (exp == nullptr) exp = MSVCProjectExporterVC2008 ::createForSettings (project, settings); - if (exp == nullptr) exp = MSVCProjectExporterVC2010 ::createForSettings (project, settings); + ProjectExporter* exp = MSVCProjectExporterVC2010 ::createForSettings (project, settings); if (exp == nullptr) exp = MSVCProjectExporterVC2012 ::createForSettings (project, settings); if (exp == nullptr) exp = MSVCProjectExporterVC2013 ::createForSettings (project, settings); if (exp == nullptr) exp = MSVCProjectExporterVC2015 ::createForSettings (project, settings); @@ -143,8 +137,6 @@ bool ProjectExporter::canProjectBeLaunched (Project* project) XCodeProjectExporter::getValueTreeTypeName (false), XCodeProjectExporter::getValueTreeTypeName (true), #elif JUCE_WINDOWS - MSVCProjectExporterVC2005::getValueTreeTypeName(), - MSVCProjectExporterVC2008::getValueTreeTypeName(), MSVCProjectExporterVC2010::getValueTreeTypeName(), MSVCProjectExporterVC2012::getValueTreeTypeName(), MSVCProjectExporterVC2013::getValueTreeTypeName(), @@ -513,7 +505,7 @@ static bool areCompatibleExporters (const ProjectExporter& p1, const ProjectExpo return (p1.isVisualStudio() && p2.isVisualStudio()) || (p1.isXcode() && p2.isXcode()) || (p1.isMakefile() && p2.isMakefile()) - || (p1.isAndroid() && p2.isAndroid()) + || (p1.isAndroidStudio() && p2.isAndroidStudio()) || (p1.isCodeBlocks() && p2.isCodeBlocks() && p1.isWindows() != p2.isLinux()); }