Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0 Release #13

Merged
merged 456 commits into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
456 commits
Select commit Hold shift + click to select a range
e0e0a01
FIx missing namespace qualifier
aromanielloNTIA Oct 31, 2024
4e9c01c
Make CONTIRBUTING.md pass Python linter
aromanielloNTIA Oct 31, 2024
e761301
add missing cmath include
aromanielloNTIA Oct 31, 2024
00cef96
Add c-typed functions for wrapper error handling
aromanielloNTIA Oct 31, 2024
7392ca4
template wrapper error handling functions
aromanielloNTIA Oct 31, 2024
e321fdc
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
c2b81c9
Delete template file
aromanielloNTIA Oct 31, 2024
e59813c
Update formatting
aromanielloNTIA Oct 31, 2024
9c86ff4
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
103b771
Fix strcpy on POSIX
aromanielloNTIA Oct 31, 2024
26ab33b
Add const to string to convert
aromanielloNTIA Oct 31, 2024
e39e002
Improve safety of return status function
aromanielloNTIA Oct 31, 2024
e5706f1
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
f74a787
Update README.md
aromanielloNTIA Oct 31, 2024
9359454
Set library version to 2-digit format
aromanielloNTIA Oct 31, 2024
d3575b3
Use 2-digit library version
aromanielloNTIA Oct 31, 2024
d28f08e
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
2338b79
Include version in DLL name
aromanielloNTIA Oct 31, 2024
10ae752
include version number in DLL name
aromanielloNTIA Oct 31, 2024
3f1bc5a
fix output_name
aromanielloNTIA Oct 31, 2024
03aa651
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
2edece4
add version to driver output name
aromanielloNTIA Oct 31, 2024
31120fb
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
be63f6a
use only major version for SOVERSION
aromanielloNTIA Oct 31, 2024
2a8a72a
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
aa52c13
make filenames consistent across platforms
aromanielloNTIA Oct 31, 2024
69ddaa6
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
b3553fc
make output file names consistent across platforms
aromanielloNTIA Oct 31, 2024
e3480db
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
36884a0
correctly export functions across platforms
aromanielloNTIA Oct 31, 2024
8332ff5
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
6166224
Update CONTRIBUTING.md
aromanielloNTIA Nov 1, 2024
9973e14
fix migration mistakes
aromanielloNTIA Nov 1, 2024
1c31ce3
formatting
aromanielloNTIA Nov 1, 2024
6e2f823
Enable compiler warnings with cmake
aromanielloNTIA Nov 1, 2024
67d6493
Change template namespace
aromanielloNTIA Nov 1, 2024
245b8dd
Update docsOnly preset
aromanielloNTIA Nov 1, 2024
f696e90
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 1, 2024
3b19af1
clang-format all files
aromanielloNTIA Nov 1, 2024
54be9dc
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 1, 2024
f732c73
Fix table formatting
aromanielloNTIA Nov 1, 2024
a2acca1
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 1, 2024
a9a28a1
Let developers handle compiler warning settings
aromanielloNTIA Nov 1, 2024
7304de4
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 1, 2024
6c6a25e
driver utils updates
aromanielloNTIA Nov 4, 2024
4854d4a
fix incorrect documentation
aromanielloNTIA Nov 4, 2024
dc6af9f
Add missing function definitions
aromanielloNTIA Nov 4, 2024
c464dbd
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 4, 2024
5cc0edc
Consistent order for GTest comparisons
aromanielloNTIA Nov 4, 2024
e926f94
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 4, 2024
7dd864b
more informative error message in driver
aromanielloNTIA Nov 5, 2024
2b3eb08
cleanup driver printing code
aromanielloNTIA Nov 5, 2024
57a320f
organize driver printing code
aromanielloNTIA Nov 5, 2024
0a0248e
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 5, 2024
496fba6
.gitignore binaries in wrappers
aromanielloNTIA Nov 5, 2024
df2c0ef
Organize includes
aromanielloNTIA Nov 5, 2024
0ac7963
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 5, 2024
fd28e1a
Add missing include
aromanielloNTIA Nov 5, 2024
cc867b1
ignore derived files from wrappers
aromanielloNTIA Nov 8, 2024
a11298e
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 8, 2024
649203b
fix template code so tests all pass
aromanielloNTIA Nov 8, 2024
9d98550
Run actions on template
aromanielloNTIA Nov 8, 2024
2f55d04
remove template condition
aromanielloNTIA Nov 8, 2024
07484c3
build docs on push to main or dev
aromanielloNTIA Nov 8, 2024
d4146b5
cleanup includes
aromanielloNTIA Nov 8, 2024
eb05d93
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 8, 2024
3624162
Update badges, add links to other template repos
aromanielloNTIA Nov 12, 2024
289ad28
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 12, 2024
dba1216
update DOI and citation metadata
aromanielloNTIA Nov 12, 2024
f4f7ba0
Add template citation file
aromanielloNTIA Nov 12, 2024
fb9f130
Add template zenodo file
aromanielloNTIA Nov 12, 2024
3f60ff9
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 12, 2024
7829fae
Put platform name in driver filename
aromanielloNTIA Nov 12, 2024
587fc5a
Update release action for cross platform driver
aromanielloNTIA Nov 12, 2024
b283c36
Don't build docs in ctest action
aromanielloNTIA Nov 12, 2024
6505dca
Don't clone unnecessary submodule
aromanielloNTIA Nov 12, 2024
26320fe
Fix windows step condition
aromanielloNTIA Nov 12, 2024
352cf6f
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 12, 2024
0284c65
Rename GetDrvrReturnStatus to GetDrvrReturnStatusMsg
aromanielloNTIA Nov 13, 2024
f44a605
Rename GetDrvrReturnStatus to GetDrvrReturnStatusMsg
aromanielloNTIA Nov 13, 2024
19b2e9d
unique variable name in class methods
aromanielloNTIA Nov 13, 2024
c49bcb3
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 13, 2024
97b6800
Add public release approval form template
aromanielloNTIA Nov 14, 2024
7825039
fix file name
aromanielloNTIA Nov 14, 2024
231fd2c
Support multiarch on macos runners
aromanielloNTIA Nov 19, 2024
34b4f99
deduplicate macos tests
aromanielloNTIA Nov 19, 2024
c4cd872
simplify test matrix declaration
aromanielloNTIA Nov 19, 2024
ac1057b
add test concurrency override
aromanielloNTIA Nov 19, 2024
fbeb5fb
fix cmakeversion handling in test matrix
aromanielloNTIA Nov 19, 2024
5677607
switch from include to exclude in strategy matrix
aromanielloNTIA Nov 19, 2024
6246571
Add windows-2019 x64 runner for 32-bit Windows builds
aromanielloNTIA Nov 20, 2024
6af645d
Delete .zenodo.json
aromanielloNTIA Nov 20, 2024
7968997
Update Citation template
aromanielloNTIA Nov 20, 2024
d4cde67
Remove legacy DOI badge from readme
aromanielloNTIA Nov 20, 2024
da7c96d
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 20, 2024
3225da1
Update GitHubRepoPublicReleaseApproval.md
aromanielloNTIA Nov 20, 2024
90464a7
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 20, 2024
e64b0b8
Create cff-validator.yml
aromanielloNTIA Nov 21, 2024
acd2846
Remove name-particle from template citation file
aromanielloNTIA Nov 21, 2024
af1c2d9
Make template citation valid
aromanielloNTIA Nov 21, 2024
1965c83
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 21, 2024
366dc88
Compiler and output configuration at top-level
aromanielloNTIA Nov 21, 2024
af447ee
Fix file filter on CFF validator
aromanielloNTIA Nov 21, 2024
e95f70e
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 21, 2024
d070297
Remove wrappers-as-submodules structure
aromanielloNTIA Nov 21, 2024
702cdfd
Link to wrapper repositories in readme
aromanielloNTIA Nov 21, 2024
9dd1c84
More wrapper submodule cleanup
aromanielloNTIA Nov 21, 2024
5a8d982
Use a single interface header file
aromanielloNTIA Nov 21, 2024
1d9c60b
Renamed EXPORTED to PROPLIB_API
aromanielloNTIA Nov 21, 2024
f0ebdaf
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 21, 2024
57fdc5b
Adjust for single library header
aromanielloNTIA Nov 21, 2024
8d740b2
Remove "U.S. reference implementation"
aromanielloNTIA Nov 21, 2024
0009197
Remove "U.S. Reference implementation"
aromanielloNTIA Nov 21, 2024
954ea6e
Fix CFF validator path filters
aromanielloNTIA Nov 22, 2024
03b9c0c
add link to driver readme
aromanielloNTIA Nov 26, 2024
45cdfcf
Remove old test data directory structure
aromanielloNTIA Nov 26, 2024
f12f788
Merge branch 'main' into improvements-from-lfmf
aromanielloNTIA Nov 26, 2024
04ef5ce
Use newer add_compile_definitions
aromanielloNTIA Nov 26, 2024
85e79f4
Support (non-default) static library compilation
aromanielloNTIA Nov 26, 2024
15b3d95
Use newer add_compile_definitions
aromanielloNTIA Nov 26, 2024
237bd58
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 26, 2024
cf6906c
remove leftover template comment
aromanielloNTIA Nov 26, 2024
1e609df
Fix test data directory name
aromanielloNTIA Nov 26, 2024
4ea1395
fix typo
aromanielloNTIA Nov 26, 2024
a621d1e
Add macOS multi-architecture logic
aromanielloNTIA Nov 26, 2024
e9af93e
Merge branch 'main' into support-macos-multiarch-in-CI
aromanielloNTIA Nov 26, 2024
1b6d50f
Add windows x86 runner
aromanielloNTIA Nov 26, 2024
3c27db4
fix matrix architecture exclude
aromanielloNTIA Nov 26, 2024
6ef1124
try OS type name in action matrix names
aromanielloNTIA Nov 26, 2024
193b046
Revert "try OS type name in action matrix names"
aromanielloNTIA Nov 26, 2024
39cd0a1
Add compiler flags
aromanielloNTIA Nov 26, 2024
bcb09a2
Fix incorrect field used
aromanielloNTIA Nov 26, 2024
f2104af
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Nov 26, 2024
f1b65b9
Update release approval form for new data structure
aromanielloNTIA Dec 2, 2024
2e0a554
Link test data template in README
aromanielloNTIA Dec 2, 2024
8bb2fc2
Add DOI badge to README template
aromanielloNTIA Dec 2, 2024
8596ae5
Add template zenodo file
aromanielloNTIA Dec 2, 2024
27aa7f2
Fix resource_type in zenodo file
aromanielloNTIA Dec 2, 2024
2981120
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Dec 2, 2024
8379ece
Consistent markdown formatting
aromanielloNTIA Dec 2, 2024
682d960
Add public release approval form
aromanielloNTIA Dec 2, 2024
9077b35
Remove test data
aromanielloNTIA Dec 2, 2024
16b3b13
Add test data submodule
aromanielloNTIA Dec 3, 2024
191fe16
include library version in return status messages
aromanielloNTIA Dec 3, 2024
c3502e1
update comment
aromanielloNTIA Dec 3, 2024
945ba08
Rename test data submodule
aromanielloNTIA Dec 3, 2024
df52dea
Add documentation for test utils
aromanielloNTIA Dec 3, 2024
55357a8
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Dec 3, 2024
dabd728
Add missing return value, add error message
aromanielloNTIA Dec 3, 2024
5ec53a7
Add version to driver error messages
aromanielloNTIA Dec 3, 2024
d75bb49
Remove redundant cxx_std_11
aromanielloNTIA Dec 3, 2024
188dd53
Add missing braces
aromanielloNTIA Dec 3, 2024
d8d916e
Add functions to test header
aromanielloNTIA Dec 3, 2024
a78fb06
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Dec 3, 2024
92f607b
Remove unused macro and include
aromanielloNTIA Dec 3, 2024
527c5ab
Consistent use of std::size_t
aromanielloNTIA Dec 3, 2024
e0a4ccc
Consistent use of std::size_t
aromanielloNTIA Dec 3, 2024
a4c0a10
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Dec 3, 2024
5b2a79a
Update NTIA logo
aromanielloNTIA Dec 4, 2024
06415eb
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Dec 4, 2024
6b7c2c6
Avoid googletest include order errors
aromanielloNTIA Dec 5, 2024
90e0fb5
Use target-compile-features
aromanielloNTIA Dec 5, 2024
a57f6d6
Update comment
aromanielloNTIA Dec 5, 2024
a1b9492
Update p2108-test-data to v1
aromanielloNTIA Dec 11, 2024
3d3188d
Add always-passing test to verify discovery
aromanielloNTIA Dec 11, 2024
be5c654
Reintroduce 32-bit configuration, improve CMake status messages
aromanielloNTIA Dec 11, 2024
b441333
fix preset names, add 32-bit step to CI test
aromanielloNTIA Dec 11, 2024
290d2bc
Correct minimum required CMake version
aromanielloNTIA Dec 11, 2024
2450e29
compiler-dependent handling of 32-bit compiler options
aromanielloNTIA Dec 12, 2024
776cd3c
add comment
aromanielloNTIA Dec 12, 2024
8e69970
Set C++11 requirements, improve compiler option generators
aromanielloNTIA Dec 12, 2024
97a28be
update comments, remove dead code
aromanielloNTIA Dec 12, 2024
4fb9e6b
Add CTest presets for CI testing
aromanielloNTIA Dec 12, 2024
9fdce23
avoid CMAKE_GENERATOR_PLATFORM in 32-bit presets
aromanielloNTIA Dec 12, 2024
a212ad2
Manually format datetime to avoid compiler warning
aromanielloNTIA Dec 12, 2024
b6baf82
Fix missing variable indicators
aromanielloNTIA Dec 12, 2024
7aabe1d
Attempt allowing universal macOS builds with Ninja generator
aromanielloNTIA Dec 12, 2024
2f57f74
update release/debug handling, set generator platform on windows
aromanielloNTIA Dec 12, 2024
941970f
Skip expectation of proplib_config_type for docsOnly
aromanielloNTIA Dec 12, 2024
50d174e
Fix 32-bit builds from 64-bit windows
aromanielloNTIA Dec 12, 2024
25f603e
Minimize release action matrix; add 32-bit config
aromanielloNTIA Dec 12, 2024
24ae82d
Add macos-13 intel runner to matrix
aromanielloNTIA Dec 12, 2024
328669d
Adjust name for action run, add workflow_dispatch
aromanielloNTIA Dec 12, 2024
a3b81b1
Attempt static linking for g++ compiling
aromanielloNTIA Dec 12, 2024
1f532fb
editorial review updates
aromanielloNTIA Dec 12, 2024
b2c0cdf
Rename targets to group alphabetically
aromanielloNTIA Dec 12, 2024
b4cd860
Correct use of environment variables,
aromanielloNTIA Dec 12, 2024
dd6e305
ignore CMakeUserPresets.json
aromanielloNTIA Dec 12, 2024
d040cf7
Ignore CMakeUserPresets.json
aromanielloNTIA Dec 12, 2024
f832f11
debug release action
aromanielloNTIA Dec 12, 2024
ae933ef
fix condition in debug
aromanielloNTIA Dec 12, 2024
4b59f17
fix typo, add info to status message
aromanielloNTIA Dec 12, 2024
07798e4
Fix CITATION.cff validator for Ubuntu 24.04 runners
aromanielloNTIA Dec 12, 2024
645b226
Remove command-line driver README, link to wiki
aromanielloNTIA Dec 18, 2024
7636eaa
Delete app/data folder
aromanielloNTIA Dec 18, 2024
219c717
Remove keyword causing misleading zenodo content
aromanielloNTIA Dec 18, 2024
127fb20
attempt fixing universal macos build
aromanielloNTIA Dec 18, 2024
1ebc864
Remove macOS debugging step
aromanielloNTIA Dec 18, 2024
28b9098
Consistent naming of binaries
aromanielloNTIA Dec 18, 2024
bed1684
cleanup output artifact names
aromanielloNTIA Dec 18, 2024
8bace54
Add C++ header upload to release action
aromanielloNTIA Dec 18, 2024
0f82352
combine platforms into one step
aromanielloNTIA Dec 18, 2024
e9a4259
valid artifact names
aromanielloNTIA Dec 18, 2024
2343fb3
debug multiplatform artifact creation
aromanielloNTIA Dec 18, 2024
72f04b2
Fixed macos and linux file names
aromanielloNTIA Dec 18, 2024
371033f
Correct environment variable usage, update status message
aromanielloNTIA Jan 2, 2025
1e0cdde
Clarify why status may be empty
aromanielloNTIA Jan 2, 2025
32e83bf
Add architecture arg for 32 bit build in release action
aromanielloNTIA Jan 2, 2025
03cc81b
Warn if preset architecture conflicts with -A argument
aromanielloNTIA Jan 2, 2025
53912b8
Change MSVC calling convention to __cdecl
aromanielloNTIA Jan 2, 2025
7473832
Fix filename for linux driver in release action
aromanielloNTIA Jan 2, 2025
4485882
Empty branch for review
aromanielloNTIA Jan 2, 2025
9c65122
Revert "Empty branch for review"
aromanielloNTIA Jan 2, 2025
2691484
Avoid duplicate workflow runs when creating a PR from dev to main
aromanielloNTIA Jan 2, 2025
b500c0b
Merge remote-tracking branch 'proplib-template/dev' into cross-platfo…
aromanielloNTIA Jan 3, 2025
9208c46
Add test data submodule init to workflow
aromanielloNTIA Jan 3, 2025
f94fdfd
Avoid warning about unhandled case
aromanielloNTIA Jan 3, 2025
40b8b4b
Avoid compile warning for unhandled case
aromanielloNTIA Jan 3, 2025
2fe1606
test run create release artifacts action
aromanielloNTIA Jan 3, 2025
3f8cdb9
Populate zenodo template
aromanielloNTIA Jan 3, 2025
0e538ba
Update link to wiki page
aromanielloNTIA Jan 3, 2025
0a720af
Populate template header file name
aromanielloNTIA Jan 3, 2025
bd1b8b7
Revert workflow trigger used for testing
aromanielloNTIA Jan 3, 2025
023b7df
Merge pull request #5 from NTIA/dev
aromanielloNTIA Jan 10, 2025
4c0131a
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Jan 10, 2025
5518ad9
Remove example IO files for driver
aromanielloNTIA Jan 10, 2025
027e603
Add license and disclaimer text
aromanielloNTIA Jan 10, 2025
21c1f1f
Remove dead code
aromanielloNTIA Jan 10, 2025
a691186
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Jan 10, 2025
39ee7de
Update project name in release form
aromanielloNTIA Jan 13, 2025
3356105
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Jan 13, 2025
0aa45b9
Correct PL name
aromanielloNTIA Jan 13, 2025
348f964
Merge pull request #9 from NTIA/inherit-from-template
aromanielloNTIA Jan 13, 2025
f350b14
Fix CMake preset name in example command
aromanielloNTIA Jan 13, 2025
5281c08
Merge remote-tracking branch 'proplib-template/main' into dev
aromanielloNTIA Jan 13, 2025
25dd0a5
Merge pull request #14 from NTIA/fix-incorrect-preset-name
aromanielloNTIA Jan 13, 2025
2b42143
Update test data expected location in example
aromanielloNTIA Jan 13, 2025
62c2eaa
Merge remote-tracking branch 'proplib-template/main' into dev
aromanielloNTIA Jan 13, 2025
969a365
Clone extern/test-data submodule by default
aromanielloNTIA Jan 14, 2025
57c11b4
Remove test-data submodule from template, keep instructions
aromanielloNTIA Jan 14, 2025
c31a3cd
Merge remote-tracking branch 'proplib-template/main' into dev
aromanielloNTIA Jan 14, 2025
b801cb3
Remove template text
aromanielloNTIA Jan 14, 2025
628c106
Run driver tests and use debug preset for CI tests (temporary)
aromanielloNTIA Jan 16, 2025
5d10a5c
fix typo, edit preset options
aromanielloNTIA Jan 16, 2025
b5fe908
Build and test driver when using debug presets
aromanielloNTIA Jan 16, 2025
12e73a5
Change debug warning level to W4 for MSVC
aromanielloNTIA Jan 16, 2025
a252c1f
Remove /MT and /MTd compiler flags for MSVC
aromanielloNTIA Jan 16, 2025
6d372d5
Add PropLib compiler option configuration to tests
aromanielloNTIA Jan 16, 2025
7d932a5
Fix wrong target provided to function
aromanielloNTIA Jan 16, 2025
1e0775d
Merge remote-tracking branch 'proplib-template/main' into dev
aromanielloNTIA Jan 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# NTIA/ITS C++ Clang-Format Style Options
# Updated 9/25/2024
---
AlignAfterOpenBracket: BlockIndent
AlignOperands: AlignAfterOperator
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortLambdasOnASingleLine: All
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BasedOnStyle: WebKit
BinPackArguments: false
BinPackParameters: false
BitFieldColonSpacing: After
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BeforeLambdaBody: false
BeforeWhile: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Attach
BreakInheritanceList: AfterColon
BreakBeforeConceptDeclarations: false
BreakConstructorInitializers: AfterColon
BreakStringLiterals: true
ColumnLimit: 80
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
EmptyLineBeforeAccessModifier: Never
FixNamespaceComments: true
IncludeBlocks: Regroup
IndentAccessModifiers: true
IndentCaseBlocks: true
IndentCaseLabels: true
IndentExternBlock: Indent
IndentGotoLabels: true
IndentPPDirectives: BeforeHash
IndentRequires: true
IndentWidth: 4
IndentWrappedFunctionNames: true
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
LineEnding: CRLF
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 4
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: true
ObjCSpaceBeforeProtocolList: true
PointerAlignment: Right
ReflowComments: false
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInContainerLiterals: false
SpacesInConditionalStatement: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: c++14
TabWidth: 4
UseTab: Never
29 changes: 29 additions & 0 deletions .github/workflows/cff-validator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Validate CITATION.cff

on:
push:
branches: ["main"]
paths:
- 'CITATION.cff'
- '.github/workflows/cff-validator.yml'
pull_request:
branches: ["main", "dev"]
paths:
- 'CITATION.cff'
- '.github/workflows/cff-validator.yml'
workflow_dispatch:

jobs:
Validate-CITATION-cff:
runs-on: ubuntu-latest
name: Validate CITATION.cff
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate CITATION.cff
uses: dieghernan/cff-validator@v3
with:
install-r: true
73 changes: 73 additions & 0 deletions .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# This action compiles the library and driver and runs all unit tests using an OS and CMake matrix
name: Unit Tests

on:
push:
branches: ["main"]
pull_request:
branches: ["main", "dev"]
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

# Define the matrix for different operating systems
jobs:
build-and-test:
name: ${{ matrix.os }} / ${{ matrix.architecture }} / CMake ${{ matrix.cmakeVersion }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest # Apple
- macos-13 # Intel
- windows-latest
architecture: [arm64, x64, x86]
cmakeVersion: ["3.21", latest] # CMake >= 3.21 is required to use "--preset <presetName>" and discover generators
exclude:
- os: macos-latest
architecture: x86
- os: macos-latest
architecture: x64
- os: macos-13
architecture: x86
- os: macos-13
architecture: arm64
- os: windows-latest
architecture: arm64
- os: ubuntu-latest
architecture: arm64
- os: ubuntu-latest
architecture: x86
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Clone required submodules
run: |
git submodule init extern/googletest
git submodule init extern/test-data
git submodule update

- name: Install CMake
uses: lukka/get-cmake@latest
with:
cmakeVersion: ${{ matrix.cmakeVersion }}

- name: "CMake: Build and Test (64-bit)"
if: matrix.architecture != 'x86'
uses: lukka/run-cmake@v10
with:
configurePreset: debug64
buildPreset: debug64
testPreset: debug64

- name: "CMake: Build and Test (32-bit)"
if: matrix.architecture == 'x86'
uses: lukka/run-cmake@v10
with:
configurePreset: debug32
buildPreset: debug32
testPreset: debug32
72 changes: 72 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# This action builds **AND DEPLOYS** Doxygen documentation to GitHub Pages
# Doxygen site is DEPLOYED if this action is triggered by publishing a release.
# Doxygen site is NOT DEPLOYED (only built) when triggered by pull request or dispatched.
name: C++ Docs

on:
release:
types: ["published"]
pull_request:
branches: ["main", "dev"]
push:
branches: ["main"]
workflow_dispatch:

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Clone doxygen-awesome-css submodule
run: |
git submodule init extern/doxygen-awesome-css
git submodule update

- name: Install Doxygen
uses: ssciwr/doxygen-install@v1
with:
version: "1.12.0"

- name: Setup GitHub Pages
if: ${{ github.event_name == 'release' }}
id: pages
uses: actions/configure-pages@v5

- name: Install CMake
uses: lukka/get-cmake@latest

- name: Build documentation with Doxygen
uses: lukka/run-cmake@v10
with:
configurePreset: docsOnly
buildPreset: docsOnly

- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
if: ${{ github.event_name == 'release' }}
with:
path: ./docs/html/

deploy:
if: ${{ github.event_name == 'release' }}
needs: build
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
86 changes: 86 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# This action compiles multi-platform binaries for a release.
# It is triggered when a new tag is made with a version number starting with "v"
name: Create Release Artifacts

on:
push:
tags: ['v[0-9]+.*']
workflow_dispatch:

permissions:
contents: write

jobs:
create_release_artifacts:
name: 'Create Release: ${{ matrix.relName}}'
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: windows-latest
architecture: x64
relName: Windows x64
- os: windows-latest
architecture: x86
relName: Windows x86
- os: macos-latest
architecture: arm64
relName: macOS Universal
- os: ubuntu-latest
architecture: x64
relName: Linux x64
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install CMake # (latest stable version)
uses: lukka/get-cmake@latest

- name: "CMake: Build (64-bit)"
if: matrix.architecture != 'x86'
uses: lukka/run-cmake@v10
with:
configurePreset: release64
configurePresetAdditionalArgs: "['-DBUILD_DOCS=OFF', '-DRUN_TESTS=OFF', '-DRUN_DRIVER_TESTS=OFF']"
buildPreset: release64

- name: "CMake: Build (32-bit)"
if: matrix.architecture == 'x86'
uses: lukka/run-cmake@v10
with:
configurePreset: release32
configurePresetAdditionalArgs: "['-DBUILD_DOCS=OFF', '-DRUN_TESTS=OFF', '-DRUN_DRIVER_TESTS=OFF', '-A', 'Win32']"
buildPreset: release32

- name: Upload release artifacts (binaries)
if: runner.os != 'Windows'
uses: actions/upload-artifact@v4
with:
name: "${{ github.event.repository.name }}-release-${{ runner.os }}"
path: |
${{ github.workspace }}/bin/*-universal.dylib
${{ github.workspace }}/bin/*-x86_64.so
${{ github.workspace }}/bin/*Driver*-*-Darwin-universal
${{ github.workspace }}/bin/*Driver*-*-Linux-x86_64
if-no-files-found: error
overwrite: true

- name: Upload release artifact (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
name: "${{ github.event.repository.name }}-release-${{ runner.os }}-${{ matrix.architecture }}"
path: |
${{ github.workspace }}\bin\Release\*.dll
${{ github.workspace }}\bin\Release\*Driver-*.exe
if-no-files-found: error
overwrite: true

- name: Upload release artifact (C++ Header)
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
with:
name: "${{ github.event.repository.name }}-release-cpp-header"
path: ${{ github.workspace }}/include/P2108.h
if-no-files-found: error
overwrite: true
Loading
Loading