From 5c992c5e870c6aa15f57f768c4cd07acbe918680 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Fri, 10 Dec 2021 14:30:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=BC=D0=B5=D1=80:=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=81=D0=BE=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=B0=20Qt5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 32 +++++++++++++++++++ .../CMakeLists.txt | 22 +++++++++++++ src/myx-cmake-example-qt5-console/main.cpp | 13 ++++++++ 3 files changed, 67 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 src/myx-cmake-example-qt5-console/CMakeLists.txt create mode 100644 src/myx-cmake-example-qt5-console/main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..025ff4d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,32 @@ +# Минимальная версия CMake +cmake_minimum_required(VERSION 3.3) + +# Предпочтительно следовать стандартам принятым в указанном диапазоне версий +cmake_policy(VERSION 3.0.2..3.7) + +# Название и версия проекта и используемые языки программирования +project(myx-cmake-example-qt5-console VERSION 0.2.0 LANGUAGES C CXX) + +### +# Обязательные переменные для MyxCMake +### +# Название организации +set(MYX_CMAKE_ORGANIZATION_NAME "Org." CACHE STRING "") + +# Имя автора +set(MYX_CMAKE_AUTHOR_NAME "John Doe" CACHE STRING "") + +# Почта автора +set(MYX_CMAKE_AUTHOR_EMAIL "mail@johndoe.com" CACHE STRING "") + +# Краткое описание проекта +set(MYX_CMAKE_DESCRIPTION "Пример проекта: консольная программа Qt5" CACHE STRING "") + +find_package(MyxCMake REQUIRED) + +# Qt5 +find_package(Qt5Core COMPONENTS Private REQUIRED) +find_package(Qt5 COMPONENTS Core REQUIRED) + +# Исходные тексты программы +add_subdirectory(src/myx-cmake-example-qt5-console) diff --git a/src/myx-cmake-example-qt5-console/CMakeLists.txt b/src/myx-cmake-example-qt5-console/CMakeLists.txt new file mode 100644 index 0000000..2796196 --- /dev/null +++ b/src/myx-cmake-example-qt5-console/CMakeLists.txt @@ -0,0 +1,22 @@ +# Название основной цели и имени программы в текущем каталоге +set(TRGT myx-cmake-example-qt5-console) + +# Список файлов исходных текстов +set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) + +# Функция для создания цели, результатом которой будет сборка приложения +add_executable(${TRGT} ${TRGT_cpp}) +myx_cmake_common_target_properties(${TRGT}) + +# Qt5: подключение заголовочных файлов +target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) +target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_PRIVATE_INCLUDE_DIRS}) + +# Qt5: подключение библиотек +target_link_libraries(${TRGT} Qt5::Core) + +# Имя выходного файла для цели +set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME ${TRGT}) + +# Правила для установки +install(TARGETS ${TRGT} COMPONENT main RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/myx-cmake-example-qt5-console/main.cpp b/src/myx-cmake-example-qt5-console/main.cpp new file mode 100644 index 0000000..86796af --- /dev/null +++ b/src/myx-cmake-example-qt5-console/main.cpp @@ -0,0 +1,13 @@ +#include +#include +#include + +int main( int argc, char** argv ) +{ + QCoreApplication app( argc, argv ); + + qDebug() << "Qt5"; + qDebug() << "Min Linux: " << MINLINUX_MAJOR << "." << MINLINUX_MINOR << "." << MINLINUX_PATCH; + + return( 0 ); +}