summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.cxx
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2006-10-13 20:13:14 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2006-10-13 20:13:14 (GMT)
commit655ba54e2d74f50441829001995a4e1ce1a1ae88 (patch)
tree9f211dd6706c1e0130fdfb452f7b656e9d2ce88f /Source/cmLocalVisualStudio7Generator.cxx
parentbf74cd9d832c065c348142fc6132859e7da6396b (diff)
downloadCMake-655ba54e2d74f50441829001995a4e1ce1a1ae88.zip
CMake-655ba54e2d74f50441829001995a4e1ce1a1ae88.tar.gz
CMake-655ba54e2d74f50441829001995a4e1ce1a1ae88.tar.bz2
BUG: fix for bug#3908 if header_file_only is set on cxx files in visual studio do not compile them
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.cxx')
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx18
1 files changed, 14 insertions, 4 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 94ff58c..0fbca35 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1148,7 +1148,6 @@ void cmLocalVisualStudio7Generator
{
objectName = "";
}
-
// Add per-source flags.
const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS");
if(cflags)
@@ -1161,6 +1160,12 @@ void cmLocalVisualStudio7Generator
const char* linkLanguage = target.GetLinkerLanguage
(this->GetGlobalGenerator());
+ // If lang is set, the compiler will generate code automatically.
+ // If HEADER_FILE_ONLY is set, we must suppress this generation in
+ // the project file
+ bool excludedFromBuild =
+ (lang && (*sf)->GetPropertyAsBool("HEADER_FILE_ONLY"));
+
// if the source file does not match the linker language
// then force c or c++
if(linkLanguage && lang && strcmp(lang, linkLanguage) != 0)
@@ -1216,7 +1221,7 @@ void cmLocalVisualStudio7Generator
command->GetOutputs(), flags);
}
else if(compileFlags.size() || additionalDeps.length()
- || objectName.size())
+ || objectName.size() || excludedFromBuild)
{
const char* aCompilerTool = "VCCLCompilerTool";
std::string ext = (*sf)->GetSourceExtension();
@@ -1238,8 +1243,13 @@ void cmLocalVisualStudio7Generator
{
fout << "\t\t\t\t<FileConfiguration\n"
<< "\t\t\t\t\tName=\"" << *i
- << "|" << this->PlatformName << "\">\n"
- << "\t\t\t\t\t<Tool\n"
+ << "|" << this->PlatformName << "\"";
+ if(excludedFromBuild)
+ {
+ fout << " ExcludedFromBuild=\"true\"";
+ }
+ fout << ">\n";
+ fout << "\t\t\t\t\t<Tool\n"
<< "\t\t\t\t\tName=\"" << aCompilerTool << "\"\n";
if(compileFlags.size())
{