CMake Key Points in Qt6
Categories:
少于1分钟
001.find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Widgets)find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Widgets) Usages
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core):
这行代码试图找到名为 Qt6 或 Qt5 的 Qt 版本,并且要求找到其中的 Core 组件。 如果系统上安装了 Qt6,这行代码会找到 Qt6;如果没有找到 Qt6,会尝试找到 Qt5。
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core):
这行代码利用第一个 find_package 结果中设置的 QT_VERSION_MAJOR 变量来找到具体的 Qt 版本及其 Core 组件。
cmake_minimum_required(VERSION 3.14)
project(LibDiyToolsWrapper LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_library( LibDiyToolsWrapper SHARED LibDiyToolsWrapper_global.h )
include_directories( .. ../inc )
target_link_libraries( LibDiyToolsWrapper PRIVATE Qt${QT_VERSION_MAJOR}::Widgets )
target_compile_definitions(LibDiyToolsWrapper PRIVATE LIBDIYTOOLSWRAPPER_LIBRARY)
set( DESTINATION_DIR $<IF:$<CONFIG:Debug>,${CMAKE_BINARY_DIR}/finalDLLs/Debug,) 嵌套
set(
DESTINATION_DIR $<IF:$<CONFIG:Debug>,${CMAKE_BINARY_DIR}/finalDLLs/Debug,
DESTINATION_DIR $<IF:$<CONFIG:Debug>,${CMAKE_BINARY_DIR}/finalDLLs/Release,
DESTINATION_DIR $<IF:$<CONFIG:Debug>,${CMAKE_BINARY_DIR}/finalDLLs/Profile,
${CMAKE_BINARY_DIR}/Unknown>>>
)
$<IF: # 第一层开始
$<CONFIG:Debug>,${CMAKE_BINARY_DIR}/Debug, # 第一层条件和结果
$<IF: # 第二层开始
$<CONFIG:Release>,${CMAKE_BINARY_DIR}/Release, # 第二层条件和结果
$<IF: # 第三层开始
$<CONFIG:Profile>,${CMAKE_BINARY_DIR}/Profile, # 第三层条件和结果
${CMAKE_BINARY_DIR}/Unknown # 默认值
> # 第三层结束
> # 第二层结束
> # 第一层结束