Рефакторинг 3
This commit is contained in:
parent
4e2cff180c
commit
b2731ac32f
@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.3)
|
|||||||
cmake_policy(VERSION 3.0.2..3.7)
|
cmake_policy(VERSION 3.0.2..3.7)
|
||||||
|
|
||||||
# Название проекта
|
# Название проекта
|
||||||
project(myx VERSION 0.3.0 LANGUAGES C CXX)
|
project(myx VERSION 0.4.0 LANGUAGES C CXX)
|
||||||
|
|
||||||
# В каталоге cmake/lib находятся файлы с библиотечными функциями
|
# В каталоге cmake/lib находятся файлы с библиотечными функциями
|
||||||
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/cmake/cmlib)
|
||||||
@ -14,7 +14,7 @@ endif()
|
|||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find)
|
||||||
|
|
||||||
if(NOT DEFINED MYXLIB_MASTER_PROJECT)
|
if(NOT DEFINED MYXLIB_MASTER_PROJECT)
|
||||||
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||||
set(MYXLIB_MASTER_PROJECT ON)
|
set(MYXLIB_MASTER_PROJECT ON)
|
||||||
else()
|
else()
|
||||||
set(MYXLIB_MASTER_PROJECT OFF)
|
set(MYXLIB_MASTER_PROJECT OFF)
|
||||||
@ -23,8 +23,11 @@ endif()
|
|||||||
|
|
||||||
include(CMLibCommon)
|
include(CMLibCommon)
|
||||||
|
|
||||||
option(MYXLIB_HEADER_ONLY "Build header only version of library" ON)
|
option(MYXLIB_BUILD_LIBRARIES "Build libraries" OFF)
|
||||||
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
|
option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF)
|
||||||
|
endif()
|
||||||
|
option(MYXLIB_BUILD_EXAMPLES_HO "Build examples using header only version" OFF)
|
||||||
|
|
||||||
# Поиск библиотек с помощью pkgconfig
|
# Поиск библиотек с помощью pkgconfig
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
@ -34,21 +37,7 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
# Qt5
|
# Qt5
|
||||||
find_package(
|
find_package(Qt5 COMPONENTS Core Network REQUIRED)
|
||||||
Qt5
|
|
||||||
COMPONENTS
|
|
||||||
Core
|
|
||||||
Network
|
|
||||||
REQUIRED)
|
|
||||||
|
|
||||||
# Автоматически генерируемый заголовочный файл
|
|
||||||
# cmlib_config_hpp_generate()
|
|
||||||
|
|
||||||
# configure_file(${CMAKE_SOURCE_DIR}/src/myx/base/config_flags.hpp.in
|
|
||||||
# ${CMAKE_BINARY_DIR}/include/myx/base/config_flags.hpp)
|
|
||||||
|
|
||||||
# Подключение внешних проектов
|
|
||||||
include(ExternalProject)
|
|
||||||
|
|
||||||
# Библиотеки
|
# Библиотеки
|
||||||
add_subdirectory(src/myx/base)
|
add_subdirectory(src/myx/base)
|
||||||
@ -58,7 +47,7 @@ add_subdirectory(src/myx/math)
|
|||||||
add_subdirectory(src/myx/redis)
|
add_subdirectory(src/myx/redis)
|
||||||
|
|
||||||
# Примеры
|
# Примеры
|
||||||
if(BUILD_EXAMPLES)
|
if(MYXLIB_BUILD_EXAMPLES OR MYXLIB_BUILD_EXAMPLES_HO)
|
||||||
add_subdirectory(examples/filesystem)
|
add_subdirectory(examples/filesystem)
|
||||||
add_subdirectory(examples/qt)
|
add_subdirectory(examples/qt)
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit e5fbb9023546a5e98c832e8596586c71edcc5b2f
|
Subproject commit 83a9e94e31ab410c3346a36ddd2d10aa91375617
|
@ -31,12 +31,12 @@ target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
if(NOT MYXLIB_HEADER_ONLY)
|
||||||
add_dependencies(${TRGT} base_static filesystem_static)
|
add_dependencies(${TRGT} base_static filesystem_static)
|
||||||
target_link_libraries(${TRGT} myx-filesystem)
|
target_link_libraries(${TRGT} myx-filesystem)
|
||||||
else()
|
else()
|
||||||
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
|
||||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||||
add_dependencies(${TRGT} base filesystem)
|
add_dependencies(${TRGT} base filesystem)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${TRGT} Qt5::Core)
|
target_link_libraries(${TRGT} Qt5::Core)
|
||||||
|
@ -38,12 +38,12 @@ target_include_directories(${TRGT} PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
if(NOT MYXLIB_HEADER_ONLY)
|
||||||
add_dependencies(${TRGT} base_static qt_static)
|
add_dependencies(${TRGT} base_static qt_static)
|
||||||
target_link_libraries(${TRGT} myx-qt)
|
target_link_libraries(${TRGT} myx-qt)
|
||||||
else()
|
else()
|
||||||
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_HEADER_ONLY)
|
||||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||||
add_dependencies(${TRGT} base qt)
|
add_dependencies(${TRGT} base qt)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(${TRGT} Qt5::Core)
|
target_link_libraries(${TRGT} Qt5::Core)
|
||||||
|
@ -16,63 +16,45 @@ set(TRGT_hpp
|
|||||||
set(TRGT_headers ${TRGT_hpp})
|
set(TRGT_headers ${TRGT_hpp})
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
if(MYXLIB_HEADER_ONLY)
|
add_library(${TRGT}-header-only INTERFACE)
|
||||||
add_library(${TRGT} INTERFACE)
|
target_include_directories(
|
||||||
else()
|
${TRGT}-header-only SYSTEM INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
add_common_library(
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||||
${TRGT}
|
|
||||||
OUTPUT_NAME myx-${TRGT}
|
|
||||||
SOURCES ${TRGT_cpp} ${TRGT_headers})
|
|
||||||
common_target_properties(${TRGT})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-tidy
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-analyze
|
# Создание цели для проверки утилитой clang-tidy
|
||||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clazy
|
# Создание цели для проверки утилитой clang-analyze
|
||||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой pvs-studio
|
# Создание цели для проверки утилитой clazy
|
||||||
add_pvs_check(${TRGT})
|
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для автоматического форматирования кода
|
# Создание цели для проверки утилитой pvs-studio
|
||||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_pvs_check(${TRGT})
|
||||||
|
|
||||||
if(MYXLIB_HEADER_ONLY)
|
# Создание цели для автоматического форматирования кода
|
||||||
target_include_directories(${TRGT} SYSTEM INTERFACE
|
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
|
||||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
|
||||||
else()
|
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|
||||||
cotire(${TRGT})
|
cotire(${TRGT})
|
||||||
|
|
||||||
install(
|
install(TARGETS ${TRGT}_static COMPONENT libs-dev ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
TARGETS ${TRGT}_static
|
|
||||||
COMPONENT libs-dev
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
if(BUILD_SHARED_LIBS)
|
if(BUILD_SHARED_LIBS)
|
||||||
install(
|
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
TARGETS ${TRGT}_shared
|
|
||||||
COMPONENT main
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(
|
install(FILES ${TRGT_headers} ${CMAKE_BINARY_DIR}/include/myx/base/compiler_features.hpp COMPONENT headers
|
||||||
FILES ${TRGT_headers}
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
||||||
${CMAKE_BINARY_DIR}/include/myx/base/compiler_features.hpp
|
|
||||||
COMPONENT headers
|
|
||||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
|
||||||
|
|
||||||
install(
|
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT headers DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc
|
|
||||||
COMPONENT headers
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
|
|
||||||
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
||||||
add_custom_target(
|
add_custom_target(${TRGT}-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=headers -P
|
||||||
${TRGT}-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=headers -P
|
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
|
||||||
|
@ -3,7 +3,11 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// #include <myx/base/config_flags.hpp>
|
#ifdef MYXLIB_BUILD_LIBRARIES
|
||||||
|
#undef MYXLIB_HEADER_ONLY
|
||||||
|
#else
|
||||||
|
#define MYXLIB_HEADER_ONLY
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef MYXLIB_HEADER_ONLY
|
#ifdef MYXLIB_HEADER_ONLY
|
||||||
#include "config-inl.hpp"
|
#include "config-inl.hpp"
|
||||||
|
@ -22,41 +22,40 @@ set(TRGT_hpp
|
|||||||
set(TRGT_headers ${TRGT_hpp})
|
set(TRGT_headers ${TRGT_hpp})
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
add_library(${TRGT}-header-only INTERFACE)
|
||||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
target_include_directories(
|
||||||
common_target_properties(${TRGT})
|
${TRGT}-header-only SYSTEM INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
else()
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||||
add_library(${TRGT} INTERFACE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-tidy
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-analyze
|
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clazy
|
# Создание цели для проверки утилитой clang-tidy
|
||||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой pvs-studio
|
# Создание цели для проверки утилитой clang-analyze
|
||||||
add_pvs_check(${TRGT})
|
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для автоматического форматирования кода
|
# Создание цели для проверки утилитой clazy
|
||||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
# Создание цели для проверки утилитой pvs-studio
|
||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
add_pvs_check(${TRGT})
|
||||||
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)
|
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
|
||||||
else()
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
target_include_directories(${TRGT} SYSTEM INTERFACE
|
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
cotire(${TRGT})
|
||||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
|
||||||
|
install(TARGETS ${TRGT}_static COMPONENT libs-dev ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <myx/base/config.hpp>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QString>
|
#include <QString>
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <myx/base/config.hpp>
|
||||||
#include <myx/filesystem/current_executable.hpp>
|
#include <myx/filesystem/current_executable.hpp>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <myx/base/config.hpp>
|
||||||
#include <myx/filesystem/current_executable.hpp>
|
#include <myx/filesystem/current_executable.hpp>
|
||||||
#include <myx/filesystem/paths.hpp>
|
#include <myx/filesystem/paths.hpp>
|
||||||
|
|
||||||
|
@ -26,36 +26,44 @@ set(TRGT_hpp
|
|||||||
set(TRGT_headers ${TRGT_hpp})
|
set(TRGT_headers ${TRGT_hpp})
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers})
|
add_library(${TRGT}-header-only INTERFACE)
|
||||||
common_target_properties(${TRGT})
|
target_include_directories(
|
||||||
|
${TRGT}-header-only SYSTEM INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-tidy
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-analyze
|
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers})
|
||||||
add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clazy
|
# Создание цели для проверки утилитой clang-tidy
|
||||||
add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой pvs-studio
|
# Создание цели для проверки утилитой clang-analyze
|
||||||
add_pvs_check(${TRGT})
|
add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для автоматического форматирования кода
|
# Создание цели для проверки утилитой clazy
|
||||||
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||||
|
|
||||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
# Создание цели для проверки утилитой pvs-studio
|
||||||
|
add_pvs_check(${TRGT})
|
||||||
|
|
||||||
cotire(${TRGT})
|
# Создание цели для автоматического форматирования кода
|
||||||
|
add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers})
|
||||||
|
|
||||||
|
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 DEV ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
install(TARGETS ${TRGT}_shared COMPONENT DEV LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
||||||
|
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT DEV DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
|
||||||
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
||||||
add_custom_target(${TRGT}-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=DEV -P
|
add_custom_target(${TRGT}-install-headers COMMAND "${CMAKE_COMMAND}" -DCMAKE_INSTALL_COMPONENT=DEV -P
|
||||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||||
|
|
||||||
# Правила для установки
|
|
||||||
install(TARGETS ${TRGT}_static COMPONENT DEV ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
if(BUILD_SHARED_LIBS)
|
|
||||||
install(TARGETS ${TRGT}_shared COMPONENT DEV LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT DEV DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
|
@ -17,44 +17,43 @@ set(TRGT_hpp
|
|||||||
set(TRGT_headers ${TRGT_hpp})
|
set(TRGT_headers ${TRGT_hpp})
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
add_library(${TRGT}-header-only INTERFACE)
|
||||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
target_include_directories(
|
||||||
common_target_properties(${TRGT})
|
${TRGT}-header-only SYSTEM INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
else()
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||||
add_library(${TRGT} INTERFACE)
|
|
||||||
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
|
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
|
# Создание цели для проверки утилитой clang-tidy
|
||||||
|
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
|
# Создание цели для проверки утилитой clang-analyze
|
||||||
|
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
|
# Создание цели для проверки утилитой clazy
|
||||||
|
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
|
# Создание цели для проверки утилитой pvs-studio
|
||||||
|
add_pvs_check(${TRGT})
|
||||||
|
|
||||||
|
# Создание цели для автоматического форматирования кода
|
||||||
|
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
|
||||||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
|
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)
|
||||||
|
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-tidy
|
install(FILES ${TRGT_headers} COMPONENT headers
|
||||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-analyze
|
|
||||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clazy
|
|
||||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
|
||||||
|
|
||||||
# Создание цели для проверки утилитой pvs-studio
|
|
||||||
add_pvs_check(${TRGT})
|
|
||||||
|
|
||||||
# Создание цели для автоматического форматирования кода
|
|
||||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
|
||||||
|
|
||||||
if(NOT MYXLIB_HEADER_ONLY)
|
|
||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
|
||||||
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)
|
|
||||||
install(TARGETS ${TRGT}_shared COMPONENT main LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
target_include_directories(${TRGT} SYSTEM INTERFACE
|
|
||||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
|
||||||
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(FILES ${TRGT_headers} COMPONENT headers DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT headers DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT headers DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
|
||||||
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#ifndef MYX_LOG_QT_TRANSLATORS_HPP_
|
#ifndef MYX_LOG_QT_TRANSLATORS_HPP_
|
||||||
#define MYX_LOG_QT_TRANSLATORS_HPP_
|
#define MYX_LOG_QT_TRANSLATORS_HPP_
|
||||||
|
|
||||||
|
#include <myx/base/config.hpp>
|
||||||
#include <myx/qt/backports.hpp>
|
#include <myx/qt/backports.hpp>
|
||||||
|
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
|
@ -22,38 +22,45 @@ set(TRGT_moc_hpp
|
|||||||
set(TRGT_headers ${TRGT_hpp})
|
set(TRGT_headers ${TRGT_hpp})
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
add_library(${TRGT}-header-only INTERFACE)
|
||||||
common_target_properties(${TRGT})
|
target_include_directories(
|
||||||
|
${TRGT}-header-only SYSTEM INTERFACE "$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
|
||||||
|
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-tidy
|
if(MYXLIB_BUILD_LIBRARIES)
|
||||||
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
common_target_properties(${TRGT})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clang-analyze
|
# Создание цели для проверки утилитой clang-tidy
|
||||||
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой clazy
|
# Создание цели для проверки утилитой clang-analyze
|
||||||
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для проверки утилитой pvs-studio
|
# Создание цели для проверки утилитой clazy
|
||||||
add_pvs_check(${TRGT})
|
add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
|
|
||||||
# Создание цели для автоматического форматирования кода
|
# Создание цели для проверки утилитой pvs-studio
|
||||||
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
add_pvs_check(${TRGT})
|
||||||
|
|
||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
# Создание цели для автоматического форматирования кода
|
||||||
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Network_INCLUDE_DIRS})
|
add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers})
|
||||||
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
|
||||||
|
|
||||||
cotire(${TRGT})
|
target_compile_definitions(${TRGT} PUBLIC MYXLIB_BUILD_LIBRARIES)
|
||||||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS})
|
||||||
|
target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Network_INCLUDE_DIRS})
|
||||||
|
target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src)
|
||||||
|
|
||||||
|
cotire(${TRGT})
|
||||||
|
install(TARGETS ${TRGT}_static COMPONENT DEV ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
install(TARGETS ${TRGT}_shared COMPONENT DEV LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
||||||
|
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT DEV DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
|
||||||
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
# Цель, используемая только для установки заголовочных файлов без компиляции проекта
|
||||||
add_custom_target(${TRGT}-install-headers COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_COMPONENT=DEV -P
|
add_custom_target(${TRGT}-install-headers COMMAND ${CMAKE_COMMAND} -DCMAKE_INSTALL_COMPONENT=DEV -P
|
||||||
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
"${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
||||||
|
|
||||||
# Правила для установки
|
|
||||||
install(TARGETS ${TRGT}_static COMPONENT DEV ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
if(BUILD_SHARED_LIBS)
|
|
||||||
install(TARGETS ${TRGT}_shared COMPONENT DEV LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
endif()
|
|
||||||
install(FILES ${TRGT_headers} COMPONENT DEV DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${TRGT})
|
|
||||||
install(FILES ${CMAKE_BINARY_DIR}/${TRGT}.pc COMPONENT DEV DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user