summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2003-03-17 14:15:57 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2003-03-17 14:15:57 (GMT)
commit0afb1fa1aa84302e6dc50cec3418add7adce4474 (patch)
tree7c10c4ec585c9af90f86fefe40c9e7fb8ece0513 /Source/cmLocalVisualStudio7Generator.cxx
parenta2c4d8eb90efe6f8d343fc91b9ee1552c6890f14 (diff)
downloadCMake-0afb1fa1aa84302e6dc50cec3418add7adce4474.zip
CMake-0afb1fa1aa84302e6dc50cec3418add7adce4474.tar.gz
CMake-0afb1fa1aa84302e6dc50cec3418add7adce4474.tar.bz2
force cxx compiler for cxx files
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.cxx')
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 85ef8c8..da80e6f 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -250,7 +250,6 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
if(target.HasCxx())
{
flags = m_Makefile->GetDefinition("CMAKE_CXX_FLAGS");
- flags += " -TP ";
}
else
{
@@ -725,13 +724,19 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
{
std::string source = cc->first;
const cmSourceGroup::Commands& commands = cc->second.m_Commands;
- const char* compileFlags = 0;
+ std::string compileFlags;
std::string additionalDeps;
if(cc->second.m_SourceFile)
{
// Check for extra compiler flags.
compileFlags = cc->second.m_SourceFile->GetProperty("COMPILE_FLAGS");
-
+ if(cmSystemTools::GetFileFormat(
+ cc->second.m_SourceFile->GetSourceExtension().c_str())
+ == cmSystemTools::CXX_FILE_FORMAT)
+ {
+ // force a C++ file type
+ compileFlags += " /TP ";
+ }
// Check for extra object-file dependencies.
const char* deps =
cc->second.m_SourceFile->GetProperty("OBJECT_DEPENDS");
@@ -765,12 +770,13 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
totalCommandStr = this->CombineCommands(commands, totalCommand,
source.c_str());
const char* comment = totalCommand.m_Comment.c_str();
+ const char* flags = compileFlags.size() ? compileFlags.c_str(): 0;
this->WriteCustomRule(fout, source.c_str(), totalCommandStr.c_str(),
(*comment?comment:"Custom Rule"),
totalCommand.m_Depends,
- totalCommand.m_Outputs, compileFlags);
+ totalCommand.m_Outputs, flags);
}
- else if(compileFlags || additionalDeps.length())
+ else if(compileFlags.size() || additionalDeps.length())
{
for(std::vector<std::string>::iterator i = configs->begin();
i != configs->end(); ++i)
@@ -779,7 +785,7 @@ void cmLocalVisualStudio7Generator::WriteVCProjFile(std::ostream& fout,
<< "\t\t\t\t\tName=\"" << *i << "|Win32\">\n"
<< "\t\t\t\t\t<Tool\n"
<< "\t\t\t\t\tName=\"VCCLCompilerTool\"\n";
- if(compileFlags)
+ if(compileFlags.size())
{
fout << "\t\t\t\t\tAdditionalOptions=\""
<< compileFlags << "\"\n";