Skip to content

Commit 35f0945

Browse files
committed
feat build: format CMake files
Tests: протестировано CI commit_hash:c182cef5c5d128f93f35afe44508239f95347063
1 parent 02da978 commit 35f0945

File tree

92 files changed

+784
-1024
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+784
-1024
lines changed

.cmake-format.py

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,23 @@
33
# ----------------------------------
44
with section('parse'): # noqa: F821
55
# Specify structure for custom cmake functions
6+
# flags - single word flags
67
# pargs - positional arguments
78
# kwargs - keyword arguments
89
additional_commands = {
10+
'cpmaddpackage': {
11+
'flags': ['EXCLUDE_FROM_ALL', 'DOWNLOAD_ONLY', 'SYSTEM'],
12+
'kwargs': {
13+
'NAME': '*',
14+
'VERSION': '*',
15+
'GITHUB_REPOSITORY': '*',
16+
'URL': '*',
17+
'OPTIONS': '*',
18+
'PATCHES': '*',
19+
'SOURCE_SUBDIR': '*',
20+
'GIT_TAG': '*',
21+
},
22+
},
923
'userver_module': {
1024
'pargs': 1,
1125
'kwargs': {
@@ -28,6 +42,8 @@
2842
'UBENCH_LINK_LIBRARIES': '*',
2943
'UBENCH_ENV': '*',
3044
'POSTGRES_TEST_DSN': '*',
45+
'DEPENDS': '*',
46+
'EMBED_FILES': '*',
3147
},
3248
'flags': ['NO_INSTALL', 'NO_CORE_LINK', 'GENERATE_DYNAMIC_CONFIGS'],
3349
},
@@ -61,6 +77,61 @@
6177
},
6278
'flags': ['UNIQUE'],
6379
},
80+
'userver_testsuite_requirements': {
81+
'flags': ['TESTSUITE_ONLY'],
82+
'kwargs': {
83+
'REQUIREMENTS_FILES_VAR': '*',
84+
},
85+
},
86+
'userver_testsuite_add': {
87+
'kwargs': {
88+
'SERVICE_TARGET': '*',
89+
'TEST_SUFFIX': '*',
90+
'WORKING_DIRECTORY': '*',
91+
'PYTHON_BINARY': '*',
92+
'PRETTY_LOGS': '*',
93+
'SQL_LIBRARY': '*',
94+
'PYTEST_ARGS': '*',
95+
'REQUIREMENTS': '*',
96+
'PYTHONPATH': '*',
97+
'TEST_ENV': '*',
98+
},
99+
},
100+
'userver_testsuite_add_simple': {
101+
'kwargs': {
102+
'SERVICE_TARGET': '*',
103+
'TEST_SUFFIX': '*',
104+
'WORKING_DIRECTORY': '*',
105+
'PYTHON_BINARY': '*',
106+
'PRETTY_LOGS': '*',
107+
'CONFIG_PATH': '*',
108+
'CONFIG_VARS_PATH': '*',
109+
'DYNAMIC_CONFIG_FALLBACK_PATH': '*',
110+
'SECDIST_PATH': '*',
111+
'DUMP_CONFIG': '*',
112+
'SQL_LIBRARY': '*',
113+
'PYTEST_ARGS': '*',
114+
'REQUIREMENTS': '*',
115+
'PYTHONPATH': '*',
116+
'TEST_ENV': '*',
117+
},
118+
},
119+
'userver_add_utest': {
120+
'flags': ['DISABLE_GTEST_XML_OUTPUT'],
121+
'kwargs': {
122+
'NAME': '*',
123+
'DATABASES': '*',
124+
'TEST_ENV': '*',
125+
'TEST_ARGS': '*',
126+
},
127+
},
128+
'userver_add_ubench_test': {
129+
'kwargs': {
130+
'NAME': '*',
131+
'DATABASES': '*',
132+
'TEST_ENV': '*',
133+
},
134+
},
64135
'userver_venv_setup': {
65136
'kwargs': {
66137
'NAME': '*',
@@ -81,6 +152,48 @@
81152
'ENV': '*',
82153
},
83154
},
155+
'_userver_module_begin': {
156+
'flags': ['CPM_DOWNLOAD_ONLY'],
157+
'kwargs': {
158+
'NAME': '*',
159+
'DEBIAN_NAMES': '*',
160+
'FORMULA_NAMES': '*',
161+
'RPM_NAMES': '*',
162+
'PKG_NAMES': '*',
163+
'PACMAN_NAMES': '*',
164+
'PKG_CONFIG_NAMES': '*',
165+
'VERSION': '*',
166+
'CPM_NAME': '*',
167+
'CPM_GIT_TAG': '*',
168+
'CPM_URL': '*',
169+
'CPM_GITHUB_REPOSITORY': '*',
170+
'CPM_VERSION': '*',
171+
'CPM_OPTIONS': '*',
172+
},
173+
},
174+
'_userver_module_find_include': {
175+
'kwargs': {
176+
'NAME': '*',
177+
'PATHS': '*',
178+
'PATH_SUFFIXES': '*',
179+
},
180+
},
181+
'_userver_module_find_library': {
182+
'flags': ['OPTIONAL'],
183+
'kwargs': {
184+
'NAMES': '*',
185+
'PATHS': '*',
186+
},
187+
},
188+
'_userver_module_find_part': {
189+
'flags': ['OPTIONAL'],
190+
'kwargs': {
191+
'PART_TYPE': '*',
192+
'NAMES': '*',
193+
'PATH_SUFFIXES': '*',
194+
'PATHS': '*',
195+
},
196+
},
84197
}
85198

86199
# -----------------------------

chaotic-openapi/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ if(USERVER_BUILD_TESTS)
2626
)
2727

2828
add_subdirectory(integration_tests)
29-
if (USERVER_CHAOTIC_GOLDEN_TESTS)
29+
if(USERVER_CHAOTIC_GOLDEN_TESTS)
3030
add_subdirectory(golden_tests)
3131
endif()
3232
endif()

chaotic/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ if(USERVER_BUILD_TESTS)
2727
add_subdirectory(integration_tests)
2828

2929
option(USERVER_CHAOTIC_GOLDEN_TESTS "Whether to run golden tests of chaotic" ON)
30-
if (USERVER_CHAOTIC_GOLDEN_TESTS)
30+
if(USERVER_CHAOTIC_GOLDEN_TESTS)
3131
add_subdirectory(golden_tests)
3232
endif()
3333
endif()

chaotic/golden_tests/CMakeLists.txt

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ userver_target_generate_chaotic(
1919
RELATIVE_TO "${CMAKE_CURRENT_SOURCE_DIR}"
2020
)
2121

22-
add_test(
23-
NAME chaotic-golden
24-
COMMAND "${USERVER_CHAOTIC_PYTEST_PYTHON_BINARY}"
25-
"${CMAKE_CURRENT_SOURCE_DIR}/scripts/diff-clang-format.py"
26-
--golden-dir "${CMAKE_CURRENT_SOURCE_DIR}/output"
27-
--generated-dir "${CMAKE_CURRENT_BINARY_DIR}/src"
22+
add_test(NAME chaotic-golden
23+
COMMAND "${USERVER_CHAOTIC_PYTEST_PYTHON_BINARY}" "${CMAKE_CURRENT_SOURCE_DIR}/scripts/diff-clang-format.py"
24+
--golden-dir "${CMAKE_CURRENT_SOURCE_DIR}/output" --generated-dir "${CMAKE_CURRENT_BINARY_DIR}/src"
2825
)
2926

3027
add_custom_target(

clickhouse/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ userver_module(
1717
"${CMAKE_CURRENT_SOURCE_DIR}/src/storages/tests/utils_test.cpp"
1818
DBTEST_DATABASES clickhouse
1919
DEPENDS core
20-
EMBED_FILES
21-
src/storages/clickhouse/component.yaml
20+
EMBED_FILES src/storages/clickhouse/component.yaml
2221
)
2322

2423
target_compile_options(${PROJECT_NAME} PUBLIC "-Wno-error=pedantic")

cmake/ChaoticGen.cmake

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,14 @@ _userver_prepare_chaotic()
5454
# Generates ${TARGET} cmake target for C++ types, parsers, serializers from JSONSchema file(s).
5555
#
5656
# Options:
57-
# - OUTPUT_DIR - where to put generated .cpp/.hpp/.ipp files, usually ${CMAKE_CURRENT_BINARY_DIR}/smth
58-
# - RELATIVE_TO - --relative-to option to chaotic-gen
59-
# - FORMAT - can be ON/OFF, enable to format generated files, defaults to USERVER_CHAOTIC_FORMAT
60-
# - SCHEMAS - JSONSchema source files
61-
# - ARGS - extra args to chaotic-gen
62-
# - INSTALL_INCLUDES_COMPONENT - component to install generated includes
63-
# - LINK_TARGETS - targets to link (used by x-usrv-cpp-type)
57+
#
58+
# * OUTPUT_DIR - where to put generated .cpp/.hpp/.ipp files, usually ${CMAKE_CURRENT_BINARY_DIR}/smth
59+
# * RELATIVE_TO - --relative-to option to chaotic-gen
60+
# * FORMAT - can be ON/OFF, enable to format generated files, defaults to USERVER_CHAOTIC_FORMAT
61+
# * SCHEMAS - JSONSchema source files
62+
# * ARGS - extra args to chaotic-gen
63+
# * INSTALL_INCLUDES_COMPONENT - component to install generated includes
64+
# * LINK_TARGETS - targets to link (used by x-usrv-cpp-type)
6465
function(userver_target_generate_chaotic TARGET)
6566
set(OPTIONS GENERATE_SERIALIZERS PARSE_EXTRA_FORMATS)
6667
set(ONE_VALUE_ARGS OUTPUT_DIR RELATIVE_TO FORMAT INSTALL_INCLUDES_COMPONENT OUTPUT_PREFIX ERASE_PATH_PREFIX)
@@ -142,17 +143,16 @@ function(userver_target_generate_chaotic TARGET)
142143

143144
get_target_property(TARGET_LIBRARIES "${TARGET}" LINK_LIBRARIES)
144145
foreach(LIBRARY ${TARGET_LIBRARIES})
145-
get_target_property(DIRS "${LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES)
146-
foreach(DIRECTORY ${DIRS})
147-
set(CHAOTIC_ARGS ${CHAOTIC_ARGS} -I ${DIRECTORY})
148-
endforeach()
146+
get_target_property(DIRS "${LIBRARY}" INTERFACE_INCLUDE_DIRECTORIES)
147+
foreach(DIRECTORY ${DIRS})
148+
set(CHAOTIC_ARGS ${CHAOTIC_ARGS} -I ${DIRECTORY})
149+
endforeach()
149150
endforeach()
150151

151152
add_custom_command(
152153
OUTPUT ${SCHEMAS}
153154
COMMAND ${CMAKE_COMMAND} -E env "USERVER_PYTHON=${USERVER_CHAOTIC_PYTHON_BINARY}" "${CHAOTIC_BIN}"
154-
${CHAOTIC_EXTRA_ARGS} ${CHAOTIC_ARGS} ${PARSE_SCHEMAS}
155-
--clang-format "${CLANG_FORMAT}"
155+
${CHAOTIC_EXTRA_ARGS} ${CHAOTIC_ARGS} ${PARSE_SCHEMAS} --clang-format "${CLANG_FORMAT}"
156156
DEPENDS ${PARSE_SCHEMAS}
157157
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
158158
VERBATIM ${CODEGEN}
@@ -269,9 +269,8 @@ function(userver_target_generate_chaotic_dynamic_configs TARGET SCHEMAS_REGEX)
269269

270270
add_custom_command(
271271
OUTPUT ${OUTPUT_FILENAMES}
272-
COMMAND
273-
env "USERVER_PYTHON=${USERVER_CHAOTIC_PYTHON_BINARY}" "${CHAOTIC_DYNAMIC_CONFIGS_BIN}" ${CHAOTIC_EXTRA_ARGS}
274-
-o "${OUTPUT_DIR}" ${CHGEN_FILENAMES}
272+
COMMAND env "USERVER_PYTHON=${USERVER_CHAOTIC_PYTHON_BINARY}" "${CHAOTIC_DYNAMIC_CONFIGS_BIN}"
273+
${CHAOTIC_EXTRA_ARGS} -o "${OUTPUT_DIR}" ${CHGEN_FILENAMES}
275274
COMMENT "Generating dynamic configs${CONFIG_NAMES}"
276275
DEPENDS ${CHGEN_FILENAMES}
277276
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"

cmake/ModuleHelpers.cmake

Lines changed: 35 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@ include_guard(GLOBAL)
33
cmake_policy(SET CMP0054 NEW)
44

55
macro(_userver_module_begin)
6-
set(options
7-
CPM_DOWNLOAD_ONLY
8-
)
6+
set(options CPM_DOWNLOAD_ONLY)
97
set(oneValueArgs # Target name, also used for package name by default
108
NAME VERSION
119
)
1210
set(multiValueArgs
13-
DEBIAN_NAMES FORMULA_NAMES RPM_NAMES PACMAN_NAMES PKG_NAMES
11+
DEBIAN_NAMES
12+
FORMULA_NAMES
13+
RPM_NAMES
14+
PACMAN_NAMES
15+
PKG_NAMES
1416
# For version detection of manually installed packages and unknown package managers.
15-
PKG_CONFIG_NAMES
16-
# For CPM options
17-
CPM_NAME
17+
PKG_CONFIG_NAMES
18+
# For CPM options
19+
CPM_NAME
1820
CPM_VERSION
1921
CPM_GITHUB_REPOSITORY
2022
CPM_URL
@@ -31,15 +33,13 @@ macro(_userver_module_begin)
3133
string(REPLACE "-" "_" ARG_CPM_NAME "${ARG_CPM_NAME}")
3234

3335
if(ARG_CPM_NAME)
34-
option(
35-
USERVER_DOWNLOAD_PACKAGE_${ARG_CPM_NAME}
36-
"Download and setup ${ARG_CPM_NAME} if no library of matching version was found"
37-
${USERVER_DOWNLOAD_PACKAGES}
36+
option(USERVER_DOWNLOAD_PACKAGE_${ARG_CPM_NAME}
37+
"Download and setup ${ARG_CPM_NAME} if no library of matching version was found"
38+
${USERVER_DOWNLOAD_PACKAGES}
3839
)
39-
option(
40-
USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME}
41-
"Download ${ARG_CPM_NAME} even if there is an installed system package"
42-
${USERVER_FORCE_DOWNLOAD_PACKAGES}
40+
option(USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME}
41+
"Download ${ARG_CPM_NAME} even if there is an installed system package"
42+
${USERVER_FORCE_DOWNLOAD_PACKAGES}
4343
)
4444
endif()
4545

@@ -104,11 +104,8 @@ endmacro()
104104
macro(_userver_module_find_part)
105105
# Also uses ARGs left over from _userver_find_module_begin
106106

107-
# TODO: return() doesn't work inside of macro
108-
# if(USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME})
109-
# message(STATUS "Skipping ${ARG_CPM_NAME} system package search due to USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME}=TRUE")
110-
# return()
111-
# endif()
107+
# TODO: return() doesn't work inside of macro if(USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME}) message(STATUS "Skipping
108+
# ${ARG_CPM_NAME} system package search due to USERVER_FORCE_DOWNLOAD_${ARG_CPM_NAME}=TRUE") return() endif()
112109

113110
set(options OPTIONAL)
114111
set(oneValueArgs PART_TYPE)
@@ -147,7 +144,7 @@ macro(_userver_module_find_part)
147144
message(FATAL_ERROR "Invalid PART_TYPE")
148145
endif()
149146

150-
if(${mangled_name} OR NOT ARG_OPTIONAL)
147+
if(${mangled_name} OR NOT ARG_OPTIONAL)
151148
list(APPEND "${variable}" "${${mangled_name}}")
152149
endif()
153150

@@ -163,21 +160,16 @@ macro(_userver_module_find_library)
163160
set(multiValueArgs NAMES PATHS PATH_SUFFIXES)
164161

165162
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
166-
set(OPTIONAL_TO_PASS)
167-
if(ARG_OPTIONAL)
168-
set(OPTIONAL_TO_PASS OPTIONAL)
169-
endif()
163+
set(OPTIONAL_TO_PASS)
164+
if(ARG_OPTIONAL)
165+
set(OPTIONAL_TO_PASS OPTIONAL)
166+
endif()
170167

171168
_userver_module_find_part(
172-
PART_TYPE
173-
library
174-
${OPTIONAL_TO_PASS}
175-
NAMES
176-
${ARG_NAMES}
177-
PATHS
178-
${ARG_PATHS}
179-
PATH_SUFFIXES
180-
${ARG_PATH_SUFFIXES}
169+
PART_TYPE library ${OPTIONAL_TO_PASS}
170+
NAMES ${ARG_NAMES}
171+
PATHS ${ARG_PATHS}
172+
PATH_SUFFIXES ${ARG_PATH_SUFFIXES}
181173
)
182174
endmacro()
183175

@@ -189,14 +181,10 @@ macro(_userver_module_find_include)
189181
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
190182

191183
_userver_module_find_part(
192-
PART_TYPE
193-
path
194-
NAMES
195-
${ARG_NAMES}
196-
PATHS
197-
${ARG_PATHS}
198-
PATH_SUFFIXES
199-
${ARG_PATH_SUFFIXES}
184+
PART_TYPE path
185+
NAMES ${ARG_NAMES}
186+
PATHS ${ARG_PATHS}
187+
PATH_SUFFIXES ${ARG_PATH_SUFFIXES}
200188
)
201189
endmacro()
202190

@@ -208,14 +196,10 @@ macro(_userver_module_find_program)
208196
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
209197

210198
_userver_module_find_part(
211-
PART_TYPE
212-
program
213-
NAMES
214-
${ARG_NAMES}
215-
PATHS
216-
${ARG_PATHS}
217-
PATH_SUFFIXES
218-
${ARG_PATH_SUFFIXES}
199+
PART_TYPE program
200+
NAMES ${ARG_NAMES}
201+
PATHS ${ARG_PATHS}
202+
PATH_SUFFIXES ${ARG_PATH_SUFFIXES}
219203
)
220204
endmacro()
221205

@@ -390,8 +374,7 @@ macro(_userver_cpm_addpackage name)
390374
URL ${ARG_CPM_URL}
391375
OPTIONS ${ARG_CPM_OPTIONS}
392376
SOURCE_SUBDIR ${ARG_CPM_SOURCE_SUBDIR}
393-
GIT_TAG ${ARG_CPM_GIT_TAG}
394-
${EXTRA_ARGS}
377+
GIT_TAG ${ARG_CPM_GIT_TAG} ${EXTRA_ARGS}
395378
)
396379
if(NOT ARG_CPM_DOWNLOAD_ONLY)
397380
mark_targets_as_system("${${name}_SOURCE_DIR}")

0 commit comments

Comments
 (0)