VS: Simplify setting of flag table.
This commit is contained in:
parent
fa85829712
commit
b5f093f096
|
@ -31,7 +31,6 @@ cmGlobalVisualStudio71Generator::CreateLocalGenerator(cmLocalGenerator* parent)
|
||||||
cmLocalVisualStudio7Generator *lg =
|
cmLocalVisualStudio7Generator *lg =
|
||||||
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS71,
|
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS71,
|
||||||
this, parent);
|
this, parent);
|
||||||
lg->SetExtraFlagTable(this->GetExtraFlagTableVS7());
|
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,32 @@
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
#include <cmsys/Encoding.hxx>
|
#include <cmsys/Encoding.hxx>
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
static cmVS7FlagTable cmVS7ExtraFlagTable[] =
|
||||||
|
{
|
||||||
|
// Precompiled header and related options. Note that the
|
||||||
|
// UsePrecompiledHeader entries are marked as "Continue" so that the
|
||||||
|
// corresponding PrecompiledHeaderThrough entry can be found.
|
||||||
|
{"UsePrecompiledHeader", "YX", "Automatically Generate", "2",
|
||||||
|
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
|
||||||
|
{"PrecompiledHeaderThrough", "YX", "Precompiled Header Name", "",
|
||||||
|
cmVS7FlagTable::UserValueRequired},
|
||||||
|
{"UsePrecompiledHeader", "Yu", "Use Precompiled Header", "3",
|
||||||
|
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
|
||||||
|
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
|
||||||
|
cmVS7FlagTable::UserValueRequired},
|
||||||
|
{"WholeProgramOptimization", "LTCG", "WholeProgramOptimization", "true", 0},
|
||||||
|
|
||||||
|
// Exception handling mode. If no entries match, it will be FALSE.
|
||||||
|
{"ExceptionHandling", "GX", "enable c++ exceptions", "true", 0},
|
||||||
|
{"ExceptionHandling", "EHsc", "enable c++ exceptions", "true", 0},
|
||||||
|
// The EHa option does not have an IDE setting. Let it go to false,
|
||||||
|
// and have EHa passed on the command line by leaving out the table
|
||||||
|
// entry.
|
||||||
|
|
||||||
|
{0,0,0,0,0}
|
||||||
|
};
|
||||||
|
|
||||||
cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
|
cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
|
||||||
const std::string& platformName)
|
const std::string& platformName)
|
||||||
{
|
{
|
||||||
|
@ -33,6 +59,7 @@ cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
|
||||||
{
|
{
|
||||||
this->DefaultPlatformName = platformName;
|
this->DefaultPlatformName = platformName;
|
||||||
}
|
}
|
||||||
|
this->ExtraFlagTable = cmVS7ExtraFlagTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmGlobalVisualStudio7Generator::~cmGlobalVisualStudio7Generator()
|
cmGlobalVisualStudio7Generator::~cmGlobalVisualStudio7Generator()
|
||||||
|
@ -256,7 +283,6 @@ cmGlobalVisualStudio7Generator::CreateLocalGenerator(cmLocalGenerator* parent)
|
||||||
cmLocalVisualStudio7Generator *lg =
|
cmLocalVisualStudio7Generator *lg =
|
||||||
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS7,
|
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS7,
|
||||||
this, parent);
|
this, parent);
|
||||||
lg->SetExtraFlagTable(this->GetExtraFlagTableVS7());
|
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1086,36 +1112,6 @@ cmGlobalVisualStudio7Generator
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
|
||||||
static cmVS7FlagTable cmVS7ExtraFlagTable[] =
|
|
||||||
{
|
|
||||||
// Precompiled header and related options. Note that the
|
|
||||||
// UsePrecompiledHeader entries are marked as "Continue" so that the
|
|
||||||
// corresponding PrecompiledHeaderThrough entry can be found.
|
|
||||||
{"UsePrecompiledHeader", "YX", "Automatically Generate", "2",
|
|
||||||
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
|
|
||||||
{"PrecompiledHeaderThrough", "YX", "Precompiled Header Name", "",
|
|
||||||
cmVS7FlagTable::UserValueRequired},
|
|
||||||
{"UsePrecompiledHeader", "Yu", "Use Precompiled Header", "3",
|
|
||||||
cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue},
|
|
||||||
{"PrecompiledHeaderThrough", "Yu", "Precompiled Header Name", "",
|
|
||||||
cmVS7FlagTable::UserValueRequired},
|
|
||||||
{"WholeProgramOptimization", "LTCG", "WholeProgramOptimization", "true", 0},
|
|
||||||
|
|
||||||
// Exception handling mode. If no entries match, it will be FALSE.
|
|
||||||
{"ExceptionHandling", "GX", "enable c++ exceptions", "true", 0},
|
|
||||||
{"ExceptionHandling", "EHsc", "enable c++ exceptions", "true", 0},
|
|
||||||
// The EHa option does not have an IDE setting. Let it go to false,
|
|
||||||
// and have EHa passed on the command line by leaving out the table
|
|
||||||
// entry.
|
|
||||||
|
|
||||||
{0,0,0,0,0}
|
|
||||||
};
|
|
||||||
cmIDEFlagTable const* cmGlobalVisualStudio7Generator::GetExtraFlagTableVS7()
|
|
||||||
{
|
|
||||||
return cmVS7ExtraFlagTable;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string cmGlobalVisualStudio7Generator::Encoding()
|
std::string cmGlobalVisualStudio7Generator::Encoding()
|
||||||
{
|
{
|
||||||
std::ostringstream encoding;
|
std::ostringstream encoding;
|
||||||
|
|
|
@ -111,6 +111,8 @@ public:
|
||||||
// Encoding for Visual Studio files
|
// Encoding for Visual Studio files
|
||||||
virtual std::string Encoding();
|
virtual std::string Encoding();
|
||||||
|
|
||||||
|
cmIDEFlagTable const* ExtraFlagTable;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void Generate();
|
virtual void Generate();
|
||||||
virtual const char* GetIDEVersion() { return "7.0"; }
|
virtual const char* GetIDEVersion() { return "7.0"; }
|
||||||
|
@ -120,7 +122,6 @@ protected:
|
||||||
|
|
||||||
static const char* ExternalProjectType(const char* location);
|
static const char* ExternalProjectType(const char* location);
|
||||||
|
|
||||||
static cmIDEFlagTable const* GetExtraFlagTableVS7();
|
|
||||||
virtual void OutputSLNFile(cmLocalGenerator* root,
|
virtual void OutputSLNFile(cmLocalGenerator* root,
|
||||||
std::vector<cmLocalGenerator*>& generators);
|
std::vector<cmLocalGenerator*>& generators);
|
||||||
virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
|
virtual void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
|
||||||
|
|
|
@ -101,6 +101,7 @@ cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
|
||||||
{
|
{
|
||||||
this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
|
this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
|
||||||
this->Name = name;
|
this->Name = name;
|
||||||
|
this->ExtraFlagTable = this->GetExtraFlagTableVS8();
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -131,7 +132,6 @@ cmGlobalVisualStudio8Generator::CreateLocalGenerator(cmLocalGenerator* parent)
|
||||||
cmLocalVisualStudio7Generator *lg =
|
cmLocalVisualStudio7Generator *lg =
|
||||||
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8,
|
new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS8,
|
||||||
this, parent);
|
this, parent);
|
||||||
lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
|
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,6 @@ cmGlobalVisualStudio9Generator::CreateLocalGenerator(cmLocalGenerator* parent)
|
||||||
cmLocalVisualStudio7Generator *lg
|
cmLocalVisualStudio7Generator *lg
|
||||||
= new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9,
|
= new cmLocalVisualStudio7Generator(cmLocalVisualStudioGenerator::VS9,
|
||||||
this, parent);
|
this, parent);
|
||||||
lg->SetExtraFlagTable(this->GetExtraFlagTableVS8());
|
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ cmLocalVisualStudio7Generator
|
||||||
cmLocalGenerator* parent):
|
cmLocalGenerator* parent):
|
||||||
cmLocalVisualStudioGenerator(v, gg, parent)
|
cmLocalVisualStudioGenerator(v, gg, parent)
|
||||||
{
|
{
|
||||||
this->ExtraFlagTable = 0;
|
|
||||||
this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
|
this->Internal = new cmLocalVisualStudio7GeneratorInternals(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -773,7 +772,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
|
||||||
}
|
}
|
||||||
Options targetOptions(this, t,
|
Options targetOptions(this, t,
|
||||||
table,
|
table,
|
||||||
this->ExtraFlagTable);
|
gg->ExtraFlagTable);
|
||||||
targetOptions.FixExceptionHandlingDefault();
|
targetOptions.FixExceptionHandlingDefault();
|
||||||
std::string asmLocation = configName + "/";
|
std::string asmLocation = configName + "/";
|
||||||
targetOptions.AddFlag("AssemblerListingLocation", asmLocation.c_str());
|
targetOptions.AddFlag("AssemblerListingLocation", asmLocation.c_str());
|
||||||
|
@ -1842,7 +1841,7 @@ bool cmLocalVisualStudio7Generator
|
||||||
table = cmLocalVisualStudio7GeneratorFortranFlagTable;
|
table = cmLocalVisualStudio7GeneratorFortranFlagTable;
|
||||||
}
|
}
|
||||||
Options fileOptions(this, tool, table,
|
Options fileOptions(this, tool, table,
|
||||||
this->ExtraFlagTable);
|
gg->ExtraFlagTable);
|
||||||
fileOptions.Parse(fc.CompileFlags.c_str());
|
fileOptions.Parse(fc.CompileFlags.c_str());
|
||||||
fileOptions.AddDefines(fc.CompileDefs.c_str());
|
fileOptions.AddDefines(fc.CompileDefs.c_str());
|
||||||
fileOptions.AddDefines(fc.CompileDefsConfig.c_str());
|
fileOptions.AddDefines(fc.CompileDefsConfig.c_str());
|
||||||
|
|
|
@ -54,8 +54,6 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetBuildType(BuildType,const std::string& name);
|
void SetBuildType(BuildType,const std::string& name);
|
||||||
|
|
||||||
void SetExtraFlagTable(cmVS7FlagTable const* table)
|
|
||||||
{ this->ExtraFlagTable = table; }
|
|
||||||
virtual std::string GetTargetDirectory(cmTarget const&) const;
|
virtual std::string GetTargetDirectory(cmTarget const&) const;
|
||||||
cmSourceFile* CreateVCProjBuildRule();
|
cmSourceFile* CreateVCProjBuildRule();
|
||||||
void WriteStampFiles();
|
void WriteStampFiles();
|
||||||
|
@ -119,7 +117,6 @@ private:
|
||||||
class EventWriter;
|
class EventWriter;
|
||||||
friend class EventWriter;
|
friend class EventWriter;
|
||||||
|
|
||||||
cmVS7FlagTable const* ExtraFlagTable;
|
|
||||||
std::string ModuleDefinitionFile;
|
std::string ModuleDefinitionFile;
|
||||||
bool FortranProject;
|
bool FortranProject;
|
||||||
bool WindowsCEProject;
|
bool WindowsCEProject;
|
||||||
|
|
Loading…
Reference in New Issue