Skip to content

Commit 3fe3b8a

Browse files
authored
Merge branch 'develop' into yus/spline_interpolator
2 parents 691ea7a + a996c66 commit 3fe3b8a

60 files changed

Lines changed: 2191 additions & 1355 deletions

Some content is hidden

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

‎.cmake-format.yaml‎

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

‎.git-blame-ignore-revs‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# reformat w cmake format
2+
c726b259409b93e0a6df12d199f87eab8caa10db
3+
# reformat w clang format
4+
88dc8509543b34140a6015e361888644c5f5e0fe

‎.github/workflows/format-check.yml‎

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Format Check
2+
3+
on:
4+
push:
5+
branches: [ develop ]
6+
pull_request:
7+
branches: [ develop ]
8+
9+
jobs:
10+
format-check:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v3
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: '3.10'
21+
22+
- name: Install clang-format
23+
run: |
24+
sudo apt-get update
25+
sudo apt-get install -y clang-format
26+
27+
- name: Install cmake-format
28+
run: pip install cmake-format PyYAML
29+
30+
- name: Check C++ code format
31+
run: |
32+
EXIT_CODE=0
33+
while read file; do
34+
if ! clang-format --dry-run --Werror "$file"; then
35+
echo "$file is not properly formatted"
36+
echo "Run: clang-format -i $file"
37+
EXIT_CODE=1
38+
fi
39+
done < <(find . -name "*.cpp" -o -name "*.hpp" -o -name "*.c" -o -name "*.h" -o -name "*.cc" -o -name "*.cxx")
40+
if [ $EXIT_CODE -eq 1 ]; then
41+
echo "Some C/C++ files are not properly formatted"
42+
exit 1
43+
fi
44+
echo "All C/C++ files are properly formatted"
45+
46+
- name: Check CMake code format
47+
run: |
48+
EXIT_CODE=0
49+
while read file; do
50+
if ! cmake-format --check "$file"; then
51+
echo "$file is not properly formatted"
52+
echo "Run: cmake-format -i $file"
53+
EXIT_CODE=1
54+
fi
55+
done < <(find . -name "CMakeLists.txt" -o -name "*.cmake")
56+
if [ $EXIT_CODE -eq 1 ]; then
57+
echo "Some CMake files are not properly formatted"
58+
exit 1
59+
fi
60+
echo "All CMake files are properly formatted"

‎.github/workflows/update_doxygen_page.yml‎

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,35 @@ name: Update Doxygen Page
22

33
on:
44
push:
5-
branches:
6-
- master
5+
branches:
6+
- develop
77

88
jobs:
99
doxygen:
1010
runs-on: ubuntu-latest
1111
permissions:
12-
contents: write
12+
contents: read
13+
pages: write
14+
id-token: write
1315

1416
steps:
1517

1618
- name: Install Doxygen
1719
run: |
18-
sudo apt-add-repository universe
1920
sudo apt-get update
2021
sudo apt-get install doxygen
2122
2223
- name: Checkout Original
2324
uses: actions/checkout@v4
24-
with:
25-
path: original
2625

2726
- name: Run Doxygen
28-
working-directory: original
2927
run: doxygen
3028

31-
- name: Checkout Pages
32-
uses: actions/checkout@v4
29+
- name: Upload artifact
30+
uses: actions/upload-pages-artifact@v3
3331
with:
34-
path: pages
32+
path: ./html
3533

36-
- name: Set up pages directory
37-
working-directory: pages
38-
run: |
39-
git checkout --orphan gh-pages
40-
git rm -rf .
41-
cp -r ../original/html/. .
42-
- name: Update Github
43-
working-directory: pages
44-
run: |
45-
git config user.name "GitHub Actions Bot"
46-
git config user.email "<>"
47-
git add .
48-
git commit -m "Update page from action"
49-
git push -f origin gh-pages
34+
- name: Deploy to GitHub Pages
35+
id: deployment
36+
uses: actions/deploy-pages@v4

0 commit comments

Comments
 (0)