SHARPlib 1.0.0rc0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sharplib-1.0.0rc0/.clang-format +226 -0
- sharplib-1.0.0rc0/.github/workflows/cmake.yml +102 -0
- sharplib-1.0.0rc0/.github/workflows/doxygen-gh-pages.yml +18 -0
- sharplib-1.0.0rc0/.github/workflows/python.yml +56 -0
- sharplib-1.0.0rc0/.github/workflows/wheels.yml +102 -0
- sharplib-1.0.0rc0/.gitignore +59 -0
- sharplib-1.0.0rc0/.gitlab-ci.yml +54 -0
- sharplib-1.0.0rc0/.gitmodules +12 -0
- sharplib-1.0.0rc0/CMakeLists.txt +103 -0
- sharplib-1.0.0rc0/Doxyfile +2712 -0
- sharplib-1.0.0rc0/LICENSE +32 -0
- sharplib-1.0.0rc0/PKG-INFO +140 -0
- sharplib-1.0.0rc0/README.md +113 -0
- sharplib-1.0.0rc0/cmake/GitVersion.cmake +97 -0
- sharplib-1.0.0rc0/data/test_snds/20160524_2302_EF3_37.57_-100.13_108_613967.snd +44 -0
- sharplib-1.0.0rc0/data/test_snds/2023-04-19_19_72357.pq +0 -0
- sharplib-1.0.0rc0/data/test_snds/2023-04-20_00_72357.pq +0 -0
- sharplib-1.0.0rc0/data/test_snds/ddc.parquet +0 -0
- sharplib-1.0.0rc0/examples/C++/compile.sh +4 -0
- sharplib-1.0.0rc0/examples/C++/main.cpp +254 -0
- sharplib-1.0.0rc0/include/SHARPlib/algorithms.h +135 -0
- sharplib-1.0.0rc0/include/SHARPlib/constants.h +90 -0
- sharplib-1.0.0rc0/include/SHARPlib/interp.h +192 -0
- sharplib-1.0.0rc0/include/SHARPlib/layer.h +572 -0
- sharplib-1.0.0rc0/include/SHARPlib/params/convective.h +308 -0
- sharplib-1.0.0rc0/include/SHARPlib/params/fire.h +55 -0
- sharplib-1.0.0rc0/include/SHARPlib/params/winter.h +43 -0
- sharplib-1.0.0rc0/include/SHARPlib/parcel.h +518 -0
- sharplib-1.0.0rc0/include/SHARPlib/thermo.h +681 -0
- sharplib-1.0.0rc0/include/SHARPlib/version.h.in +17 -0
- sharplib-1.0.0rc0/include/SHARPlib/winds.h +421 -0
- sharplib-1.0.0rc0/pyproject.toml +77 -0
- sharplib-1.0.0rc0/src/SHARPlib/interp.cpp +207 -0
- sharplib-1.0.0rc0/src/SHARPlib/layer.cpp +179 -0
- sharplib-1.0.0rc0/src/SHARPlib/params/convective.cpp +353 -0
- sharplib-1.0.0rc0/src/SHARPlib/params/fire.cpp +64 -0
- sharplib-1.0.0rc0/src/SHARPlib/params/winter.cpp +34 -0
- sharplib-1.0.0rc0/src/SHARPlib/parcel.cpp +166 -0
- sharplib-1.0.0rc0/src/SHARPlib/thermo.cpp +561 -0
- sharplib-1.0.0rc0/src/SHARPlib/winds.cpp +132 -0
- sharplib-1.0.0rc0/src/nanobind/CMakeLists.txt +32 -0
- sharplib-1.0.0rc0/src/nanobind/_version.py +21 -0
- sharplib-1.0.0rc0/src/nanobind/calc.cpp +26 -0
- sharplib-1.0.0rc0/src/nanobind/constants_bindings.h +50 -0
- sharplib-1.0.0rc0/src/nanobind/interp_bindings.h +114 -0
- sharplib-1.0.0rc0/src/nanobind/layer_bindings.h +368 -0
- sharplib-1.0.0rc0/src/nanobind/params_bindings.h +372 -0
- sharplib-1.0.0rc0/src/nanobind/parcel_bindings.h +516 -0
- sharplib-1.0.0rc0/src/nanobind/sharplib_types.h +17 -0
- sharplib-1.0.0rc0/src/nanobind/thermo_bindings.h +1512 -0
- sharplib-1.0.0rc0/src/nanobind/winds_bindings.h +519 -0
- sharplib-1.0.0rc0/tests/benchmark/CMakeLists.txt +51 -0
- sharplib-1.0.0rc0/tests/benchmark/bench_algorithms.cpp +217 -0
- sharplib-1.0.0rc0/tests/benchmark/bench_interp.cpp +173 -0
- sharplib-1.0.0rc0/tests/benchmark/bench_parcel.cpp +58 -0
- sharplib-1.0.0rc0/tests/python/test_interp.py +86 -0
- sharplib-1.0.0rc0/tests/python/test_layer.py +219 -0
- sharplib-1.0.0rc0/tests/python/test_params.py +308 -0
- sharplib-1.0.0rc0/tests/python/test_parcel.py +202 -0
- sharplib-1.0.0rc0/tests/python/test_thermo.py +454 -0
- sharplib-1.0.0rc0/tests/python/test_winds.py +174 -0
- sharplib-1.0.0rc0/tests/unit/CMakeLists.txt +56 -0
- sharplib-1.0.0rc0/tests/unit/doctest.h +7106 -0
- sharplib-1.0.0rc0/tests/unit/test_algorithms.cpp +98 -0
- sharplib-1.0.0rc0/tests/unit/test_interp.cpp +146 -0
- sharplib-1.0.0rc0/tests/unit/test_layer.cpp +215 -0
- sharplib-1.0.0rc0/tests/unit/test_parcel.cpp +238 -0
- sharplib-1.0.0rc0/tests/unit/test_thermo.cpp +119 -0
- sharplib-1.0.0rc0/tests/unit/test_winds.cpp +180 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
Language: Cpp
|
|
3
|
+
# BasedOnStyle: Google
|
|
4
|
+
AccessModifierOffset: -1
|
|
5
|
+
AlignAfterOpenBracket: Align
|
|
6
|
+
AlignArrayOfStructures: None
|
|
7
|
+
AlignConsecutiveMacros: None
|
|
8
|
+
AlignConsecutiveAssignments: None
|
|
9
|
+
AlignConsecutiveBitFields: None
|
|
10
|
+
AlignConsecutiveDeclarations: None
|
|
11
|
+
AlignEscapedNewlines: Left
|
|
12
|
+
AlignOperands: Align
|
|
13
|
+
AlignTrailingComments: true
|
|
14
|
+
AllowAllArgumentsOnNextLine: true
|
|
15
|
+
AllowAllParametersOfDeclarationOnNextLine: true
|
|
16
|
+
AllowShortEnumsOnASingleLine: true
|
|
17
|
+
AllowShortBlocksOnASingleLine: Never
|
|
18
|
+
AllowShortCaseLabelsOnASingleLine: false
|
|
19
|
+
AllowShortFunctionsOnASingleLine: All
|
|
20
|
+
AllowShortLambdasOnASingleLine: All
|
|
21
|
+
AllowShortIfStatementsOnASingleLine: WithoutElse
|
|
22
|
+
AllowShortLoopsOnASingleLine: true
|
|
23
|
+
AlwaysBreakAfterDefinitionReturnType: None
|
|
24
|
+
AlwaysBreakAfterReturnType: None
|
|
25
|
+
AlwaysBreakBeforeMultilineStrings: true
|
|
26
|
+
AlwaysBreakTemplateDeclarations: Yes
|
|
27
|
+
AttributeMacros:
|
|
28
|
+
- __capability
|
|
29
|
+
BinPackArguments: true
|
|
30
|
+
BinPackParameters: true
|
|
31
|
+
BraceWrapping:
|
|
32
|
+
AfterCaseLabel: false
|
|
33
|
+
AfterClass: false
|
|
34
|
+
AfterControlStatement: Never
|
|
35
|
+
AfterEnum: false
|
|
36
|
+
AfterFunction: false
|
|
37
|
+
AfterNamespace: false
|
|
38
|
+
AfterObjCDeclaration: false
|
|
39
|
+
AfterStruct: false
|
|
40
|
+
AfterUnion: false
|
|
41
|
+
AfterExternBlock: false
|
|
42
|
+
BeforeCatch: false
|
|
43
|
+
BeforeElse: false
|
|
44
|
+
BeforeLambdaBody: false
|
|
45
|
+
BeforeWhile: false
|
|
46
|
+
IndentBraces: false
|
|
47
|
+
SplitEmptyFunction: true
|
|
48
|
+
SplitEmptyRecord: true
|
|
49
|
+
SplitEmptyNamespace: true
|
|
50
|
+
BreakBeforeBinaryOperators: None
|
|
51
|
+
BreakBeforeConceptDeclarations: true
|
|
52
|
+
BreakBeforeBraces: Attach
|
|
53
|
+
BreakBeforeInheritanceComma: false
|
|
54
|
+
BreakInheritanceList: BeforeColon
|
|
55
|
+
BreakBeforeTernaryOperators: true
|
|
56
|
+
BreakConstructorInitializersBeforeComma: false
|
|
57
|
+
BreakConstructorInitializers: BeforeColon
|
|
58
|
+
BreakAfterJavaFieldAnnotations: false
|
|
59
|
+
BreakStringLiterals: true
|
|
60
|
+
ColumnLimit: 80
|
|
61
|
+
CommentPragmas: '^ IWYU pragma:'
|
|
62
|
+
QualifierAlignment: Leave
|
|
63
|
+
CompactNamespaces: false
|
|
64
|
+
ConstructorInitializerIndentWidth: 4
|
|
65
|
+
ContinuationIndentWidth: 4
|
|
66
|
+
Cpp11BracedListStyle: true
|
|
67
|
+
DeriveLineEnding: true
|
|
68
|
+
DerivePointerAlignment: true
|
|
69
|
+
DisableFormat: false
|
|
70
|
+
EmptyLineAfterAccessModifier: Never
|
|
71
|
+
EmptyLineBeforeAccessModifier: LogicalBlock
|
|
72
|
+
ExperimentalAutoDetectBinPacking: false
|
|
73
|
+
PackConstructorInitializers: NextLine
|
|
74
|
+
BasedOnStyle: ''
|
|
75
|
+
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
|
76
|
+
AllowAllConstructorInitializersOnNextLine: true
|
|
77
|
+
FixNamespaceComments: true
|
|
78
|
+
ForEachMacros:
|
|
79
|
+
- foreach
|
|
80
|
+
- Q_FOREACH
|
|
81
|
+
- BOOST_FOREACH
|
|
82
|
+
IfMacros:
|
|
83
|
+
- KJ_IF_MAYBE
|
|
84
|
+
IncludeBlocks: Regroup
|
|
85
|
+
IncludeCategories:
|
|
86
|
+
- Regex: '^<ext/.*\.h>'
|
|
87
|
+
Priority: 2
|
|
88
|
+
SortPriority: 0
|
|
89
|
+
CaseSensitive: false
|
|
90
|
+
- Regex: '^<.*\.h>'
|
|
91
|
+
Priority: 1
|
|
92
|
+
SortPriority: 0
|
|
93
|
+
CaseSensitive: false
|
|
94
|
+
- Regex: '^<.*'
|
|
95
|
+
Priority: 2
|
|
96
|
+
SortPriority: 0
|
|
97
|
+
CaseSensitive: false
|
|
98
|
+
- Regex: '.*'
|
|
99
|
+
Priority: 3
|
|
100
|
+
SortPriority: 0
|
|
101
|
+
CaseSensitive: false
|
|
102
|
+
IncludeIsMainRegex: '([-_](test|unittest))?$'
|
|
103
|
+
IncludeIsMainSourceRegex: ''
|
|
104
|
+
IndentAccessModifiers: false
|
|
105
|
+
IndentCaseLabels: true
|
|
106
|
+
IndentCaseBlocks: false
|
|
107
|
+
IndentGotoLabels: true
|
|
108
|
+
IndentPPDirectives: None
|
|
109
|
+
IndentExternBlock: AfterExternBlock
|
|
110
|
+
IndentRequires: false
|
|
111
|
+
IndentWidth: 4
|
|
112
|
+
IndentWrappedFunctionNames: false
|
|
113
|
+
InsertTrailingCommas: None
|
|
114
|
+
JavaScriptQuotes: Leave
|
|
115
|
+
JavaScriptWrapImports: true
|
|
116
|
+
KeepEmptyLinesAtTheStartOfBlocks: false
|
|
117
|
+
LambdaBodyIndentation: Signature
|
|
118
|
+
MacroBlockBegin: ''
|
|
119
|
+
MacroBlockEnd: ''
|
|
120
|
+
MaxEmptyLinesToKeep: 1
|
|
121
|
+
NamespaceIndentation: None
|
|
122
|
+
ObjCBinPackProtocolList: Never
|
|
123
|
+
ObjCBlockIndentWidth: 2
|
|
124
|
+
ObjCBreakBeforeNestedBlockParam: true
|
|
125
|
+
ObjCSpaceAfterProperty: false
|
|
126
|
+
ObjCSpaceBeforeProtocolList: true
|
|
127
|
+
PenaltyBreakAssignment: 2
|
|
128
|
+
PenaltyBreakBeforeFirstCallParameter: 1
|
|
129
|
+
PenaltyBreakComment: 300
|
|
130
|
+
PenaltyBreakFirstLessLess: 120
|
|
131
|
+
PenaltyBreakOpenParenthesis: 0
|
|
132
|
+
PenaltyBreakString: 1000
|
|
133
|
+
PenaltyBreakTemplateDeclaration: 10
|
|
134
|
+
PenaltyExcessCharacter: 1000000
|
|
135
|
+
PenaltyReturnTypeOnItsOwnLine: 200
|
|
136
|
+
PenaltyIndentedWhitespace: 0
|
|
137
|
+
PointerAlignment: Left
|
|
138
|
+
PPIndentWidth: -1
|
|
139
|
+
RawStringFormats:
|
|
140
|
+
- Language: Cpp
|
|
141
|
+
Delimiters:
|
|
142
|
+
- cc
|
|
143
|
+
- CC
|
|
144
|
+
- cpp
|
|
145
|
+
- Cpp
|
|
146
|
+
- CPP
|
|
147
|
+
- 'c++'
|
|
148
|
+
- 'C++'
|
|
149
|
+
CanonicalDelimiter: ''
|
|
150
|
+
BasedOnStyle: google
|
|
151
|
+
- Language: TextProto
|
|
152
|
+
Delimiters:
|
|
153
|
+
- pb
|
|
154
|
+
- PB
|
|
155
|
+
- proto
|
|
156
|
+
- PROTO
|
|
157
|
+
EnclosingFunctions:
|
|
158
|
+
- EqualsProto
|
|
159
|
+
- EquivToProto
|
|
160
|
+
- PARSE_PARTIAL_TEXT_PROTO
|
|
161
|
+
- PARSE_TEST_PROTO
|
|
162
|
+
- PARSE_TEXT_PROTO
|
|
163
|
+
- ParseTextOrDie
|
|
164
|
+
- ParseTextProtoOrDie
|
|
165
|
+
- ParseTestProto
|
|
166
|
+
- ParsePartialTestProto
|
|
167
|
+
CanonicalDelimiter: pb
|
|
168
|
+
BasedOnStyle: google
|
|
169
|
+
ReferenceAlignment: Pointer
|
|
170
|
+
ReflowComments: true
|
|
171
|
+
RemoveBracesLLVM: false
|
|
172
|
+
SeparateDefinitionBlocks: Leave
|
|
173
|
+
ShortNamespaceLines: 1
|
|
174
|
+
SortIncludes: CaseSensitive
|
|
175
|
+
SortJavaStaticImport: Before
|
|
176
|
+
SortUsingDeclarations: true
|
|
177
|
+
SpaceAfterCStyleCast: false
|
|
178
|
+
SpaceAfterLogicalNot: false
|
|
179
|
+
SpaceAfterTemplateKeyword: true
|
|
180
|
+
SpaceBeforeAssignmentOperators: true
|
|
181
|
+
SpaceBeforeCaseColon: false
|
|
182
|
+
SpaceBeforeCpp11BracedList: false
|
|
183
|
+
SpaceBeforeCtorInitializerColon: true
|
|
184
|
+
SpaceBeforeInheritanceColon: true
|
|
185
|
+
SpaceBeforeParens: ControlStatements
|
|
186
|
+
SpaceBeforeParensOptions:
|
|
187
|
+
AfterControlStatements: true
|
|
188
|
+
AfterForeachMacros: true
|
|
189
|
+
AfterFunctionDefinitionName: false
|
|
190
|
+
AfterFunctionDeclarationName: false
|
|
191
|
+
AfterIfMacros: true
|
|
192
|
+
AfterOverloadedOperator: false
|
|
193
|
+
BeforeNonEmptyParentheses: false
|
|
194
|
+
SpaceAroundPointerQualifiers: Default
|
|
195
|
+
SpaceBeforeRangeBasedForLoopColon: true
|
|
196
|
+
SpaceInEmptyBlock: false
|
|
197
|
+
SpaceInEmptyParentheses: false
|
|
198
|
+
SpacesBeforeTrailingComments: 2
|
|
199
|
+
SpacesInAngles: Never
|
|
200
|
+
SpacesInConditionalStatement: false
|
|
201
|
+
SpacesInContainerLiterals: true
|
|
202
|
+
SpacesInCStyleCastParentheses: false
|
|
203
|
+
SpacesInLineCommentPrefix:
|
|
204
|
+
Minimum: 1
|
|
205
|
+
Maximum: -1
|
|
206
|
+
SpacesInParentheses: false
|
|
207
|
+
SpacesInSquareBrackets: false
|
|
208
|
+
SpaceBeforeSquareBrackets: false
|
|
209
|
+
BitFieldColonSpacing: Both
|
|
210
|
+
Standard: Auto
|
|
211
|
+
StatementAttributeLikeMacros:
|
|
212
|
+
- Q_EMIT
|
|
213
|
+
StatementMacros:
|
|
214
|
+
- Q_UNUSED
|
|
215
|
+
- QT_REQUIRE_VERSION
|
|
216
|
+
TabWidth: 8
|
|
217
|
+
UseCRLF: false
|
|
218
|
+
UseTab: Never
|
|
219
|
+
WhitespaceSensitiveMacros:
|
|
220
|
+
- STRINGIZE
|
|
221
|
+
- PP_STRINGIZE
|
|
222
|
+
- BOOST_PP_STRINGIZE
|
|
223
|
+
- NS_SWIFT_NAME
|
|
224
|
+
- CF_SWIFT_NAME
|
|
225
|
+
...
|
|
226
|
+
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: C++ CI (Linux, MacOS, Windows)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ "main", "develop" ]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [ "main", "develop" ]
|
|
8
|
+
|
|
9
|
+
env:
|
|
10
|
+
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
|
11
|
+
BUILD_TYPE: Release
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
build:
|
|
15
|
+
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
|
|
16
|
+
# You can convert this to a matrix build if you need cross-platform coverage.
|
|
17
|
+
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
|
18
|
+
# runs-on: ubuntu-latest
|
|
19
|
+
runs-on: ${{ matrix.os }}
|
|
20
|
+
|
|
21
|
+
strategy:
|
|
22
|
+
# Ensures all matrix combinations runs if one fails
|
|
23
|
+
fail-fast: false
|
|
24
|
+
|
|
25
|
+
# Set up our build-matrix
|
|
26
|
+
# 1) Linux GCC
|
|
27
|
+
# 2) Linux Clang
|
|
28
|
+
# 3) MaxOS Clang
|
|
29
|
+
# 4) Windows MSVC
|
|
30
|
+
matrix:
|
|
31
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
32
|
+
build_type: [Release]
|
|
33
|
+
cpp_compiler: [g++, clang++, cl]
|
|
34
|
+
include:
|
|
35
|
+
- os: ubuntu-latest
|
|
36
|
+
cpp_compiler: g++
|
|
37
|
+
- os: ubuntu-latest
|
|
38
|
+
cpp_compiler: clang++
|
|
39
|
+
- os: macos-latest
|
|
40
|
+
cpp_compiler: g++
|
|
41
|
+
- os: macos-latest
|
|
42
|
+
cpp_compiler: clang++
|
|
43
|
+
- os: windows-latest
|
|
44
|
+
cpp_compiler: cl
|
|
45
|
+
exclude:
|
|
46
|
+
- os: ubuntu-latest
|
|
47
|
+
cpp_compiler: cl
|
|
48
|
+
- os: macos-latest
|
|
49
|
+
cpp_compiler: cl
|
|
50
|
+
- os: windows-latest
|
|
51
|
+
cpp_compiler: g++
|
|
52
|
+
- os: windows-latest
|
|
53
|
+
cpp_compiler: clang++
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
steps:
|
|
58
|
+
- name: Set reusable strings
|
|
59
|
+
id: strings
|
|
60
|
+
shell: bash
|
|
61
|
+
run: |
|
|
62
|
+
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
|
|
63
|
+
|
|
64
|
+
- name: Checkout
|
|
65
|
+
uses: actions/checkout@v4
|
|
66
|
+
with:
|
|
67
|
+
submodules: 'true'
|
|
68
|
+
fetch-tags: 'true'
|
|
69
|
+
fetch-depth: 0
|
|
70
|
+
|
|
71
|
+
- name: Change submodule URLs to HTTPS
|
|
72
|
+
run: |
|
|
73
|
+
git submodule foreach '
|
|
74
|
+
git config submodule.$name.url https://github.com/$urlPath
|
|
75
|
+
'
|
|
76
|
+
- name: Submodules and Dependencies
|
|
77
|
+
run: |
|
|
78
|
+
git config --global --add safe.directory ${{ github.workspace }}
|
|
79
|
+
git submodule update --init --recursive
|
|
80
|
+
|
|
81
|
+
- name: Configure CMake
|
|
82
|
+
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
|
|
83
|
+
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
|
|
84
|
+
run: >
|
|
85
|
+
cmake -B ${{ steps.strings.outputs.build-output-dir }}
|
|
86
|
+
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
|
|
87
|
+
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
88
|
+
-S ${{ github.workspace }}
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
- name: Build
|
|
92
|
+
# Build your program with the given configuration
|
|
93
|
+
run: |
|
|
94
|
+
cmake --build ${{ steps.strings.outputs.build-output-dir }}
|
|
95
|
+
cmake --build ${{ steps.strings.outputs.build-output-dir }} --config ${{ matrix.build_type }} --target SHARPlib_tests
|
|
96
|
+
|
|
97
|
+
- name: Test
|
|
98
|
+
working-directory: ${{ steps.strings.outputs.build-output-dir }}
|
|
99
|
+
# Execute tests defined by the CMake configuration.
|
|
100
|
+
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
|
|
101
|
+
run: ctest -C ${{ matrix.build_type }}
|
|
102
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Build Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
steps:
|
|
14
|
+
- uses: DenverCoder1/doxygen-github-pages-action@v2.0.0
|
|
15
|
+
with:
|
|
16
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
17
|
+
folder: docs/html
|
|
18
|
+
config_file: Doxyfile
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Python CI (Linux, MacOS, Windows)
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: ["main", "develop"]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["main", "develop"]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ${{ matrix.os }}
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
16
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
17
|
+
steps:
|
|
18
|
+
- name: Set windows environment variables
|
|
19
|
+
if: startsWith(matrix.os, 'windows')
|
|
20
|
+
shell: pwsh
|
|
21
|
+
run: |
|
|
22
|
+
echo "NUGET_PACKAGES=D:\nuget\packages" >> $ENV:GITHUB_ENV
|
|
23
|
+
echo "DOTNET_ROOT=D:\tools\dotnet" >> $ENV:GITHUB_ENV
|
|
24
|
+
echo "DOTNET_INSTALL_DIR=D:\tools\dotnet" >> $ENV:GITHUB_ENV
|
|
25
|
+
echo "LocalAppData=D:\a\_LocalAppData" >> $ENV:GITHUB_ENV
|
|
26
|
+
echo "TEMP=D:\a\_temp" >> $ENV:GITHUB_ENV
|
|
27
|
+
echo "TMP=D:\a\_temp" >> $ENV:GITHUB_ENV
|
|
28
|
+
|
|
29
|
+
- name: Checkout
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
with:
|
|
32
|
+
submodules: 'true'
|
|
33
|
+
fetch-tags: 'true'
|
|
34
|
+
fetch-depth: 0
|
|
35
|
+
|
|
36
|
+
- name: Change submodule URLs to HTTPS
|
|
37
|
+
run: |
|
|
38
|
+
git submodule foreach '
|
|
39
|
+
git config submodule.$name.url https://github.com/$urlPath
|
|
40
|
+
'
|
|
41
|
+
- name: Submodules and Dependencies
|
|
42
|
+
run: |
|
|
43
|
+
git config --global --add safe.directory ${{ github.workspace }}
|
|
44
|
+
git submodule update --init --recursive
|
|
45
|
+
|
|
46
|
+
- uses: actions/setup-python@v5
|
|
47
|
+
with:
|
|
48
|
+
python-version: ${{ matrix.python-version }}
|
|
49
|
+
|
|
50
|
+
- name: Build and install
|
|
51
|
+
run: |
|
|
52
|
+
python -m pip install pytest pandas fastparquet
|
|
53
|
+
pip install --verbose .
|
|
54
|
+
|
|
55
|
+
- name: Test
|
|
56
|
+
run: python -m pytest
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
name: Build Wheels
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
pull_request:
|
|
6
|
+
release:
|
|
7
|
+
types:
|
|
8
|
+
- published
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build_wheels:
|
|
12
|
+
name: Build wheels for ${{ matrix.os }}
|
|
13
|
+
runs-on: ${{ matrix.runs-on }}
|
|
14
|
+
strategy:
|
|
15
|
+
matrix:
|
|
16
|
+
os: [ linux-intel, linux-arm, windows, macOS-intel, macOS-arm ]
|
|
17
|
+
include:
|
|
18
|
+
- archs: auto
|
|
19
|
+
platform: auto
|
|
20
|
+
- os: linux-intel
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
- os: linux-arm
|
|
23
|
+
runs-on: ubuntu-24.04-arm
|
|
24
|
+
- os: windows
|
|
25
|
+
runs-on: windows-latest
|
|
26
|
+
- os: macos-intel
|
|
27
|
+
# macos-13 was the last x86_64 runner
|
|
28
|
+
runs-on: macos-13
|
|
29
|
+
- os: macos-arm
|
|
30
|
+
# macos-14+ (including latest) are ARM64 runners
|
|
31
|
+
runs-on: macos-latest
|
|
32
|
+
archs: auto,universal2
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
with:
|
|
37
|
+
submodules: 'true'
|
|
38
|
+
fetch-tags: 'true'
|
|
39
|
+
fetch-depth: 0
|
|
40
|
+
|
|
41
|
+
- name: Change submodule URLs to HTTPS
|
|
42
|
+
run: |
|
|
43
|
+
git submodule foreach '
|
|
44
|
+
git config submodule.$name.url https://github.com/$urlPath
|
|
45
|
+
'
|
|
46
|
+
- name: Submodules and Dependencies
|
|
47
|
+
run: |
|
|
48
|
+
git config --global --add safe.directory ${{ github.workspace }}
|
|
49
|
+
git submodule update --init --recursive
|
|
50
|
+
|
|
51
|
+
- name: Build wheels
|
|
52
|
+
uses: pypa/cibuildwheel@v2.23.3
|
|
53
|
+
env:
|
|
54
|
+
CIBW_PLATFORM: ${{ matrix.platform }}
|
|
55
|
+
CIBW_ARCHS: ${{ matrix.archs }}
|
|
56
|
+
# Can also be configured directly, using `with:`
|
|
57
|
+
# with:
|
|
58
|
+
# package-dir: .
|
|
59
|
+
# output-dir: wheelhouse
|
|
60
|
+
# config-file: "{package}/pyproject.toml"
|
|
61
|
+
|
|
62
|
+
- uses: actions/upload-artifact@v4
|
|
63
|
+
with:
|
|
64
|
+
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
65
|
+
path: ./wheelhouse/*.whl
|
|
66
|
+
|
|
67
|
+
build_sdist:
|
|
68
|
+
name: Build source distribution
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v4
|
|
72
|
+
|
|
73
|
+
- name: Build sdist
|
|
74
|
+
run: pipx run build --sdist
|
|
75
|
+
|
|
76
|
+
- uses: actions/upload-artifact@v4
|
|
77
|
+
with:
|
|
78
|
+
name: cibw-sdist
|
|
79
|
+
path: dist/*.tar.gz
|
|
80
|
+
|
|
81
|
+
upload_pypi:
|
|
82
|
+
needs: [build_wheels, build_sdist]
|
|
83
|
+
runs-on: ubuntu-latest
|
|
84
|
+
environment:
|
|
85
|
+
name: pypi
|
|
86
|
+
url: https://test.pypi.org/p/SHARPlib
|
|
87
|
+
permissions:
|
|
88
|
+
id-token: write
|
|
89
|
+
if: github.event_name == 'release' && github.event.action == 'published'
|
|
90
|
+
# or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this)
|
|
91
|
+
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
92
|
+
steps:
|
|
93
|
+
- uses: actions/download-artifact@v4
|
|
94
|
+
with:
|
|
95
|
+
# unpacks all CIBW artifacts into dist/
|
|
96
|
+
pattern: cibw-*
|
|
97
|
+
path: dist
|
|
98
|
+
merge-multiple: true
|
|
99
|
+
|
|
100
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
101
|
+
#with:
|
|
102
|
+
#repository-url: https://test.pypi.org/legacy/
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Prerequisites
|
|
2
|
+
*.d
|
|
3
|
+
|
|
4
|
+
# Compiled Object files
|
|
5
|
+
*.slo
|
|
6
|
+
*.lo
|
|
7
|
+
*.o
|
|
8
|
+
*.obj
|
|
9
|
+
|
|
10
|
+
# Precompiled Headers
|
|
11
|
+
*.gch
|
|
12
|
+
*.pch
|
|
13
|
+
|
|
14
|
+
# Compiled Dynamic libraries
|
|
15
|
+
*.so
|
|
16
|
+
*.dylib
|
|
17
|
+
*.dll
|
|
18
|
+
|
|
19
|
+
# Fortran module files
|
|
20
|
+
*.mod
|
|
21
|
+
*.smod
|
|
22
|
+
|
|
23
|
+
# Compiled Static libraries
|
|
24
|
+
*.lai
|
|
25
|
+
*.la
|
|
26
|
+
*.a
|
|
27
|
+
*.lib
|
|
28
|
+
|
|
29
|
+
## CMake stuff
|
|
30
|
+
CMakeCahce.txt
|
|
31
|
+
install_manifest.txt
|
|
32
|
+
Makefile
|
|
33
|
+
CMakeLists.txt.user
|
|
34
|
+
CMakeCache.txt
|
|
35
|
+
CMakeFiles
|
|
36
|
+
CMakeScripts
|
|
37
|
+
Testing
|
|
38
|
+
Makefile
|
|
39
|
+
cmake_install.cmake
|
|
40
|
+
install_manifest.txt
|
|
41
|
+
compile_commands.json
|
|
42
|
+
CTestTestfile.cmake
|
|
43
|
+
_deps
|
|
44
|
+
|
|
45
|
+
# Executables
|
|
46
|
+
*.exe
|
|
47
|
+
*.out
|
|
48
|
+
*.app
|
|
49
|
+
|
|
50
|
+
# Ignore the build directory
|
|
51
|
+
build
|
|
52
|
+
.cache
|
|
53
|
+
|
|
54
|
+
# Ignore built docs
|
|
55
|
+
docs/html
|
|
56
|
+
docs/latex
|
|
57
|
+
|
|
58
|
+
# Python
|
|
59
|
+
__pycache__
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Use the official RHEL8 Universal Baseline Image (UBI)
|
|
2
|
+
# to build and test SHARPlib using CMake.
|
|
3
|
+
|
|
4
|
+
variables:
|
|
5
|
+
BUILD_DIR: "buid_${COMPILER}"
|
|
6
|
+
CMAKE_BUILD_OPTIONS: "-j 4 --target SHARPlib_tests"
|
|
7
|
+
|
|
8
|
+
stages:
|
|
9
|
+
- security
|
|
10
|
+
- build
|
|
11
|
+
- test
|
|
12
|
+
|
|
13
|
+
sast:
|
|
14
|
+
stage: security
|
|
15
|
+
variables:
|
|
16
|
+
SAST_EXCLUDED_PATHS: "build, docs, tests, examples"
|
|
17
|
+
|
|
18
|
+
include:
|
|
19
|
+
- template: Security/SAST.gitlab-ci.yml
|
|
20
|
+
|
|
21
|
+
# Set up a Linux build matrix that includes
|
|
22
|
+
# information on the image, setup/install
|
|
23
|
+
# dependencies, etc
|
|
24
|
+
.parallel-linux:
|
|
25
|
+
image: redhat/ubi8
|
|
26
|
+
before_script:
|
|
27
|
+
- dnf update -y && dnf install -y cmake make gcc gcc-c++ clang git
|
|
28
|
+
- git submodule update --init --recursive
|
|
29
|
+
parallel:
|
|
30
|
+
matrix:
|
|
31
|
+
- COMPILER: [g++, clang++]
|
|
32
|
+
|
|
33
|
+
## The CMake build step
|
|
34
|
+
build-linux:
|
|
35
|
+
extends: .parallel-linux
|
|
36
|
+
stage: build
|
|
37
|
+
script:
|
|
38
|
+
- echo "BUILDING $COMPILER"
|
|
39
|
+
- cmake -B ${BUILD_DIR} . -DCMAKE_CXX_COMPILER=$COMPILER
|
|
40
|
+
- cmake --build ${BUILD_DIR} $CMAKE_BUILD_OPTIONS
|
|
41
|
+
artifacts:
|
|
42
|
+
expire_in: 5 mins
|
|
43
|
+
paths:
|
|
44
|
+
- ${BUILD_DIR}
|
|
45
|
+
|
|
46
|
+
# run tests using the binary built before
|
|
47
|
+
test-linux:
|
|
48
|
+
extends: .parallel-linux
|
|
49
|
+
stage: test
|
|
50
|
+
script:
|
|
51
|
+
- echo "TESTING $COMPILER"
|
|
52
|
+
- cd ${BUILD_DIR}
|
|
53
|
+
- ctest --verbose
|
|
54
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
[submodule "docs/doxygen-awesome-css"]
|
|
2
|
+
path = docs/doxygen-awesome-css
|
|
3
|
+
url = https://github.com/jothepro/doxygen-awesome-css.git
|
|
4
|
+
[submodule "external/fmt"]
|
|
5
|
+
path = external/fmt
|
|
6
|
+
url = https://github.com/fmtlib/fmt.git
|
|
7
|
+
[submodule "external/benchmark"]
|
|
8
|
+
path = external/benchmark
|
|
9
|
+
url = https://github.com/google/benchmark.git
|
|
10
|
+
[submodule "external/nanobind"]
|
|
11
|
+
path = external/nanobind
|
|
12
|
+
url = https://github.com/wjakob/nanobind
|