@@ -8,6 +8,7 @@ set(CMAKE_CXX_CLANG_TIDY
88 -format-style=file
99 --extra-arg=-Wno-unknown-warning-option
1010 --extra-arg=-Wno-unused-command -line-argument
11+ -header-filter =aos.*\|aoe.*
1112)
1213
1314set (CLANG_TIDY_FOR_3RD_PARTY "" CACHE STRING "" FORCE)
@@ -19,6 +20,15 @@ endfunction()
1920set (CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API OFF )
2021set (CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP OFF )
2122
23+ # Установка lld как линковщика по умолчанию
24+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld" )
25+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld" )
26+ set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld" )
27+
28+ # Включение профилирования времени
29+ set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_COMMAND} -E time" )
30+ set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time" )
31+
2232set_property (GLOBAL PROPERTY USE_FOLDERS ON )
2333
2434include (FetchContent)
@@ -98,19 +108,12 @@ FetchContent_Declare(
98108)
99109FetchContent_MakeAvailable(nlohmann_json)
100110
101- # # Fetch fmt
102- # FetchContent_Declare(
103- # fmt
104- # GIT_REPOSITORY https://github.com/fmtlib/fmt.git
105- # GIT_TAG master # or a specific commit/tag
106- # )
107- # FetchContent_MakeAvailable(fmt)
108-
109- # Fetch fmtlog
111+ # Fetch fork fmtlog
112+ set (BUILD_TESTS_FMTLOG OFF CACHE BOOL "Suppressing fmtlog's tests" FORCE)
110113FetchContent_Declare(
111114 fmtlog
112- GIT_REPOSITORY https://github.com/MengRao /fmtlog.git
113- GIT_TAG main # or use a stable tag/commit
115+ GIT_REPOSITORY https://github.com/linoxoidunix /fmtlog.git
116+ GIT_TAG main
114117)
115118FetchContent_MakeAvailable(fmtlog)
116119include_directories (${fmtlog_SOURCE_DIR} )
@@ -132,46 +135,30 @@ set_target_properties(fmt PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY}
132135set_target_properties (fmtlog-static PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
133136set_target_properties (benchmark PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
134137set_target_properties (gtest_main PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
138+ set_target_properties (gtest PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
135139set_target_properties (simdjson PROPERTIES CXX_CLANG_TIDY "${CLANG_TIDY_FOR_3RD_PARTY} " )
136140
137-
138-
139- # # Загружаем Dlib
140- # FetchContent_Declare(
141- # dlib
142- # GIT_REPOSITORY https://github.com/davisking/dlib.git
143- # GIT_TAG master # Укажите нужную версию
144- # )
145- # FetchContent_MakeAvailable(dlib)
146-
147- # # Загружаем Cereal
148- # FetchContent_Declare(
149- # cereal
150- # GIT_REPOSITORY https://github.com/USCiLab/cereal.git
151- # GIT_TAG v1.3.2 # или укажите нужную версию
152- # )
153-
154- # # Загружаем mlpack
155- # FetchContent_Declare(
156- # mlpack
157- # GIT_REPOSITORY https://github.com/mlpack/mlpack.git
158- # GIT_TAG master # или укажите конкретную версию, например v4.2.0
159- # )
160-
161- # # Загружаем зависимости для mlpack
162141# set(DOWNLOAD_DEPENDENCIES ON CACHE BOOL "Download dependencies for mlpack")
163142
164- # Загружаем все зависимости
165- # FetchContent_MakeAvailable(cereal)
166- # FetchContent_MakeAvailable(mlpack)
167-
168143set_target_properties (gtest PROPERTIES FOLDER "Hide3rdPartyLibrary" )
169144set_target_properties (gtest_main PROPERTIES FOLDER "Hide3rdPartyLibrary" )
170145set_target_properties (gmock PROPERTIES FOLDER "Hide3rdPartyLibrary" )
171146set_target_properties (gmock_main PROPERTIES FOLDER "Hide3rdPartyLibrary" )
147+ set_target_properties (fmt PROPERTIES FOLDER "Hide3rdPartyLibrary" )
148+ set_target_properties (fmtlog-static PROPERTIES FOLDER "Hide3rdPartyLibrary" )
149+ set_target_properties (fmtlog-shared PROPERTIES FOLDER "Hide3rdPartyLibrary" )
150+ set_target_properties (simdjson PROPERTIES FOLDER "Hide3rdPartyLibrary" )
151+ set_target_properties (benchmark PROPERTIES FOLDER "Hide3rdPartyLibrary" )
152+ set_target_properties (benchmark_main PROPERTIES FOLDER "Hide3rdPartyLibrary" )
172153
173154set_target_properties (magic_enum PROPERTIES EXCLUDE_FROM_ALL TRUE )
174155set_target_properties (tomlplusplus_tomlplusplus PROPERTIES EXCLUDE_FROM_ALL TRUE )
156+ set_target_properties (fmt PROPERTIES EXCLUDE_FROM_ALL TRUE )
157+ set_target_properties (fmtlog-static PROPERTIES EXCLUDE_FROM_ALL TRUE )
158+ set_target_properties (fmtlog-shared PROPERTIES EXCLUDE_FROM_ALL TRUE )
159+ set_target_properties (simdjson PROPERTIES EXCLUDE_FROM_ALL TRUE )
160+ set_target_properties (benchmark PROPERTIES EXCLUDE_FROM_ALL TRUE )
161+ set_target_properties (benchmark_main PROPERTIES EXCLUDE_FROM_ALL TRUE )
175162
176163file (GLOB LIST_H
177164 "aos/*h"
@@ -230,3 +217,8 @@ if(BUILD_TESTS_AOS)
230217else ()
231218 message (STATUS "Tests of ${PROJECT_NAME} are skipped." )
232219endif ()
220+
221+ add_custom_target (stats
222+ COMMAND ${CMAKE_COMMAND} -E echo "=== Build statistics ==="
223+ COMMAND ${CMAKE_COMMAND} -E echo "Total build time: $<TARGET_PROPERTY:${PROJECT_NAME} ,TIME_BUILD>"
224+ )
0 commit comments