我一直在为多配置IDE (Visual )编写一个cmake文件。我的目标是添加一个自定义配置,并告诉Visual,我希望使用Qt的调试库(qtcored.lib),就像我选择调试配置时所做的那样。在下面的代码中,当我选择CustomDebug配置时,我在链接器输入中有了发布库
有人知道如何做到这一点吗?
谢谢
cmake_minimum_required(VERSION 3.12.0)
project(custom-conf)
find_package(Qt5Core CONFIG REQUIRED)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(SRC main.cpp)
set(QT_LIBS Qt5::Core)
add_executable(custom-conf WIN32 ${SRC})
target_link_libraries(custom-conf ${QT_LIBS})
#
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(isMultiConfig)
set(CMAKE_CONFIGURATION_TYPES "CustomDebug;Debug;Release" CACHE STRING "" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_CUSTOMDEBUG "/debug")
endif()发布于 2019-12-13 09:41:05
我想使用Qt的调试库(qtcored.lib),就像我选择调试配置时所做的那样。
使用导入的目标,这可以很容易地通过使用MAP_IMPORTED_CONFIG 目标属性实现。
# For CustomDebug configuration of the main project
# use Debug configuration of the IMPORTED target
set_target_properties(Qt5::Core PROPERTIES
MAP_IMPORTED_CONFIG_CUSTOMDEBUG DEBUG)通过设置CMAKE_MAP_IMPORTED_CONFIG 变量,您可以自动设置所有导入目标的属性:
set(CMAKE_MAP_IMPORTED_CONFIG_CUSTOMDEBUG DEBUG)
#...
# This call will create IMPORTED target Qt5::Core which
# MAP_IMPORTED_CONFIG_CUSTOMDEBUG property is already set.
find_package(Qt5Core CONFIG REQUIRED)(变量赋值应该在创建导入目标的任何调用(如创建导入目标的)之前)。
https://stackoverflow.com/questions/59316242
复制相似问题