基于CMake配置的多配置生成器条件

时间:2016-01-22 12:14:20

标签: visual-studio-2012 cmake

我希望根据它在调试或发布中构建来指定要使用的不同DLL。例如:

 IF CONFIGURATION MATCHES Debug
     SET(MYDLL my_dlld)
ELSE()
     SET(MYDLL my_dll)
ENDIF()

我查看过逻辑表达式,例如

$<$<CONFIG:Debug>:DEBUG_MODE>

但这似乎不起作用,也许我的实施不正确。任何帮助将不胜感激

编辑:一些用于理解的最小代码

PROJECT(myproject)

#ADD_DEFINITIONS(-DMANAGER_EXPORTS)

INCLUDE_DIRECTORIES(
                     ${CMAKE_SOURCE_DIR}/API/mydll
                   )

$<$<CONFIG:Debug>:SET(MYDLL mydlld)>
$<$<CONFIG:Release>:SET(MYDLL mydll)>

SET(LIBS
          ${MYDLL}
   )

mydll - 是一个预先生成的共享库,它具有调试和发布版本

1 个答案:

答案 0 :(得分:1)

我认为可能的解决方案是您可以执行以下操作

#SET(LINK_LIB debug my_dlld optimized my_dll)
#TARGET_LINK_LIBRARIES(MYDLL ${LINK_LIB})

希望这有帮助!