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

Cross platform command line driver + PropLib template adherence #9

Open
wants to merge 313 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 233 commits
Commits
Show all changes
313 commits
Select commit Hold shift + click to select a range
70bf767
Update README.md
aromanielloNTIA Oct 16, 2024
d21a1cf
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 16, 2024
a8db361
clang-format
aromanielloNTIA Oct 16, 2024
e8447de
Remove unused definitions
aromanielloNTIA Oct 16, 2024
160cf65
Improve CSV iterator
aromanielloNTIA Oct 17, 2024
70bcd20
Make TestDriver a simple executable
aromanielloNTIA Oct 17, 2024
ee88c58
update driver test executable
aromanielloNTIA Oct 17, 2024
fec15a8
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 17, 2024
3e82022
minor updates
aromanielloNTIA Oct 17, 2024
bceacd4
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 17, 2024
680188f
Don't run CI workflows in template repository
aromanielloNTIA Oct 17, 2024
9f07710
Update README.md
aromanielloNTIA Oct 17, 2024
836150d
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 17, 2024
a716be1
Fix return value of utility function
aromanielloNTIA Oct 17, 2024
ba45906
Suppress executable output when testing driver
aromanielloNTIA Oct 17, 2024
37cc6bf
fix parser
aromanielloNTIA Oct 17, 2024
a88ad39
Add test cases
aromanielloNTIA Oct 17, 2024
4810969
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 17, 2024
ad24f20
fix test driver command for unix/macos
aromanielloNTIA Oct 17, 2024
9bd0829
Add missing header file for driver
aromanielloNTIA Oct 18, 2024
2cbfc81
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 18, 2024
33fb646
Explicit include of <ostream> for std::endl
aromanielloNTIA Oct 18, 2024
b715454
Add TempTextFile class
aromanielloNTIA Oct 18, 2024
a2e3c4c
Set flags to ensure localtime_s is available on Windows
aromanielloNTIA Oct 18, 2024
2aaa63b
Add tempfile header to testdriver header
aromanielloNTIA Oct 18, 2024
bed5791
Add TempTextFile class
aromanielloNTIA Oct 18, 2024
6dd8423
ensure localtime_s is available on Windows
aromanielloNTIA Oct 18, 2024
d91bc2f
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 18, 2024
1745283
Add include for std::remove
aromanielloNTIA Oct 18, 2024
dd9b9dc
Add <algorithm> include for std::remove
aromanielloNTIA Oct 18, 2024
da7a607
Improve driver input parsing and validation
aromanielloNTIA Oct 23, 2024
5af75e2
Implement driver testing with GoogleTest
aromanielloNTIA Oct 23, 2024
ca2e05e
Add success cases to driver tests
aromanielloNTIA Oct 23, 2024
1d4273a
Provide driver location to driver test
aromanielloNTIA Oct 23, 2024
fd35684
minor tweaks to prepare for template merge
aromanielloNTIA Oct 24, 2024
e505cd0
Remove text output used for debugging
aromanielloNTIA Oct 24, 2024
8c11c09
Update driver testing
aromanielloNTIA Oct 24, 2024
b55e163
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 24, 2024
e8ed000
Minor formatting adjustments
aromanielloNTIA Oct 24, 2024
d6b5f10
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 24, 2024
ddf356b
Use drvrparams in driver tests
aromanielloNTIA Oct 24, 2024
1ea5acb
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 24, 2024
b1f0c25
Update driver tests to use drvrparams
aromanielloNTIA Oct 24, 2024
ddfe7ef
Update CLI readme
aromanielloNTIA Oct 24, 2024
f354f44
Update README.md
aromanielloNTIA Oct 24, 2024
9106d8c
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 24, 2024
6cd1cf1
Reuse stringtolower in CSV parser
aromanielloNTIA Oct 24, 2024
2bd0e2c
Document driver with Doxygen
aromanielloNTIA Oct 24, 2024
5f32198
Document driver with Doxygen
aromanielloNTIA Oct 24, 2024
d3aa2a4
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 24, 2024
d63af50
Merge remote-tracking branch 'origin/dev' into cross-platform-cli-driver
aromanielloNTIA Oct 28, 2024
c1959d6
type-safe constant for PI
aromanielloNTIA Oct 28, 2024
21b36c8
Use enums for return codes
aromanielloNTIA Oct 28, 2024
5587408
Remove label macros
aromanielloNTIA Oct 28, 2024
ca7766b
Rename HGTCParams to HGTCMParams
aromanielloNTIA Oct 28, 2024
687db5b
Replace input key tags with typed structs
aromanielloNTIA Oct 28, 2024
a30c31b
Switch library enum class to enum
aromanielloNTIA Oct 28, 2024
5500b55
Remove include statements for deleted files
aromanielloNTIA Oct 28, 2024
b320b36
Avoid name conflict in enums
aromanielloNTIA Oct 28, 2024
d7333af
Make input key structs constants
aromanielloNTIA Oct 28, 2024
6a96a79
Fix errors
aromanielloNTIA Oct 28, 2024
23fe227
clang-format
aromanielloNTIA Oct 28, 2024
2975f08
consistent acronyms
aromanielloNTIA Oct 28, 2024
9d04412
Add const to PrintLabel
aromanielloNTIA Oct 28, 2024
5517ff1
Add missing libraries for portable tempfile
aromanielloNTIA Oct 28, 2024
04a9ed1
Update Doxygen CI to 1.12.0
aromanielloNTIA Oct 28, 2024
e0fdec9
Test cross-platform driver discovery fix
aromanielloNTIA Oct 28, 2024
2474309
Update Doxygen action to 1.12.0
aromanielloNTIA Oct 28, 2024
43e60f0
Doxygen action debug
aromanielloNTIA Oct 28, 2024
e8f8257
Fix typo
aromanielloNTIA Oct 29, 2024
fbb10be
try removing erroring lines quotes
aromanielloNTIA Oct 29, 2024
8e1af2a
Fix doxygen action YAML
aromanielloNTIA Oct 29, 2024
8e0908d
fix combined condition
aromanielloNTIA Oct 29, 2024
daf3315
Fix conditions for CI jobs, update Doxygen to 1.12
aromanielloNTIA Oct 29, 2024
7e9a36d
Update ctest.yml
aromanielloNTIA Oct 30, 2024
ae178ae
cleanup
aromanielloNTIA Oct 30, 2024
d315e2b
Change newline handling in driver status message
aromanielloNTIA Oct 30, 2024
3a2e7af
Do not create newline in status messages
aromanielloNTIA Oct 30, 2024
ef14e43
Shift all return codes into POSIX-compliant range
aromanielloNTIA Oct 30, 2024
6901be6
Try fixing googletest discovery
aromanielloNTIA Oct 30, 2024
01e0d43
Test reverting storage of target location
aromanielloNTIA Oct 30, 2024
8eef9d4
Return code updates
aromanielloNTIA Oct 31, 2024
abd8c43
template updates
aromanielloNTIA Oct 31, 2024
09c1bfa
cleanup
aromanielloNTIA Oct 31, 2024
1632f14
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
69f618f
remove template files
aromanielloNTIA Oct 31, 2024
280999f
fix template merge deletion
aromanielloNTIA Oct 31, 2024
a4421de
delete template file
aromanielloNTIA Oct 31, 2024
02c9019
Fix driver utility return types
aromanielloNTIA Oct 31, 2024
efd7ab5
Fix file name
aromanielloNTIA Oct 31, 2024
7b4ba4f
Fix driver utility return types
aromanielloNTIA Oct 31, 2024
c78dbd1
Merge remote-tracking branch 'proplib-template/main' into cross-platf…
aromanielloNTIA Oct 31, 2024
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
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
30 changes: 7 additions & 23 deletions .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# This action compiles the library and runs all unit tests using an OS and CMake matrix
# Doxygen documentation is also built. Build fails on missing documentation.
# This action compiles the library and driver and runs all unit tests using an OS and CMake matrix
name: Unit Tests

on:
Expand All @@ -16,8 +15,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# Windows-2019 is used as a dedicated 32-bit build/test platform
os: [ubuntu-latest, macos-latest, windows-latest, windows-2019]
os: [ubuntu-latest, macos-latest, windows-latest]
# CMake >= 3.21 is required to use "--preset <presetName>" and discover generators
cmakeVersion: ["3.21", latest]

Expand All @@ -28,31 +26,17 @@ jobs:
- name: Clone required submodules
run: |
git submodule init extern/googletest
git submodule init extern/doxygen-awesome-css
git submodule update

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

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

- name: "CMake: Build and Test (32-bit)"
if: matrix.os == 'windows-2019'
uses: lukka/run-cmake@v10
with:
configurePreset: release32
buildPreset: release32
testPreset: release32

- name: "CMake: Build and Test (64-bit)"
if: matrix.os != 'windows-2019'
- name: "CMake: Build and Test"
uses: lukka/run-cmake@v10
with:
configurePreset: release64
buildPreset: release64
testPreset: release64
configurePreset: release
configurePresetAdditionalArgs: "['-DBUILD_DOCS=OFF']"
buildPreset: release
testPreset: release
12 changes: 7 additions & 5 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
types: ["published"]
pull_request:
branches: ["main", "dev"]
push:
branches: ["main", "dev"]
workflow_dispatch:

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
Expand All @@ -31,7 +33,7 @@ jobs:
- name: Install Doxygen
uses: ssciwr/doxygen-install@v1
with:
version: "1.11.0"
version: "1.12.0"

- name: Setup GitHub Pages
if: ${{ github.event_name == 'release' }}
Expand All @@ -54,7 +56,7 @@ jobs:
path: ./docs/html/

deploy:
if: ${{ github.event_name == 'release'}}
if: ${{ github.event_name == 'release' }}
needs: build
permissions:
contents: read
Expand All @@ -65,6 +67,6 @@ jobs:
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
41 changes: 13 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ name: Create Release Artifacts
on:
push:
tags: ['v[0-9]+.*']
workflow_dispatch:

permissions:
contents: write
Expand All @@ -16,29 +15,20 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-2019, windows-latest]
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout repository
uses: actions/checkout@v4

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

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

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

- name: Upload release artifact (macOS or Linux)
if: runner.os != 'Windows'
Expand All @@ -48,23 +38,18 @@ jobs:
path: |
${{ github.workspace }}/bin/*.dylib
${{ github.workspace }}/bin/*.so
if-no-files-found: error
overwrite: true

- name: Upload release artifact (Windows x86)
if: matrix.os == 'windows-2019'
uses: actions/upload-artifact@v4
with:
name: release-windows-x86
path: ${{ github.workspace }}\bin\Debug\*.dll
${{ github.workspace }}/bin/*Driver-Darwin-*
${{ github.workspace }}/bin/*Driver-Linux-*
if-no-files-found: error
overwrite: true

- name: Upload release artifact (Windows x64)
if: matrix.os == 'windows-latest'
- name: Upload release artifact (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
with:
name: release-windows-x64
path: ${{ github.workspace }}\bin\Debug\*.dll
name: release-${{ matrix.os }}
path: |
${{ github.workspace }}\bin\Release\*.dll
${{ github.workspace }}\bin\Release\*Driver-Windows-*.exe
if-no-files-found: error
overwrite: true
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@
Thumbs.db
*.o

####################################
## Shared Library files in Wrappers
####################################
**.dll
**.so
**.dylib

######################################
## Derived files produced by wrappers
######################################
**.mltbx
**.whl
**.tar.gz
**.nupkg

#################
## Visual Studio
#################
Expand Down
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[submodule "extern/doxygen-awesome-css"]
path = extern/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css
[submodule "extern/googletest"]
path = extern/googletest
url = https://github.com/google/googletest
branch = v1.12.x
[submodule "extern/doxygen-awesome-css"]
path = extern/doxygen-awesome-css
url = https://github.com/jothepro/doxygen-awesome-css
7 changes: 4 additions & 3 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,10 @@
"name": "Romaniello, Anthony W."
}
],
"title": "Recommendation ITU-R P.2108-1, Release 1.0",
"license": "NTIA Public Domain",
"title": "Recommendation ITU-R P.2108-1",
"description": "Models for the prediction of clutter loss",
"upload_type": "software",
"version": "1.0.0",
"version": "1.0",
"keywords": ["Study Group 3", "ITU-R", "P2108", "clutter", "propagation"]
}
}
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ authors:
email: [email protected]
website: 'https://its.ntia.gov'
repository-code: 'https://github.com/NTIA/p2108'
url: 'https://github.com/NTIA/propagation/wiki'
url: 'https://ntia.github.io/propagation-library-wiki/models/P2108'
repository: 'https://github.com/NTIA/p2108'
keywords:
- propagation
Expand Down
29 changes: 19 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set(LIB_NAME "P2108") # Name of library/target
set(LIB_NAMESPACE "ITS.ITU.PSeries") # Namespace for the named library
project(
"${LIB_NAMESPACE}.${LIB_NAME}"
VERSION 1.0.0
VERSION 1.0
DESCRIPTION "Recommendation ITU-R P.2108, U.S. Reference Implementation"
HOMEPAGE_URL "https://ntia.github.io/propagation-library-wiki/models/P2108"
LANGUAGES "CXX"
Expand All @@ -28,12 +28,13 @@ set(PYTHON_WRAPPER_DIR "${PROJECT_SOURCE_DIR}/wrap/python")
###########################################
## CMAKE OPTIONS AND DEFAULTS
###########################################
# Define options. Defaults to: compile 64-bit library, build docs, run tests
option(BUILD_DOCS "Generate documentation with Doxygen" ON)
option(DOCS_ONLY "Skip all steps except generating documentation" OFF)
option(RUN_TESTS "Run C++ unit tests with Google Test + CTest" ON)
option(COPY_TO_WRAPPERS "Copy compiled library into wrapper submodules" ON)
option(BUILD_32BIT "Build project for x86/32-bit instead of x64/64-bit" OFF)
# Define options. Defaults to: compile 64-bit library and driver, build docs, run tests
option(BUILD_DOCS "Generate documentation site with Doxygen" ON)
option(BUILD_DRIVER "Build the command-line driver executable" ON)
option(RUN_DRIVER_TESTS "Test the command-line driver executable" ON)
option(DOCS_ONLY "Skip all steps except generating the documentation site" OFF)
option(RUN_TESTS "Run unit tests for the main library" ON)
option(COPY_TO_WRAPPERS "Copy the compiled shared library into wrapper submodules" ON)

###########################################
## SETUP
Expand All @@ -50,17 +51,25 @@ if (NOT DOCS_ONLY)
if (COPY_TO_WRAPPERS) # Copy compiled library to wrappers
add_subdirectory(wrap)
endif ()
if (RUN_TESTS) # Build and run unit tests
if (RUN_TESTS OR RUN_DRIVER_TESTS)
if (EXISTS "${PROJECT_SOURCE_DIR}/extern/googletest/CMakeLists.txt")
enable_testing()
add_subdirectory(tests)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
add_subdirectory("${PROJECT_SOURCE_DIR}/extern/googletest" "extern/googletest")
include(GoogleTest)
else ()
message(SEND_ERROR
"Unable to build tests. GoogleTest submodule is missing. "
"Run `git submodule init extern/googletest` then "
"`git submodule update` and try again."
)
endif()
endif ()
endif ()
if (RUN_TESTS) # Build and run unit tests
add_subdirectory(tests)
endif ()
if (BUILD_DRIVER OR RUN_DRIVER_TESTS)
add_subdirectory(app)
endif ()
endif ()

Expand Down
Loading