'CMake conditional for Release,Debug and Etc

I am working on a CMake project that need to set specific paths for each configuration type (e.g., RELEASE, DEBUG, MINSIZEREL and RELWITHDEBINFO) for a static library in linking process. Because I have different versions of my static libraries that is used on Debug and Release versions.

So far, I have done this below in order to set the folder "release" or "debug" for my static library that I am try to link:

# Here we need to determine our build type and set the each one specific 3rd library for our binary
if( CMAKE_BUILD_TYPE STREQUAL "Debug")
    #set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install)
    #message( STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" )
    set(THIRDLIBS_BUILD_TYPE "debug")

elseif( CMAKE_BUILD_TYPE STREQUAL "Release")
    #SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install.deb)
    #message( STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" )
    set(THIRDLIBS_BUILD_TYPE "release")

elseif( CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
    #SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install.deb)
    #message( STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" )
    set(THIRDLIBS_BUILD_TYPE "debug")

elseif( CMAKE_BUILD_TYPE STREQUAL "MinSizeRel")
    #SET(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/Install.deb)
    #message( STATUS "CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" )
    set(THIRDLIBS_BUILD_TYPE "release")

else()
    MESSAGE( STATUS "CMAKE_BUILD_TYPE not set yet ${CMAKE_BUILD_TYPE}" )
endif()

if (WIN32)
    set(THIRD_LIBS
        ../external_libs/mylibalpha/win64/${THIRDLIBS_BUILD_TYPE}/libalpha
        ../external_libs/mylibbeta/win64/${THIRDLIBS_BUILD_TYPE}/libbeta
    )
endif(WIN32)

However, in my Visual Studio, I noticed that on each project build type (RELEASE, DEBUG, MINSIZEREL and RELWITHDEBINFO) the ${THIRDLIBS_BUILD_TYPE} variable is empty and not getting properly set. I am basically getting an error on linking showing that cannot find the external_libs/mylibalpha/win64//libalpha.lib and I should be getting something like this external_libs/mylibalpha/win64/release/libalpha.lib

What is wrong with my CMakeLists.txt script?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source