11cmake_minimum_required (VERSION 3.28)
22set (PROJECT_NAME aos)
33project (${PROJECT_NAME} C CXX)
4+ set (CMAKE_CXX_STANDARD_REQUIRED True )
45set (CMAKE_EXPORT_COMPILE_COMMANDS ON )
6+ set (CMAKE_CXX_CLANG_TIDY
7+ clang-tidy
8+ -format-style=file
9+ --extra-arg=-Wno-unknown-warning-option
10+ --extra-arg=-Wno-unused-command -line-argument
11+ )
12+
13+ set (CLANG_TIDY_FOR_3RD_PARTY "" CACHE STRING "" FORCE)
14+ function (disable_clang_tidy_for_target target )
15+ set_target_properties (${target} PROPERTIES CXX_CLANG_TIDY "" )
16+ endfunction ()
17+
18+ # Запрещаем CMake добавлять флаги модулей
19+ set (CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API OFF )
20+ set (CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP OFF )
21+
522set_property (GLOBAL PROPERTY USE_FOLDERS ON )
623
724include (FetchContent)
@@ -24,14 +41,14 @@ FetchContent_Declare(
2441)
2542FetchContent_MakeAvailable(magic_enum)
2643
27-
2844FetchContent_Declare(
2945 tomlplusplus
3046 GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git
3147 GIT_TAG v3.4.0
3248)
3349FetchContent_MakeAvailable(tomlplusplus)
3450
51+
3552include (${CMAKE_SOURCE_DIR} /cmake/BuildLibsodium.cmake)
3653FetchContent_Declare(
3754 libsodium
@@ -111,6 +128,13 @@ message(STATUS "Declared simdjson FetchContent.")
111128FetchContent_MakeAvailable(simdjson)
112129message (STATUS "simdjson FetchContent is available." )
113130
131+ set_target_properties (fmt PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
132+ set_target_properties (fmtlog-static PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
133+ set_target_properties (benchmark PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
134+ set_target_properties (gtest_main PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
135+ set_target_properties (simdjson PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
136+
137+
114138
115139# # Загружаем Dlib
116140# FetchContent_Declare(
@@ -183,14 +207,21 @@ target_link_libraries(${PROJECT_NAME}
183207 tomlplusplus::tomlplusplus
184208 nlohmann_json::nlohmann_json
185209 sodium
186- fmt
187210 fmtlog-static
211+ fmt
188212)
189213
190- set_property (TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 23)
191- set (CMAKE_CXX_STANDARD_REQUIRED True )
214+
192215add_subdirectory (examples)
193216
217+
218+ set_property (TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 23)
219+ set_target_properties (${PROJECT_NAME} PROPERTIES
220+ CXX_SCAN_FOR_MODULES OFF
221+ CXX_MODULE_STD_ONLY OFF
222+ )
223+
224+
194225option (BUILD_TESTS_AOS "Build tests" ON )
195226if (BUILD_TESTS_AOS)
196227 enable_testing ()
0 commit comments