diff --git a/.clang-tidy b/.clang-tidy index 2592d8f..2360d4c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -13,6 +13,7 @@ portability-*, -cppcoreguidelines-owning-memory, -cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, +-llvm-header-guard, -readability-magic-numbers, -readability-else-after-return, -modernize-use-trailing-return-type, diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cb3229..4ca947f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,10 +15,11 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/find) include(CMLibCommon) -option(BUILD_EXAMPLES "Build examples" OFF) +option(MYXLIB_BUILD_COMPILED "Build compiled version of library" OFF) +option(MYXLIB_BUILD_EXAMPLES "Build examples" OFF) # Поиск библиотек с помощью pkgconfig -find_package(PkgConfig) +find_package(PkgConfig REQUIRED) # Потоки set(THREADS_PREFER_PTHREAD_FLAG ON) diff --git a/src/myx/base/CMakeLists.txt b/src/myx/base/CMakeLists.txt index 23f255f..b9c8109 100644 --- a/src/myx/base/CMakeLists.txt +++ b/src/myx/base/CMakeLists.txt @@ -3,33 +3,35 @@ set(TRGT base) # cmake-format: off # Список файлов исходных текстов -set(TRGT_sources +set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/config.cpp) # Список заголовочных файлов -set(TRGT_headers +set(TRGT_hpp ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp ${CMAKE_CURRENT_SOURCE_DIR}/limits.hpp ${CMAKE_CURRENT_SOURCE_DIR}/enum_bitmask_operations.hpp) + +set(TRGT_headers ${TRGT_hpp}) # cmake-format: on -add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers}) +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_sources}) +add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_sources}) +add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_sources}) +add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой pvs-studio add_pvs_check(${TRGT}) # Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) +add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) diff --git a/src/myx/filesystem/CMakeLists.txt b/src/myx/filesystem/CMakeLists.txt index 17e9c1d..de539f8 100644 --- a/src/myx/filesystem/CMakeLists.txt +++ b/src/myx/filesystem/CMakeLists.txt @@ -3,35 +3,37 @@ set(TRGT filesystem) # cmake-format: off # Список файлов исходных текстов -set(TRGT_sources +set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/current_executable.cpp ${CMAKE_CURRENT_SOURCE_DIR}/paths.cpp ${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.cpp) # Список заголовочных файлов -set(TRGT_headers +set(TRGT_hpp ${CMAKE_CURRENT_SOURCE_DIR}/current_executable.hpp ${CMAKE_CURRENT_SOURCE_DIR}/paths.hpp ${CMAKE_CURRENT_SOURCE_DIR}/paths_mt.hpp) + +set(TRGT_headers ${TRGT_hpp}) # cmake-format: on -add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources}) +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_sources}) +add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_sources}) +add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_sources}) +add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой pvs-studio add_pvs_check(${TRGT}) # Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) +add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) diff --git a/src/myx/math/CMakeLists.txt b/src/myx/math/CMakeLists.txt index 199e71d..9672181 100644 --- a/src/myx/math/CMakeLists.txt +++ b/src/myx/math/CMakeLists.txt @@ -11,7 +11,7 @@ set(TRGT_sources ${CMAKE_CURRENT_SOURCE_DIR}/constants.cpp) # Список заголовочных файлов -set(TRGT_headers +set(TRGT_hpp ${CMAKE_CURRENT_SOURCE_DIR}/all.hpp ${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative.hpp ${CMAKE_CURRENT_SOURCE_DIR}/almost_equal_relative_and_abs.hpp @@ -22,19 +22,21 @@ set(TRGT_headers ${CMAKE_CURRENT_SOURCE_DIR}/functions.hpp ${CMAKE_CURRENT_SOURCE_DIR}/radar.hpp ${CMAKE_CURRENT_SOURCE_DIR}/units.hpp) + +set(TRGT_headers ${TRGT_hpp}) # cmake-format: on -add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources}) +add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources} ${TRGT_headers}) common_target_properties(${TRGT}) # Создание цели для проверки утилитой clang-tidy -add_clang_tidy_check(${TRGT} ${TRGT_sources}) +add_clang_tidy_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) # Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_sources}) +add_clang_analyze_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) # Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_sources}) +add_clazy_check(${TRGT} ${TRGT_sources} ${TRGT_headers}) # Создание цели для проверки утилитой pvs-studio add_pvs_check(${TRGT}) diff --git a/src/myx/qt/CMakeLists.txt b/src/myx/qt/CMakeLists.txt index 5e4079c..931c196 100644 --- a/src/myx/qt/CMakeLists.txt +++ b/src/myx/qt/CMakeLists.txt @@ -3,32 +3,34 @@ set(TRGT qt) # cmake-format: off # Список файлов исходных текстов -set(TRGT_sources +set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/translators.cpp) # Список заголовочных файлов (используется для установки) -set(TRGT_headers +set(TRGT_hpp ${CMAKE_CURRENT_SOURCE_DIR}/backports.hpp ${CMAKE_CURRENT_SOURCE_DIR}/translators.hpp) + +set(TRGT_headers ${TRGT_hpp}) # cmake-format: on -add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources}) +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_sources}) +add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_sources}) +add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_sources}) +add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой pvs-studio add_pvs_check(${TRGT}) # Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) +add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PRIVATE ${CMAKE_SOURCE_DIR}/src) diff --git a/src/myx/qt/translators.cpp b/src/myx/qt/translators.cpp index 8060dba..0207e97 100644 --- a/src/myx/qt/translators.cpp +++ b/src/myx/qt/translators.cpp @@ -36,7 +36,6 @@ void append_translators( QTranslatorsList& translators, const QString& appName ) translator->deleteLater(); } - translator = new QTranslator( qApp ); if ( translator->load( "qtbase_" + QLocale::system().name(), QLibraryInfo::location( QLibraryInfo::TranslationsPath ) ) ) diff --git a/src/myx/redis/CMakeLists.txt b/src/myx/redis/CMakeLists.txt index 23617b2..578deff 100644 --- a/src/myx/redis/CMakeLists.txt +++ b/src/myx/redis/CMakeLists.txt @@ -3,7 +3,7 @@ set(TRGT redis) # cmake-format: off # Список файлов исходных текстов -set(TRGT_sources +set(TRGT_cpp ${CMAKE_CURRENT_SOURCE_DIR}/client.cpp ${CMAKE_CURRENT_SOURCE_DIR}/config.cpp ${CMAKE_CURRENT_SOURCE_DIR}/lexer.cpp @@ -11,32 +11,34 @@ set(TRGT_sources ${CMAKE_CURRENT_SOURCE_DIR}/request.cpp) # Список заголовочных файлов (используется для установки) -set(TRGT_headers +set(TRGT_moc_hpp ${CMAKE_CURRENT_SOURCE_DIR}/client.hpp ${CMAKE_CURRENT_SOURCE_DIR}/config.hpp ${CMAKE_CURRENT_SOURCE_DIR}/lexer.hpp ${CMAKE_CURRENT_SOURCE_DIR}/parser.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reply.hpp ${CMAKE_CURRENT_SOURCE_DIR}/request.hpp) + +set(TRGT_headers ${TRGT_hpp}) # cmake-format: on -add_common_library(${TRGT} OUTPUT_NAME myx-${TRGT} SOURCES ${TRGT_sources}) +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_sources}) +add_clang_tidy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clang-analyze -add_clang_analyze_check(${TRGT} ${TRGT_sources}) +add_clang_analyze_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой clazy -add_clazy_check(${TRGT} ${TRGT_sources}) +add_clazy_check(${TRGT} ${TRGT_cpp} ${TRGT_headers}) # Создание цели для проверки утилитой pvs-studio add_pvs_check(${TRGT}) # Создание цели для автоматического форматирования кода -add_format_sources(${TRGT} ${TRGT_sources} ${TRGT_headers}) +add_format_sources(${TRGT} ${TRGT_cpp} ${TRGT_headers}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Core_INCLUDE_DIRS}) target_include_directories(${TRGT} SYSTEM PUBLIC ${Qt5Network_INCLUDE_DIRS})