From cdb009ad602f1f3f5b06e62370408b779ec4c8de Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Fri, 6 May 2022 14:23:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 10 +++++----- src/myx-cmake-example-app/CMakeLists.txt | 18 +++++++++--------- src/myx-cmake-example-app/main.cpp | 13 ++++++------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fd77af..a5d6c0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,14 @@ # Минимальная версия CMake -cmake_minimum_required(VERSION 3.3) +cmake_minimum_required(VERSION 3.6) # Предпочтительно следовать стандартам принятым в указанном диапазоне версий -cmake_policy(VERSION 3.0.2..3.7) +cmake_policy(VERSION 3.6..3.7) # Название и версия проекта и используемые языки программирования -project(myx-cmake-example-app VERSION 0.2.0 LANGUAGES C CXX) +project(myx-cmake-example-app VERSION 0.3.0 LANGUAGES C CXX) ### -# Обязательные переменные для MyxCMake +# Рекомендуемые переменные для MyxCMake ### # Название организации set(MYX_CMAKE_ORGANIZATION_NAME "Org." CACHE STRING "") @@ -22,7 +22,7 @@ set(MYX_CMAKE_AUTHOR_EMAIL "mail@johndoe.com" CACHE STRING "") # Краткое описание проекта set(MYX_CMAKE_DESCRIPTION "Пример проекта: программа" CACHE STRING "") -find_package(MyxCMake 0.4.1 REQUIRED) +find_package(MyxCMake 0.7.1 REQUIRED) # Boost set(Boost_USE_STATIC_LIBS ON) diff --git a/src/myx-cmake-example-app/CMakeLists.txt b/src/myx-cmake-example-app/CMakeLists.txt index b1eee99..62dd640 100644 --- a/src/myx-cmake-example-app/CMakeLists.txt +++ b/src/myx-cmake-example-app/CMakeLists.txt @@ -1,18 +1,18 @@ # Название основной цели и имени программы в текущем каталоге -set(TRGT myx-cmake-example-app) +project(myx-cmake-example-app) # Список файлов исходных текстов -set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) +set(CPP ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp) # Функция для создания цели, результатом которой будет сборка приложения -add_executable(${TRGT} ${TRGT_cpp}) -myx_cmake_common_target_properties(${TRGT}) +add_executable(${PROJECT_NAME} ${CPP}) +myx_cmake_common_target_properties(${PROJECT_NAME}) # Добавление к пути поиска заголовочных файлов -target_include_directories(${TRGT} SYSTEM PUBLIC ${Boost_INCLUDE_DIRS}) - -# Имя выходного файла для цели -set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME ${TRGT}) +target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE ${Boost_INCLUDE_DIRS}) +# Вместо строки выше можно использовать вариант, который автоматически +# добавляет параметры поиска заголовочных файлов и компоновки библиотек +target_link_libraries(${PROJECT_NAME} Boost::headers) # Правила для установки -install(TARGETS ${TRGT} COMPONENT main RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(TARGETS ${PROJECT_NAME} COMPONENT main RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/src/myx-cmake-example-app/main.cpp b/src/myx-cmake-example-app/main.cpp index 1a3e8d1..25aad34 100644 --- a/src/myx-cmake-example-app/main.cpp +++ b/src/myx-cmake-example-app/main.cpp @@ -1,5 +1,5 @@ -#include -#include +#include +#include #include #include @@ -7,15 +7,13 @@ int32_t nsum( int32_t i = 0 ) { int32_t s = 0; - for ( auto r: boost::counting_range( 1, i ) ) - { - s += r; - } + + for ( auto r: boost::counting_range( 1, i ) ) s += r; return( s ); } -int main( int argc, char* argv[] ) +int main( int argc, char* argv [[gnu::unused]][] ) { // Значение из myx_cmake_private_config.hpp std::cout << "Build type: " << MYX_CMAKE_BUILD_TYPE << std::endl; @@ -23,6 +21,7 @@ int main( int argc, char* argv[] ) std::cout << "Git revision: " << MYX_CMAKE_EXAMPLE_APP_GIT_REV << std::endl; auto s = nsum( argc ); + std::cout << s << std::endl; return ( s );