Reputation: 4757
I am trying to differentiate between a debug and release build.
If a debug build is in progress I want to install myLibd in /usr/local/lib. If a release build is in progress I want to install myLib in /usr/local/lib.
Here is my approach
IF(CMAKE_BUILD_TYPE MATCHES RELEASE)
SET(LIB_NAME myLib)
ELSE()
SET(LIB_NAME myLibd)
ENDIF(CMAKE_BUILD_TYPE MATCHES RELEASE)
ADD_LIBRARY(${LIB_NAME} ${Source_files} ${Header_files})
INSTALL(TARGETS ${LIB_NAME} DESTINATION /usr/local/lib)
However, the target name is in both cases (CMAKE_BUILD_TYPE=Debug or Release) always myLibd. What is the problem here?
Upvotes: 10
Views: 12017
Reputation:
Set CMAKE_DEBUG_POSTFIX variable:
if(NOT CMAKE_DEBUG_POSTFIX)
set(CMAKE_DEBUG_POSTFIX d)
endif()
What is the problem here?
if(CMAKE_BUILD_TYPE MATCHES Release)
instead of if(CMAKE_BUILD_TYPE MATCHES RELEASE)
if(CMAKE_BUILD_TYPE...)
approach will not work for multi-configuration generatorsUpvotes: 13