Spec-Zone.ru › Qt 5.15

Начало работы с CMake

Начните с find_package, чтобы найти библиотеки и заголовочные файлы, поставляемые с Qt. Затем вы можете использовать эти библиотеки и заголовочные файлы с командой target_link_libraries для построения библиотек и приложений на основе Qt. Эта команда автоматически добавляет соответствующие каталоги включения, определения компиляции, флаг независимого от позиции кода и ссылки на библиотеку qtmain.lib на Windows, например.

Построение исполняемого файла графического интерфейса

Для построения исполняемого файла графического интерфейса helloworld вам необходимо следующее:

cmake_minimum_required(VERSION 3.1.0)

project(helloworld)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

if(CMAKE_VERSION VERSION_LESS "3.7.0")
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()

find_package(Qt5 COMPONENTS Widgets REQUIRED)

add_executable(helloworld
    mainwindow.ui
    mainwindow.cpp
    main.cpp
    resources.qrc
)

target_link_libraries(helloworld Qt5::Widgets)

Для успешного find_package, CMake должен найти установку Qt одним из следующих способов:

  1. Установите переменную среды CMAKE_PREFIX_PATH в префикс установки Qt 5. Это рекомендуемый способ.
  2. Установите значение Qt5_DIR в кэше CMake в расположение файла Qt5Config.cmake.

Настройка CMAKE_AUTOMOC автоматически запускает moc при необходимости. Более подробную информацию см. в документации CMake AUTOMOC.

Импортированные целевые библиотеки

Каждый загруженный модуль Qt определяет целевую библиотеку CMake. Имена целевых библиотек начинаются с Qt5::, за которым следует имя модуля. Например: Qt5::Core, Qt5::Gui. Передайте имя целевой библиотеки команде target_link_libraries для использования соответствующей библиотеки.

Примечание: Начиная с Qt 5.15, целевые библиотеки CMake также доступны как Qt::Core, Qt::Gui и так далее. Это упрощает написание кода CMake, который может работать как с Qt 5, так и с Qt 6.

Импортированные целевые библиотеки создаются с теми же конфигурациями, что и при настройке Qt:

  • Если Qt был настроен с переключателем -debug, создается импортированная целевая библиотека с конфигурацией DEBUG.
  • Если Qt был настроен с переключателем -release, создается импортированная целевая библиотека с конфигурацией RELEASE.
  • Если Qt был настроен с переключателем -debug-and-release, импортированные целевые библиотеки создаются с конфигурациями RELEASE и DEBUG.

Если в вашем проекте есть пользовательские конфигурации построения CMake, вам необходимо сопоставить вашу пользовательскую конфигурацию с конфигурацией Qt debug или release.

find_package(Qt5 COMPONENTS Core REQUIRED)

set(CMAKE_CXX_FLAGS_COVERAGE "${CMAKE_CXX_FLAGS_RELEASE} -fprofile-arcs -ftest-coverage")

# set up a mapping so that the Release configuration for the Qt imported target is
# used in the COVERAGE CMake configuration.
set_target_properties(Qt5::Core PROPERTIES MAP_IMPORTED_CONFIG_COVERAGE "RELEASE")

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/cmake-get-started.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API