From 352bf756bdb5852f7d06d5e50acc2f4823264108 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Wed, 22 Apr 2020 19:54:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 2 - cmake/cmlib | 2 +- examples/filesystem/01_minimal/CMakeLists.txt | 86 ++++++++++++------- examples/filesystem/01_minimal/minimal.cpp | 1 - examples/qt/01_translators/CMakeLists.txt | 85 +++++++++++------- src/myx/base/CMakeLists.txt | 1 - 6 files changed, 107 insertions(+), 70 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4880b31..c6ef79e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,8 +50,6 @@ add_subdirectory(src/myx/redis) if(MYXLIB_BUILD_EXAMPLES OR MYXLIB_BUILD_EXAMPLES_HO) add_subdirectory(examples/filesystem) add_subdirectory(examples/qt) - - add_dependencies(example-filesystem-minimal create_auxilary_symlinks) endif() # Документация diff --git a/cmake/cmlib b/cmake/cmlib index 83a9e94..197e5b3 160000 --- a/cmake/cmlib +++ b/cmake/cmlib @@ -1 +1 @@ -Subproject commit 83a9e94e31ab410c3346a36ddd2d10aa91375617 +Subproject commit 197e5b3939709a0cc4924e44c355aa8ad7358b8e diff --git a/examples/filesystem/01_minimal/CMakeLists.txt b/examples/filesystem/01_minimal/CMakeLists.txt index c9fa8db..65415ab 100644 --- a/examples/filesystem/01_minimal/CMakeLists.txt +++ b/examples/filesystem/01_minimal/CMakeLists.txt @@ -4,53 +4,73 @@ set(TRGT example-filesystem-minimal) # Список файлов исходных текстов set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/minimal.cpp) -# Путь поиска библиотек внутри проекта -link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -link_directories(${CMAKE_BINARY_DIR}/src/myx/filesystem/lib) +if(MYXLIB_BUILD_EXAMPLES) + # Путь поиска библиотек внутри проекта + link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -# Цель для создания исполняемого файла -add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) -common_target_properties(${TRGT}) + # Цель для создания исполняемого файла + add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) + common_target_properties(${TRGT}) -# Создание цели для проверки утилитой clang-tidy -add_clang_tidy_check(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой clang-tidy + add_clang_tidy_check(${TRGT} ${TRGT_cpp}) -# Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой clang-analyze + add_clang_analyze_check(${TRGT} ${TRGT_cpp}) -# Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой clazy + add_clazy_check(${TRGT} ${TRGT_cpp}) -# Создание цели для проверки утилитой pvs-studio -add_pvs_check(${TRGT}) + # Создание цели для проверки утилитой pvs-studio + add_pvs_check(${TRGT}) -# Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_cpp}) + # Создание цели для автоматического форматирования кода + add_format_sources(${TRGT} ${TRGT_cpp}) -target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) -target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) + target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) + target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) + target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES) -if(NOT MYXLIB_HEADER_ONLY) add_dependencies(${TRGT} base_static filesystem_static) target_link_libraries(${TRGT} myx-filesystem) -else() - target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY) - target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) - add_dependencies(${TRGT} base filesystem) + + target_link_libraries(${TRGT} Qt5::Core) + target_link_libraries(${TRGT} Threads::Threads) + + # Имя выходного файла для цели + set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME filesystem-minimal) + + add_sanitizers(${TRGT}) + + cotire(${TRGT}) + + add_dependencies(${TRGT} create_auxilary_symlinks) + + # Правила для установки + install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() -target_link_libraries(${TRGT} Qt5::Core) -target_link_libraries(${TRGT} Threads::Threads) +if(MYXLIB_BUILD_EXAMPLES_HO) + # Цель для создания исполняемого файла + add_executable(${TRGT}-ho ${TRGT_cpp} ${TRGT_qrc}) + common_target_properties(${TRGT}-ho) -# Имя выходного файла для цели -set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME filesystem-minimal - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + target_include_directories(${TRGT}-ho PRIVATE ${CMAKE_SOURCE_DIR}/src) + target_include_directories(${TRGT}-ho SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) -add_sanitizers(${TRGT}) + add_dependencies(${TRGT}-ho base-header-only filesystem-header-only) -cotire(${TRGT}) + target_link_libraries(${TRGT}-ho Qt5::Core) + target_link_libraries(${TRGT}-ho Threads::Threads) -add_dependencies(${TRGT} create_auxilary_symlinks) + # Имя выходного файла для цели + set_target_properties(${TRGT}-ho PROPERTIES OUTPUT_NAME filesystem-minimal-ho) -# Правила для установки -install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + add_sanitizers(${TRGT}-ho) + cotire(${TRGT}-ho) + + add_dependencies(${TRGT}-ho create_auxilary_symlinks) + + # Правила для установки + install(TARGETS ${TRGT}-ho COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/examples/filesystem/01_minimal/minimal.cpp b/examples/filesystem/01_minimal/minimal.cpp index 07320a7..5616bcc 100644 --- a/examples/filesystem/01_minimal/minimal.cpp +++ b/examples/filesystem/01_minimal/minimal.cpp @@ -1,4 +1,3 @@ -// #include #include #include diff --git a/examples/qt/01_translators/CMakeLists.txt b/examples/qt/01_translators/CMakeLists.txt index dda7cfb..9cea132 100644 --- a/examples/qt/01_translators/CMakeLists.txt +++ b/examples/qt/01_translators/CMakeLists.txt @@ -10,53 +10,74 @@ qt5_translation( BASE_NAME ${TRGT} LANGUAGES ru_RU) -# Путь поиска библиотек внутри проекта -link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -link_directories(${CMAKE_BINARY_DIR}/src/myx/qt/lib) +if(MYXLIB_BUILD_EXAMPLES) -# Цель для создания исполняемого файла -add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) -common_target_properties(${TRGT}) + # Путь поиска библиотек внутри проекта + link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) -# Создание цели для проверки утилитой clang-tidy -add_clang_tidy_check(${TRGT} ${TRGT_cpp}) + # Цель для создания исполняемого файла + add_executable(${TRGT} ${TRGT_cpp} ${TRGT_qrc}) + common_target_properties(${TRGT}) -# Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой clang-tidy + add_clang_tidy_check(${TRGT} ${TRGT_cpp}) -# Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой clang-analyze + add_clang_analyze_check(${TRGT} ${TRGT_cpp}) -# Создание цели для проверки утилитой pvs-studio -add_pvs_check(${TRGT}) + # Создание цели для проверки утилитой clazy + add_clazy_check(${TRGT} ${TRGT_cpp}) -# Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_cpp}) + # Создание цели для проверки утилитой pvs-studio + add_pvs_check(${TRGT}) -# Qt5 -target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) -target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) + # Создание цели для автоматического форматирования кода + add_format_sources(${TRGT} ${TRGT_cpp}) + + # Qt5 + target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src) + target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) -if(NOT MYXLIB_HEADER_ONLY) - add_dependencies(${TRGT} base_static qt_static) - target_link_libraries(${TRGT} myx-qt) -else() target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) add_dependencies(${TRGT} base qt) + + target_link_libraries(${TRGT} Qt5::Core) + + # Имя выходного файла для цели + set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME qt-translators) + + add_sanitizers(${TRGT}) + + cotire(${TRGT}) + + add_dependencies(${TRGT} create_auxilary_symlinks) + + # Правила для установки + install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() -target_link_libraries(${TRGT} Qt5::Core) +if(MYXLIB_BUILD_EXAMPLES_HO) + # Цель для создания исполняемого файла + add_executable(${TRGT}-ho ${TRGT_cpp} ${TRGT_qrc}) + common_target_properties(${TRGT}-ho) -# Имя выходного файла для цели -set_target_properties(${TRGT} PROPERTIES OUTPUT_NAME qt-translators - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}) + target_include_directories(${TRGT}-ho PRIVATE ${CMAKE_SOURCE_DIR}/src) + target_include_directories(${TRGT}-ho SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) -add_sanitizers(${TRGT}) + add_dependencies(${TRGT}-ho base-header-only qt-header-only) -cotire(${TRGT}) + target_link_libraries(${TRGT}-ho Qt5::Core) + target_link_libraries(${TRGT}-ho Threads::Threads) -add_dependencies(${TRGT} create_auxilary_symlinks) + # Имя выходного файла для цели + set_target_properties(${TRGT}-ho PROPERTIES OUTPUT_NAME qt-translators-ho) -# Правила для установки -install(TARGETS ${TRGT} COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + add_sanitizers(${TRGT}-ho) + cotire(${TRGT}-ho) + + add_dependencies(${TRGT}-ho create_auxilary_symlinks) + + # Правила для установки + install(TARGETS ${TRGT}-ho COMPONENT examples RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() diff --git a/src/myx/base/CMakeLists.txt b/src/myx/base/CMakeLists.txt index 8b2a283..983c142 100644 --- a/src/myx/base/CMakeLists.txt +++ b/src/myx/base/CMakeLists.txt @@ -42,7 +42,6 @@ if(MYXLIB_BUILD_LIBRARIES) target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) - cotire(${TRGT}) install(TARGETS ${TRGT}_static COMPONENT libs-dev ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(BUILD_SHARED_LIBS)