Подключение 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
)