Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
033abd8
update versions
cheroy-ntia Jun 11, 2026
d159d6a
update runner version
cheroy-ntia Jun 12, 2026
ccd233a
doxygen version
cheroy-ntia Jun 12, 2026
bd053f8
Merge pull request #7 from NTIA/dev
cheroy-ntia Jun 12, 2026
758578b
upload-artifact version
cheroy-ntia Jun 12, 2026
b16bc6d
Merge branch 'main' of https://github.com/NTIA/proplib-template
cheroy-ntia Jun 12, 2026
4506f82
add model option for driver
cheroy-ntia Jun 15, 2026
102158d
using GetLibraryName
cheroy-ntia Jun 15, 2026
96ec625
add comments
cheroy-ntia Jun 15, 2026
41cae7e
explicitly initialize the Developer Command Prompt
cheroy-ntia Jun 15, 2026
ec08580
lukka/run-cmake works best with Ninja, which is pre-installed on wind…
cheroy-ntia Jun 15, 2026
cbbf015
"generator": "Ninja",
cheroy-ntia Jun 15, 2026
657da5e
remove set
cheroy-ntia Jun 15, 2026
8118014
to ensure the Developer Command Prompt is loaded
cheroy-ntia Jun 15, 2026
b3263c5
windows-latest
cheroy-ntia Jun 15, 2026
6d0014f
A Git commit id for vcpkg's baseline was not found nor in vcpkg.json…
cheroy-ntia Jun 15, 2026
f26e85a
generator: Ninja
cheroy-ntia Jun 15, 2026
c5cc4cc
run-vcpkg action execution failed: A Git commit id for vcpkg's baseli…
cheroy-ntia Jun 15, 2026
1ccb6b7
fail-fast: false
cheroy-ntia Jun 15, 2026
284c3de
w
cheroy-ntia Jun 15, 2026
998bc53
cmake version
cheroy-ntia Jun 15, 2026
ffe13be
Setup MSVC
cheroy-ntia Jun 15, 2026
1c5c75c
id: runvcpkg
cheroy-ntia Jun 15, 2026
ed6048c
vcpkg.json
cheroy-ntia Jun 15, 2026
a6b4f78
location
cheroy-ntia Jun 15, 2026
ab21f44
try
cheroy-ntia Jun 16, 2026
8f49c81
remove Setup MSVC
cheroy-ntia Jun 16, 2026
eb92c51
try 2026
cheroy-ntia Jun 16, 2026
a0c2b3f
try run-vcpkg
cheroy-ntia Jun 16, 2026
013988a
vcpkg.json
cheroy-ntia Jun 16, 2026
4c68c62
Setup Developer Command Prompt
cheroy-ntia Jun 16, 2026
7e500db
remove vcpkg
cheroy-ntia Jun 16, 2026
92b946d
try cmake 3.31
cheroy-ntia Jun 16, 2026
da8dd03
add cmake 4.1
cheroy-ntia Jun 16, 2026
421440a
4.2
cheroy-ntia Jun 16, 2026
de2cc4b
windows-2022 runner for cmake 3.21
cheroy-ntia Jun 16, 2026
c6b8821
exclude some runners
cheroy-ntia Jun 16, 2026
dba4ff3
add comments
cheroy-ntia Jun 16, 2026
5d8d907
Merge pull request #8 from NTIA/dev
cheroy-ntia Jun 16, 2026
849ec26
try Ninja
cheroy-ntia Jun 16, 2026
969808c
remove Ninja
cheroy-ntia Jun 16, 2026
e7c0d09
Merge pull request #9 from NTIA/dev
cheroy-ntia Jun 16, 2026
3eb409a
update github action runner version
cheroy-ntia Jun 17, 2026
861e653
Merge branch 'template-main' into dev
cheroy-ntia Jun 17, 2026
739d824
update header file
cheroy-ntia Jun 17, 2026
9bea014
FreeReturnStatusCharArray
cheroy-ntia Jun 17, 2026
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
4 changes: 2 additions & 2 deletions .github/workflows/cff-validator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Validate CITATION.cff
uses: dieghernan/cff-validator@v4
uses: dieghernan/cff-validator@v5
18 changes: 12 additions & 6 deletions .github/workflows/ctest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,38 @@ jobs:
name: ${{ matrix.os }} / ${{ matrix.architecture }} / CMake ${{ matrix.cmakeVersion }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest # Apple
- macos-13 # Intel
- windows-latest
- macos-latest # Apple
- macos-15-intel # Intel
- windows-2022 # Visual Studio 2022
- windows-latest # Visual Studio 2026, CMake >= 4.2 is required
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
- os: macos-15-intel
architecture: x86
- os: macos-13
- os: macos-15-intel
architecture: arm64
- os: windows-latest
architecture: arm64
- os: windows-2022
architecture: arm64
- os: ubuntu-latest
architecture: arm64
- os: ubuntu-latest
architecture: x86
- os: windows-latest
cmakeVersion: "3.21"
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Clone required submodules
run: |
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,22 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- 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
uses: ssciwr/doxygen-install@v2
with:
version: "1.12.0"
version: "1.17.0"

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

- name: Install CMake
uses: lukka/get-cmake@latest
Expand All @@ -50,7 +50,7 @@ jobs:
buildPreset: docsOnly

- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
uses: actions/upload-pages-artifact@v5
if: ${{ github.event_name == 'release' }}
with:
path: ./docs/html/
Expand All @@ -69,4 +69,4 @@ jobs:
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
relName: Linux x64
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Install CMake # (latest stable version)
uses: lukka/get-cmake@latest
Expand All @@ -54,7 +54,7 @@ jobs:

- name: Upload release artifacts (binaries)
if: runner.os != 'Windows'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: "${{ github.event.repository.name }}-release-${{ runner.os }}"
path: |
Expand All @@ -67,7 +67,7 @@ jobs:

- name: Upload release artifact (Windows)
if: runner.os == 'Windows'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: "${{ github.event.repository.name }}-release-${{ runner.os }}-${{ matrix.architecture }}"
path: |
Expand All @@ -78,7 +78,7 @@ jobs:

- name: Upload release artifact (C++ Header)
if: runner.os == 'Linux'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: "${{ github.event.repository.name }}-release-cpp-header"
path: ${{ github.workspace }}/include/LFMF.h
Expand Down
2 changes: 0 additions & 2 deletions app/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ configure_proplib_target(${DRIVER_NAME})

# Add definitions to enable version identification inside the driver
add_compile_definitions(
LIBRARY_VERSION="${PROJECT_VERSION}"
DRIVER_VERSION="${DRIVER_VERSION}"
LIBRARY_NAME="${LIB_NAME}"
DRIVER_NAME="${DRIVER_NAME}"
)

Expand Down
4 changes: 2 additions & 2 deletions app/src/Driver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ int main(int argc, char **argv) {
}

// Print generator information to file
fp << std::left << std::setw(30) << "Model" << LIBRARY_NAME;
fp PRINT "Library Version" << "v" << LIBRARY_VERSION;
fp << std::left << std::setw(30) << "Model" << GetLibraryName();
fp PRINT "Library Version" << "v" << GetLibraryVersion();
fp PRINT "Driver Version" << "v" << DRIVER_VERSION;
fp PRINT "Date Generated" << GetDatetimeString();
fp PRINT "Input Arguments";
Expand Down
2 changes: 1 addition & 1 deletion app/src/DriverUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void Version(std::ostream &os) {
os << std::setfill('*') << std::setw(55) << "" << std::endl;
os << "Institute for Telecommunication Sciences - Boulder, CO" << std::endl;
os << "\tDriver Version: " << DRIVER_VERSION << std::endl;
os << "\t" << LIBRARY_NAME << " Version: " << LIBRARY_VERSION << std::endl;
os << "\t" << GetLibraryName() << " Version: " << GetLibraryVersion() << std::endl;
os << "Time: " << GetDatetimeString() << std::endl;
os << std::setfill('*') << std::setw(55) << "" << std::endl;
}
4 changes: 4 additions & 0 deletions include/LFMF.h
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,8 @@ DLLEXPORT ReturnCode LFMF(

DLLEXPORT char *GetReturnStatusCharArray(const int code);
DLLEXPORT void FreeReturnStatusCharArray(char *c_msg);
DLLEXPORT char *GetLibraryNameCharArray();
DLLEXPORT char *GetLibraryVersionCharArray();

////////////////////////////////////////////////////////////////////////////////
// Private Functions
Expand All @@ -156,6 +158,8 @@ ReturnCode LFMF_CPP(
Result &result
);
std::string GetReturnStatus(const int code);
std::string GetLibraryName();
std::string GetLibraryVersion();
double FlatEarthCurveCorrection(
const std::complex<double> delta,
const std::complex<double> q,
Expand Down
50 changes: 50 additions & 0 deletions src/ReturnCodes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,24 @@ namespace ITS {
namespace Propagation {
namespace LFMF {

/*******************************************************************************
* Get library name
*
* @return Library name.
******************************************************************************/
std::string GetLibraryName() {
return LIBRARY_NAME;
}

/*******************************************************************************
* Get library version
*
* @return Library version.
******************************************************************************/
std::string GetLibraryVersion() {
return LIBRARY_VERSION;
}

/*******************************************************************************
* Get an error message string from a return code.
*
Expand Down Expand Up @@ -86,6 +104,38 @@ void FreeReturnStatusCharArray(char *c_msg) {
delete[] c_msg;
}

/*******************************************************************************
* Get library name string (as C-style string).
*
* @return Library name string.
******************************************************************************/
char *GetLibraryNameCharArray() {
const std::string msg = LIBRARY_NAME;
char *c_msg = new char[msg.size() + 1];
#ifdef _WIN32
strcpy_s(c_msg, msg.size() + 1, msg.c_str());
#else
strcpy(c_msg, msg.c_str());
#endif
return c_msg;
}

/*******************************************************************************
* Get library version string (as C-style string).
*
* @return Library version string.
******************************************************************************/
char *GetLibraryVersionCharArray() {
const std::string msg = LIBRARY_VERSION;
char *c_msg = new char[msg.size() + 1];
#ifdef _WIN32
strcpy_s(c_msg, msg.size() + 1, msg.c_str());
#else
strcpy(c_msg, msg.c_str());
#endif
return c_msg;
}

} // namespace LFMF
} // namespace Propagation
} // namespace ITS
Loading