VS: Use $(ConfigurationName) as CMAKE_CFG_INTDIR in VS 7, 8, 9

This will allow us to use a value other than just the config name
for the project OutputDirectory setting used for $(OutDir).

Also use $(ConfigurationName) instead of $(OutDir) for the link
directory configuration suffix since that is a hard-coded instance of
a use case for CMAKE_CFG_INTDIR.
This commit is contained in:
Brad King 2015-02-16 11:11:37 -05:00
parent ec1ec47193
commit aa2ba12164
4 changed files with 19 additions and 7 deletions

View File

@ -0,0 +1,10 @@
vs7-OutputDirectory
-------------------
* The :variable:`CMAKE_CFG_INTDIR` variable value for Visual Studio
7, 8, and 9 is now ``$(ConfigurationName)`` instead of ``$(OutDir)``.
This should have no effect on the intended use cases of the variable.
* With Visual Studio 7, 8, and 9 generators the value of the ``$(OutDir)``
placeholder no longer evaluates to the configuration name. Projects
should use ``$(ConfigurationName)`` for that instead.

View File

@ -12,11 +12,11 @@ values:
::
$(IntDir) = Visual Studio 6
$(OutDir) = Visual Studio 7, 8, 9
$(Configuration) = Visual Studio 10
$(CONFIGURATION) = Xcode
. = Make-based tools
$(IntDir) = Visual Studio 6
$(ConfigurationName) = Visual Studio 7, 8, 9
$(Configuration) = Visual Studio 10
$(CONFIGURATION) = Xcode
. = Make-based tools
Since these values are evaluated by the native build system, this
variable is suitable only for use in command lines that will be

View File

@ -94,7 +94,8 @@ public:
std::string& dir);
///! What is the configurations directory variable called?
virtual const char* GetCMakeCFGIntDir() const { return "$(OutDir)"; }
virtual const char* GetCMakeCFGIntDir() const
{ return "$(ConfigurationName)"; }
/** Return true if the target project file should have the option
LinkLibraryDependencies and link to .sln dependencies. */

View File

@ -1441,7 +1441,8 @@ cmLocalVisualStudio7Generator
// First search a configuration-specific subdirectory and then the
// original directory.
fout << comma << this->ConvertToXMLOutputPath((dir+"/$(OutDir)").c_str())
fout << comma
<< this->ConvertToXMLOutputPath((dir+"/$(ConfigurationName)").c_str())
<< "," << this->ConvertToXMLOutputPath(dir.c_str());
comma = ",";
}