diff options
author | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
---|---|---|
committer | MyungJoo Ham <myungjoo.ham@samsung.com> | 2017-10-11 15:16:57 +0900 |
commit | 915c76ded744c0f5f151402b9fa69f3fd8452573 (patch) | |
tree | ca6a387466543248890f346847acaa8343989b22 /Source/cmLocalVisualStudio7Generator.h | |
parent | 317dbdb79761ef65e45c7358cfc7571c6afa54ad (diff) | |
download | cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.gz cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.tar.bz2 cmake-915c76ded744c0f5f151402b9fa69f3fd8452573.zip |
Imported Upstream version 3.9.4upstream/3.9.4
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.h')
-rw-r--r-- | Source/cmLocalVisualStudio7Generator.h | 129 |
1 files changed, 67 insertions, 62 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h index 92e4d3c12..89a3ee353 100644 --- a/Source/cmLocalVisualStudio7Generator.h +++ b/Source/cmLocalVisualStudio7Generator.h @@ -1,29 +1,25 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmLocalVisualStudio7Generator_h #define cmLocalVisualStudio7Generator_h +#include "cmConfigure.h" + +#include <iosfwd> +#include <string> +#include <vector> + #include "cmLocalVisualStudioGenerator.h" #include "cmVisualStudioGeneratorOptions.h" -class cmTarget; -class cmSourceFile; class cmCustomCommand; -class cmSourceGroup; - - -class cmLocalVisualStudio7GeneratorOptions; +class cmGeneratorTarget; +class cmGlobalGenerator; class cmLocalVisualStudio7GeneratorFCInfo; class cmLocalVisualStudio7GeneratorInternals; +class cmMakefile; +class cmSourceFile; +class cmSourceGroup; /** \class cmLocalVisualStudio7Generator * \brief Write Visual Studio .NET project files. @@ -35,7 +31,7 @@ class cmLocalVisualStudio7Generator : public cmLocalVisualStudioGenerator { public: ///! Set cache only and recurse to false by default. - cmLocalVisualStudio7Generator(VSVersion v); + cmLocalVisualStudio7Generator(cmGlobalGenerator* gg, cmMakefile* mf); virtual ~cmLocalVisualStudio7Generator(); @@ -46,87 +42,96 @@ public: */ virtual void Generate(); - enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE, WIN32_EXECUTABLE, UTILITY}; + enum BuildType + { + STATIC_LIBRARY, + DLL, + EXECUTABLE, + WIN32_EXECUTABLE, + UTILITY + }; /** * Specify the type of the build: static, dll, or executable. */ - void SetBuildType(BuildType,const char *name); + void SetBuildType(BuildType, const std::string& name); - void SetPlatformName(const char* n) { this->PlatformName = n;} - - void SetExtraFlagTable(cmVS7FlagTable const* table) - { this->ExtraFlagTable = table; } - virtual std::string GetTargetDirectory(cmTarget const&) const; + virtual std::string GetTargetDirectory( + cmGeneratorTarget const* target) const; cmSourceFile* CreateVCProjBuildRule(); void WriteStampFiles(); - virtual std::string ComputeLongestObjectDirectory(cmTarget&) const; + virtual std::string ComputeLongestObjectDirectory( + cmGeneratorTarget const*) const; - virtual void ReadAndStoreExternalGUID(const char* name, + virtual void ReadAndStoreExternalGUID(const std::string& name, const char* path); virtual void AddCMakeListsRules(); + protected: - void CreateSingleVCProj(const char *lname, cmTarget &tgt); + void CreateSingleVCProj(const std::string& lname, cmGeneratorTarget* tgt); + private: typedef cmVisualStudioGeneratorOptions Options; typedef cmLocalVisualStudio7GeneratorFCInfo FCInfo; std::string GetBuildTypeLinkerFlags(std::string rootLinkerFlags, - const char* configName); + const std::string& configName); void FixGlobalTargets(); void WriteProjectFiles(); - void WriteVCProjHeader(std::ostream& fout, const char *libName, - cmTarget &tgt, std::vector<cmSourceGroup> &sgs); - void WriteVCProjFooter(std::ostream& fout, cmTarget &target); - void WriteVCProjFile(std::ostream& fout, const char *libName, - cmTarget &tgt); + void WriteVCProjHeader(std::ostream& fout, const std::string& libName, + cmGeneratorTarget* tgt, + std::vector<cmSourceGroup>& sgs); + void WriteVCProjFooter(std::ostream& fout, cmGeneratorTarget* target); + void WriteVCProjFile(std::ostream& fout, const std::string& libName, + cmGeneratorTarget* tgt); void WriteConfigurations(std::ostream& fout, - const char *libName, cmTarget &tgt); - void WriteConfiguration(std::ostream& fout, - const char* configName, - const char* libName, cmTarget &tgt); - std::string EscapeForXML(const char* s); + std::vector<std::string> const& configs, + const std::string& libName, cmGeneratorTarget* tgt); + void WriteConfiguration(std::ostream& fout, const std::string& configName, + const std::string& libName, cmGeneratorTarget* tgt); + std::string EscapeForXML(const std::string& s); std::string ConvertToXMLOutputPath(const char* path); std::string ConvertToXMLOutputPathSingle(const char* path); - void OutputTargetRules(std::ostream& fout, const char* configName, - cmTarget &target, const char *libName); - void OutputBuildTool(std::ostream& fout, const char* configName, - cmTarget& t, const Options& targetOptions); + void OutputTargetRules(std::ostream& fout, const std::string& configName, + cmGeneratorTarget* target, + const std::string& libName); + void OutputBuildTool(std::ostream& fout, const std::string& configName, + cmGeneratorTarget* t, const Options& targetOptions); + void OutputDeploymentDebuggerTool(std::ostream& fout, + std::string const& config, + cmGeneratorTarget* target); void OutputLibraryDirectories(std::ostream& fout, std::vector<std::string> const& dirs); - void WriteProjectSCC(std::ostream& fout, cmTarget& target); - void WriteProjectStart(std::ostream& fout, const char *libName, - cmTarget &tgt, std::vector<cmSourceGroup> &sgs); - void WriteProjectStartFortran(std::ostream& fout, const char *libName, - cmTarget &tgt); - void WriteVCProjBeginGroup(std::ostream& fout, - const char* group, - const char* filter); + void WriteProjectSCC(std::ostream& fout, cmGeneratorTarget* target); + void WriteProjectStart(std::ostream& fout, const std::string& libName, + cmGeneratorTarget* tgt, + std::vector<cmSourceGroup>& sgs); + void WriteProjectStartFortran(std::ostream& fout, const std::string& libName, + cmGeneratorTarget* tgt); + void WriteVCProjBeginGroup(std::ostream& fout, const char* group, + const char* filter); void WriteVCProjEndGroup(std::ostream& fout); void WriteCustomRule(std::ostream& fout, - const char* source, - const cmCustomCommand& command, + std::vector<std::string> const& configs, + const char* source, const cmCustomCommand& command, FCInfo& fcinfo); - void WriteTargetVersionAttribute(std::ostream& fout, cmTarget& target); + void WriteTargetVersionAttribute(std::ostream& fout, cmGeneratorTarget* gt); - bool WriteGroup(const cmSourceGroup *sg, - cmTarget& target, std::ostream &fout, - const char *libName, std::vector<std::string> *configs); + bool WriteGroup(const cmSourceGroup* sg, cmGeneratorTarget* target, + std::ostream& fout, const std::string& libName, + std::vector<std::string> const& configs, + std::map<cmSourceFile const*, size_t> const& sourcesIndex); friend class cmLocalVisualStudio7GeneratorFCInfo; friend class cmLocalVisualStudio7GeneratorInternals; class EventWriter; + friend class EventWriter; - cmVS7FlagTable const* ExtraFlagTable; - std::string ModuleDefinitionFile; bool FortranProject; bool WindowsCEProject; - std::string PlatformName; // Win32 or x64 cmLocalVisualStudio7GeneratorInternals* Internal; }; - #endif - |