[CMake] Select CMAKE_LIBRARY_OUTPUT_DIRECTORY_<CONFIG> in a CMakeLists.txt script

John McGehee cmake at voom.net
Wed Mar 2 02:46:32 EST 2011


I am defining separate output paths for different configurations:

  CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG    = bin/win32/dbg
  CMAKE_RUN TIME_OUTPUT_DIRECTORY_RELEASE = bin/win32/opt

  CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG    = lib/win32/dbg
  CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE  = lib/win32/opt

  CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG    = bin/win32/dbg
  CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE  = bin/win32/opt

And in Visual Studio the CMake command add_library() command does a fine job of choosing between CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG for the Debug configuration, and CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE for the Release configuration.

I can see how I might use CMAKE_CFG_INTDIR to get the IDE configuration, but its value is "Debug" or "Release".  If I were to use "lib/win32/${CMAKE_CFG_INTDIR}", I would get "lib/win32/Debug" or "lib/win32/Release", which is incorrect.

I can imagine some sort of non-portable solution, but I am wondering if there is a standard approach, or an example from which I might draw inspiration.

My application is compiling C# within add_custom_command().



More information about the CMake mailing list