Подключение Qt
Включение пакета в проект:
find_package(QT NAMES Qt5 COMPONENTS Core Widgets Gui REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core Widgets Gui REQUIRED)
# Any other Qt components can be added there
Сборка проекта с Qt:
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
# Directories with .ui files
set(CMAKE_AUTOUIC_SEARCH_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui" "${CMAKE_CURRENT_SOURCE_DIR}/ui/subdir")
# Headers, sources...
file(GLOB TARGET_HEADERS ...)
file(GLOB TARGET_SRC ...)
# UI files
file(GLOB TARGET_UI_FILES
${CMAKE_CURRENT_SOURCE_DIR}/ui/*.ui
# or other paths...
)
# QRC files
file(GLOB_RECURSE TARGET_RESOURCES
${CMAKE_CURRENT_SOURCE_DIR}/resources/resources.qrc
# or other paths...
)
# Compilation
add_executable(${TARGET_NAME} ${TARGET_SRC} ${TARGET_HEADERS} ${TARGET_UI_FILES} ${TARGET_RESOURCES})
target_include_directories(${TARGET_NAME} PUBLIC ...)
target_link_libraries(${TARGET_NAME}
PUBLIC
# any required libraries...
PRIVATE
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::Widgets
# or other Qt modules
)