BUG: Add target-level COMPILE_FLAGS to the target not the individual source files. This simplifies the generated files and puts flags in a more logical order (VS6 works, VS7 needs more translation to work).

This commit is contained in:
Brad King 2006-02-20 14:21:10 -05:00
parent 39e636a4a4
commit 7bdec94154
2 changed files with 20 additions and 15 deletions

View File

@ -432,15 +432,11 @@ void cmLocalVisualStudio6Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
(*sf)->GetCustomCommand();
std::string compileFlags;
std::vector<std::string> depends;
const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS");
if(cflags)
// Add per-source file flags.
if(const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS"))
{
compileFlags = cflags;
}
if(target.GetProperty("COMPILE_FLAGS"))
{
compileFlags += " ";
compileFlags += target.GetProperty("COMPILE_FLAGS");
compileFlags += cflags;
}
const char* lang =
@ -1246,7 +1242,14 @@ void cmLocalVisualStudio6Generator
{
flags += " /D \"_MBCS\"";
}
// Add per-target flags.
if(const char* targetFlags = target.GetProperty("COMPILE_FLAGS"))
{
flags += " ";
flags += targetFlags;
}
// The template files have CXX FLAGS in them, that need to be replaced.
// There are not separate CXX and C template files, so we use the same
// variable names. The previous code sets up flags* variables to contain

View File

@ -520,6 +520,13 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
programDatabase += "\"";
}
// Add the target-specific flags.
if(const char* targetFlags = target.GetProperty("COMPILE_FLAGS"))
{
flags += " ";
flags += targetFlags;
}
// The intermediate directory name consists of a directory for the
// target and a subdirectory for the configuration name.
std::string intermediateDir = this->GetTargetDirectory(target);
@ -1084,12 +1091,7 @@ void cmLocalVisualStudio7Generator::WriteGroup(const cmSourceGroup *sg, cmTarget
std::string compileFlags;
std::string additionalDeps;
// Check for extra compiler flags.
if(target.GetProperty("COMPILE_FLAGS"))
{
compileFlags += " ";
compileFlags += target.GetProperty("COMPILE_FLAGS");
}
// Add per-source flags.
const char* cflags = (*sf)->GetProperty("COMPILE_FLAGS");
if(cflags)
{