[CMake] How To change VS2005 Output directory

Tyler tyler at cryptio.net
Mon Feb 2 18:39:08 EST 2009


On Mon, Feb 02, 2009 at 05:00:13PM -0500, LaViolette, Alan wrote:
> From what I can see the VCLinker OutputFile is set to the value of
> target.GetDirectory(configName).
> (cmLocalVisualStudio7Generator::OutputBuildTool() ~ line 953)
> 
> The cmTarget::GetDirectory() calls
> cmGlobalVisualStudio7Generator::AppendDirectoryForConfig() when a config
> name is passed in
> 
> The cmGlobalVisualStudio7Generator::AppendDirectoryForConfig()
> implementation always appends the name.
> 
> From what I can see in the source code the VS2005 generator will place
> the config name in the output path always.
> 
> The CMAKE_CFG_INTDIR is only used in cmTarget::NormalGetLocation() the
> VS2005 generator does not call this from what I can tell

By investigate, I just meant read the docs :p:

#  CMAKE_CFG_INTDIR: Build time configuration directory for project.

This is a variable that is used to provide developers access to the
intermediate directory used by Visual Studio IDE projects. For example,
if building Debug all executables and libraries end up in a Debug
directory. On UNIX systems this variable is set to ".". However, with
Visual Studio this variable is set to $(IntDir). $(IntDir) is expanded
by the IDE only. So this variable should only be used in custom commands
that will be run during the build process. This variable should not be
used directly in a CMake command. CMake has no way of knowing if Debug
or Release will be picked by the IDE for a build type. If a program
needs to know the directory it was built in, it can use CMAKE_INTDIR.
CMAKE_INTDIR is a C/C++ preprocessor macro that is defined on the
command line of the compiler. If it has a value, it will be the
intermediate directory used to build the file. This way an executable or
a library can find files that are located in the build directory. 


Maybe I don't understand what you're trying to do?

hth,
tyler


More information about the CMake mailing list