KDSPDSetup
Small library to initialize spdlog loggers from a toml configuration file.
Loading...
Searching...
No Matches
/home/runner/work/KDSPDSetup/KDSPDSetup/.cmake-format.py
Go to the documentation of this file.
1# ----------------------------------
2# Options affecting listfile parsing
3# ----------------------------------
4with section("parse"):
5
6 # Specify structure for custom cmake functions
7 additional_commands = {'foo': {'flags': ['BAR', 'BAZ'],
8 'kwargs': {'DEPENDS': '*', 'HEADERS': '*', 'SOURCES': '*'}}}
9
10 # Override configurations per-command where available
11 override_spec = {}
12
13 # Specify variable tags.
14 vartags = []
15
16 # Specify property tags.
17 proptags = []
18
19# -----------------------------
20# Options affecting formatting.
21# -----------------------------
22with section("format"):
23
24 # Disable formatting entirely, making cmake-format a no-op
25 disable = False
26
27 # How wide to allow formatted cmake files
28 line_width = 120
29
30 # How many spaces to tab for indent
31 tab_size = 4
32
33 # If true, lines are indented using tab characters (utf-8 0x09) instead of
34 # <tab_size> space characters (utf-8 0x20). In cases where the layout would
35 # require a fractional tab character, the behavior of the fractional
36 # indentation is governed by <fractional_tab_policy>
37 use_tabchars = False
38
39 # If <use_tabchars> is True, then the value of this variable indicates how
40 # fractional indentions are handled during whitespace replacement. If set to
41 # 'use-space', fractional indentation is left as spaces (utf-8 0x20). If set
42 # to `round-up` fractional indentation is replaced with a single tab character
43 # (utf-8 0x09) effectively shifting the column to the next tabstop
44 fractional_tab_policy = 'use-space'
45
46 # If an argument group contains more than this many sub-groups (parg or kwarg
47 # groups) then force it to a vertical layout.
48 max_subgroups_hwrap = 2
49
50 # If a positional argument group contains more than this many arguments, then
51 # force it to a vertical layout.
52 max_pargs_hwrap = 4
53
54 # If a cmdline positional group consumes more than this many lines without
55 # nesting, then invalidate the layout (and nest)
56 max_rows_cmdline = 2
57
58 # If true, separate flow control names from their parentheses with a space
59 separate_ctrl_name_with_space = False
60
61 # If true, separate function names from parentheses with a space
62 separate_fn_name_with_space = False
63
64 # If a statement is wrapped to more than one line, than dangle the closing
65 # parenthesis on its own line.
66 dangle_parens = True
67
68 # If the trailing parenthesis must be 'dangled' on its on line, then align it
69 # to this reference: `prefix`: the start of the statement, `prefix-indent`:
70 # the start of the statement, plus one indentation level, `child`: align to
71 # the column of the arguments
72 dangle_align = 'prefix'
73
74 # If the statement spelling length (including space and parenthesis) is
75 # smaller than this amount, then force reject nested layouts.
76 min_prefix_chars = 4
77
78 # If the statement spelling length (including space and parenthesis) is larger
79 # than the tab width by more than this amount, then force reject un-nested
80 # layouts.
81 max_prefix_chars = 10
82
83 # If a candidate layout is wrapped horizontally but it exceeds this many
84 # lines, then reject the layout.
85 max_lines_hwrap = 2
86
87 # What style line endings to use in the output.
88 line_ending = 'unix'
89
90 # Format command names consistently as 'lower' or 'upper' case
91 command_case = 'lower'
92
93 # Format keywords consistently as 'lower' or 'upper' case
94 keyword_case = 'upper'
95
96 # A list of command names which should always be wrapped
97 always_wrap = ["add_executable", "add_library",
98 "target_link_libraries", "target_include_directories", "install"]
99
100 # If true, the argument lists which are known to be sortable will be sorted
101 # lexicographicall
102 enable_sort = True
103
104 # If true, the parsers may infer whether or not an argument list is sortable
105 # (without annotation).
106 autosort = True
107
108 # By default, if cmake-format cannot successfully fit everything into the
109 # desired linewidth it will apply the last, most agressive attempt that it
110 # made. If this flag is True, however, cmake-format will print error, exit
111 # with non-zero status code, and write-out nothing
112 require_valid_layout = False
113
114 # A dictionary mapping layout nodes to a list of wrap decisions. See the
115 # documentation for more information.
116 layout_passes = {}
117
118# ------------------------------------------------
119# Options affecting comment reflow and formatting.
120# ------------------------------------------------
121with section("markup"):
122
123 # What character to use for bulleted lists
124 bullet_char = '*'
125
126 # What character to use as punctuation after numerals in an enumerated list
127 enum_char = '.'
128
129 # If comment markup is enabled, don't reflow the first comment block in each
130 # listfile. Use this to preserve formatting of your copyright/license
131 # statements.
132 first_comment_is_literal = False
133
134 # If comment markup is enabled, don't reflow any comment block which matches
135 # this (regex) pattern. Default is `None` (disabled).
136 literal_comment_pattern = None
137
138 # Regular expression to match preformat fences in comments default=
139 # ``r'^\s*([`~]{3}[`~]*)(.*)$'``
140 fence_pattern = '^\\s*([`~]{3}[`~]*)(.*)$'
141
142 # Regular expression to match rulers in comments default=
143 # ``r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'``
144 ruler_pattern = '^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$'
145
146 # If a comment line matches starts with this pattern then it is explicitly a
147 # trailing comment for the preceeding argument. Default is '#<'
148 explicit_trailing_pattern = '#<'
149
150 # If a comment line starts with at least this many consecutive hash
151 # characters, then don't lstrip() them off. This allows for lazy hash rulers
152 # where the first hash char is not separated by space
153 hashruler_min_length = 10
154
155 # If true, then insert a space between the first hash char and remaining hash
156 # chars in a hash ruler, and normalize its length to fill the column
157 canonicalize_hashrulers = True
158
159 # enable comment markup parsing and reflow
160 enable_markup = False
161
162# ----------------------------
163# Options affecting the linter
164# ----------------------------
165with section("lint"):
166
167 # a list of lint codes to disable
168 disabled_codes = []
169
170 # regular expression pattern describing valid function names
171 function_pattern = '[0-9a-z_]+'
172
173 # regular expression pattern describing valid macro names
174 macro_pattern = '[0-9a-z_]+'
175
176 # regular expression pattern describing valid names for variables with global
177 # (cache) scope
178 global_var_pattern = '[A-Z][0-9A-Z_]+'
179
180 # regular expression pattern describing valid names for variables with global
181 # scope (but internal semantic)
182 internal_var_pattern = '[A-Z][0-9A-Z_]+'
183
184 # regular expression pattern describing valid names for variables with local
185 # scope
186 local_var_pattern = '[_A-Za-z][A-Za-z0-9_]+'
187
188 # regular expression pattern describing valid names for privatedirectory
189 # variables
190 private_var_pattern = '[0-9a-z_]+'
191
192 # regular expression pattern describing valid names for public directory
193 # variables
194 public_var_pattern = '.*'
195
196 # regular expression pattern describing valid names for function/macro
197 # arguments and loop variables.
198 argument_var_pattern = '[a-z_][a-z0-9_]+'
199
200 # regular expression pattern describing valid names for keywords used in
201 # functions or macros
202 keyword_pattern = '[A-Z][0-9A-Z_]+'
203
204 # In the heuristic for C0201, how many conditionals to match within a loop in
205 # before considering the loop a parser.
206 max_conditionals_custom_parser = 2
207
208 # Require at least this many newlines between statements
209 min_statement_spacing = 1
210
211 # Require no more than this many newlines between statements
212 max_statement_spacing = 2
213 max_returns = 6
214 max_branches = 15
215 max_arguments = 10
216 max_localvars = 15
217 max_statements = 50
218
219# -------------------------------
220# Options affecting file encoding
221# -------------------------------
222with section("encode"):
223
224 # If true, emit the unicode byte-order mark (BOM) at the start of the file
225 emit_byteorder_mark = False
226
227 # Specify the encoding of the input file. Defaults to utf-8
228 input_encoding = 'utf-8'
229
230 # Specify the encoding of the output file. Defaults to utf-8. Note that cmake
231 # only claims to support utf-8 so be careful when using anything else
232 output_encoding = 'utf-8'
233
234# -------------------------------------
235# Miscellaneous configurations options.
236# -------------------------------------
237with section("misc"):
238
239 # A dictionary containing any per-command configuration overrides. Currently
240 # only `command_case` is supported.
241 per_command = {}