From 5c8e661d72ff73e1b42d49fd1ce01a4d7fc3e7fc Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 13:46:10 -0400 Subject: [PATCH 1/6] chore: cmake clean up for downstream consumers --- AircraftDynamicsTestFramework/CMakeLists.txt | 35 ++++++---- AircraftDynamicsTestFramework/framework.cmake | 5 +- CMakeLists.txt | 68 +++++++++++++------ unittest/CMakeLists.txt | 2 - .../framework.cmake | 9 +-- unittest/unittest.cmake | 2 +- 6 files changed, 77 insertions(+), 44 deletions(-) diff --git a/AircraftDynamicsTestFramework/CMakeLists.txt b/AircraftDynamicsTestFramework/CMakeLists.txt index b6827ee..f19eead 100644 --- a/AircraftDynamicsTestFramework/CMakeLists.txt +++ b/AircraftDynamicsTestFramework/CMakeLists.txt @@ -32,33 +32,40 @@ set(SOURCE_FILES WindInterpolator.cpp ) -set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) +set(FMACM_BADA_TARGET "" CACHE STRING "Optional BADA implementation target") +set(FMACM_FIM_SAMPLE_ALGORITHM_TARGET "" CACHE STRING "Optional FIM sample algorithm target") # OPTIONAL Libraries ------ -# a bada implementation is needed to run, but the definition is -# optional so that compiling will still occur if it is missing +# These optional local include files can define the legacy BADA_LIBRARY and +# SAMPLE_ALGORITHM_LIBRARY variables. Prefer the FMACM_*_TARGET cache hooks +# for downstream composition. include(bada_library.cmake OPTIONAL) -# -# the DO-361A Sample Algorithm can be linked into this code, but -# its presence is not required for compiling include(sample_algorithm_library.cmake OPTIONAL) +if("${FMACM_BADA_TARGET}" STREQUAL "" AND DEFINED BADA_LIBRARY) + set(FMACM_BADA_TARGET "${BADA_LIBRARY}") +endif() +if("${FMACM_FIM_SAMPLE_ALGORITHM_TARGET}" STREQUAL "" AND DEFINED SAMPLE_ALGORITHM_LIBRARY) + set(FMACM_FIM_SAMPLE_ALGORITHM_TARGET "${SAMPLE_ALGORITHM_LIBRARY}") +endif() # ------ add_library(framework STATIC ${SOURCE_FILES} ${DATA_READER_FILES} ${DATA_LOADER_FILES} ${DATA_WRITER_FILES}) +add_library(mitre::oss::fmacm_framework ALIAS framework) +set_target_properties(framework PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib +) target_include_directories(framework PUBLIC ${aaesim_INCLUDE_DIRS}) target_link_libraries(framework PUBLIC mitre::fsloader - ${BADA_LIBRARY} - ${SAMPLE_ALGORITHM_LIBRARY} log4cplus::log4cplus mitre::oss::simcore) -if (DEFINED BADA_LIBRARY) - # Add a compile definition to the build - target_compile_definitions(framework PUBLIC "MITRE_BADA3_LIBRARY") +if (FMACM_BADA_TARGET) + target_link_libraries(framework PUBLIC ${FMACM_BADA_TARGET}) + target_compile_definitions(framework PUBLIC MITRE_BADA3_LIBRARY) endif() -if (DEFINED SAMPLE_ALGORITHM_LIBRARY) - # Add a compile definition to the build - target_compile_definitions(framework PUBLIC "SAMPLE_ALGORITHM_LIBRARY") +if (FMACM_FIM_SAMPLE_ALGORITHM_TARGET) + target_link_libraries(framework PUBLIC ${FMACM_FIM_SAMPLE_ALGORITHM_TARGET}) + target_compile_definitions(framework PUBLIC SAMPLE_ALGORITHM_LIBRARY) endif() diff --git a/AircraftDynamicsTestFramework/framework.cmake b/AircraftDynamicsTestFramework/framework.cmake index 52b60b2..d3a2a17 100644 --- a/AircraftDynamicsTestFramework/framework.cmake +++ b/AircraftDynamicsTestFramework/framework.cmake @@ -1,6 +1,6 @@ add_subdirectory(${FRAMEWORK_DIR}) -if(NOT ${BUILD_LIBARIES_ONLY}) +if(FMACM_BUILD_EXECUTABLE) # CPMAddPackage( # NAME cppmanifest_fmacm # GIT_REPOSITORY https://mustache.mitre.org/scm/idea/cppmanifest.git @@ -20,13 +20,14 @@ if(NOT ${BUILD_LIBARIES_ONLY}) SET(FMACM_MAIN_SRC ${FRAMEWORK_DIR}/fmacm.cpp) add_executable(FMACM ${FMACM_MAIN_SRC}) + add_executable(mitre::oss::fmacm ALIAS FMACM) target_link_libraries(FMACM framework) target_include_directories(FMACM PUBLIC $ $ ) set_target_properties(FMACM PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin + RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin ) else() # Ensure framework library is a build target even though nothing depends on it diff --git a/CMakeLists.txt b/CMakeLists.txt index 242a26c..a0a153f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,13 +8,33 @@ if (NOT DEFINED CMAKE_BUILD_TYPE) endif() message ("${PROJECT_NAME}: Build type set to ${CMAKE_BUILD_TYPE}") -option(BUILD_LIBARIES_ONLY "Build ${PROJECT_NAME} libraries only, no binaries" OFF) -if(${BUILD_LIBARIES_ONLY}) - message(STATUS "${PROJECT_NAME}: only building libraries, skipping binaries") +if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR) + set(FMACM_IS_TOP_LEVEL ON) +else() + set(FMACM_IS_TOP_LEVEL OFF) endif() -option(BUILD_TESTING "Enable building ${PROJECT_NAME} tests" ON) -if(NOT ${BUILD_TESTING}) +set(FMACM_BUILD_EXECUTABLE_DEFAULT ON) +if(DEFINED BUILD_LIBARIES_ONLY AND BUILD_LIBARIES_ONLY) + set(FMACM_BUILD_EXECUTABLE_DEFAULT OFF) +endif() +option(FMACM_BUILD_EXECUTABLE "Build the FMACM executable" ${FMACM_BUILD_EXECUTABLE_DEFAULT}) +if(DEFINED BUILD_LIBARIES_ONLY AND BUILD_LIBARIES_ONLY) + message(STATUS "BUILD_LIBARIES_ONLY is deprecated; use FMACM_BUILD_EXECUTABLE instead") +endif() +if(NOT FMACM_BUILD_EXECUTABLE) + message(STATUS "${PROJECT_NAME}: only building libraries, skipping executable") +endif() + +set(FMACM_BUILD_TESTING_DEFAULT OFF) +if(FMACM_IS_TOP_LEVEL) + set(FMACM_BUILD_TESTING_DEFAULT ON) + if(DEFINED BUILD_TESTING) + set(FMACM_BUILD_TESTING_DEFAULT ${BUILD_TESTING}) + endif() +endif() +option(FMACM_BUILD_TESTING "Build ${PROJECT_NAME} tests" ${FMACM_BUILD_TESTING_DEFAULT}) +if(NOT FMACM_BUILD_TESTING) message(STATUS "${PROJECT_NAME}: skipping test targets") endif() @@ -54,26 +74,32 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unused-function -Wno-sign-compare -O0 -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -Wno-unused-function -Wno-sign-compare -O3 -g3") -CPMAddPackage( - NAME fsloader - GIT_REPOSITORY https://github.com/mitre/fsloader.git - GIT_TAG 1.1.0 - OPTIONS - "FSLOADER_BUILD_EXAMPLE OFF" - "BUILD_SHARED_LIBS FALSE" -) +if(NOT TARGET mitre::fsloader) + CPMAddPackage( + NAME fsloader + GIT_REPOSITORY https://github.com/mitre/fsloader.git + GIT_TAG 1.1.0 + OPTIONS + "FSLOADER_BUILD_EXAMPLE OFF" + "BUILD_SHARED_LIBS FALSE" + ) +endif() -CPMAddPackage( - NAME aircraft_simulation_core - GIT_REPOSITORY https://github.com/mitre/aircraft_simulation_core.git - GIT_TAG a84dc78805bf35b6a45c68ac99f1c47fe47ad892 # FIXME switch to a release tag when available - OPTIONS - "SIMCORE_BUILD_TESTING OFF" -) +if(NOT TARGET mitre::oss::simcore) + CPMAddPackage( + NAME aircraft_simulation_core + GIT_REPOSITORY https://github.com/mitre/aircraft_simulation_core.git + GIT_TAG a84dc78805bf35b6a45c68ac99f1c47fe47ad892 # FIXME switch to a release tag when available + OPTIONS + "SIMCORE_BUILD_TESTING OFF" + ) +endif() set (FRAMEWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/AircraftDynamicsTestFramework) set (aaesim_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include ) set (UNITTEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/unittest) -include(${UNITTEST_DIR}/unittest.cmake OPTIONAL) include(${FRAMEWORK_DIR}/framework.cmake OPTIONAL) +if(FMACM_BUILD_TESTING) + include(${UNITTEST_DIR}/unittest.cmake OPTIONAL) +endif() diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index d90c40a..63f958d 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -14,5 +14,3 @@ CPMAddPackage( "GTEST_FORCE_SHARED_CRT ON" "BUILD_GMOCK ON" ) - -set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib) diff --git a/unittest/src/AircraftDynamicsTestFramework/framework.cmake b/unittest/src/AircraftDynamicsTestFramework/framework.cmake index aef237f..dcd2052 100644 --- a/unittest/src/AircraftDynamicsTestFramework/framework.cmake +++ b/unittest/src/AircraftDynamicsTestFramework/framework.cmake @@ -7,6 +7,7 @@ set(FMACM_TEST_SOURCE ${UNITTEST_DIR}/src/AircraftDynamicsTestFramework/framework_tests.cpp ${UNITTEST_DIR}/src/AircraftDynamicsTestFramework/true_weather_tests.cpp ) +set(FMACM_TEST_OUTPUT_DIR ${PROJECT_BINARY_DIR}/unittest/bin) add_executable(fmacm_test ${FMACM_TEST_SOURCE} ${UNITTEST_DIR}/src/main.cpp) @@ -19,10 +20,10 @@ target_include_directories(fmacm_test ${nlohmann_json_INCLUDE_DIR} ) set_target_properties(fmacm_test PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/bin + RUNTIME_OUTPUT_DIRECTORY ${FMACM_TEST_OUTPUT_DIR} EXCLUDE_FROM_ALL TRUE) add_custom_target(run_fmacm_test - ${CMAKE_SOURCE_DIR}/unittest/bin/fmacm_test --gtest_output=xml:fmacm_unit_test_results.xml - DEPENDS ${CMAKE_SOURCE_DIR}/unittest/bin/fmacm_test - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/ + $ --gtest_output=xml:${PROJECT_BINARY_DIR}/unittest/fmacm_unit_test_results.xml + DEPENDS fmacm_test + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/unittest/ ) diff --git a/unittest/unittest.cmake b/unittest/unittest.cmake index 00d43b4..cf68c99 100644 --- a/unittest/unittest.cmake +++ b/unittest/unittest.cmake @@ -8,7 +8,7 @@ include(${UNITTEST_DIR}/src/AircraftDynamicsTestFramework/framework.cmake) # add a target for running all of the unit test binaries at one time add_custom_target(run_tests - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/unittest/ + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/unittest/ ) add_dependencies(run_tests run_fmacm_test From 232fbfe471f0eceea0f02753189444f8e90a3144 Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 13:54:28 -0400 Subject: [PATCH 2/6] chore: 5.3.2 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a0a153f..3cd2c0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(aaesim VERSION 5.3.1.0) # the nano value is a boolean. 1 == SNAPSHOT, 0 == release # the nano value is a boolean. 1 == SNAPSHOT, 0 == release +project(aaesim VERSION 5.3.2) set (CMAKE_CXX_STANDARD 20) From 03dfcc3839814c6ed87dc94486bdf1d6bb181714 Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 14:07:30 -0400 Subject: [PATCH 3/6] chroe: fix ci --- .github/workflows/ci.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97565ac..2b5814b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: run: | cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release cmake --build build --target FMACM -j - ./bin/FMACM --version + ./build/bin/FMACM --version @@ -60,13 +60,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: test-results - path: unittest/*results.xml - - # - name: Publish JUnit test results - # uses: dorny/test-reporter@v2 - # if: always() - # with: - # name: Public Library Tests - # path: unittest/*results.xml - # reporter: jest-junit - # fail-on-error: true + path: build/unittest/*results.xml From bebbfa2064934a1b70c17596fbe28a65cdcf5013 Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 14:13:13 -0400 Subject: [PATCH 4/6] chore: fully removed cppmanifest; not useful --- AircraftDynamicsTestFramework/fmacm.cpp | 13 ++- AircraftDynamicsTestFramework/framework.cmake | 18 +--- CMakeLists.txt | 20 +--- docs/README.md | 3 +- include/cppmanifest/build_info.h | 53 ---------- include/cppmanifest/cppmanifest.h | 98 ------------------- 6 files changed, 12 insertions(+), 193 deletions(-) delete mode 100644 include/cppmanifest/build_info.h delete mode 100644 include/cppmanifest/cppmanifest.h diff --git a/AircraftDynamicsTestFramework/fmacm.cpp b/AircraftDynamicsTestFramework/fmacm.cpp index 50bcf61..afc35ef 100644 --- a/AircraftDynamicsTestFramework/fmacm.cpp +++ b/AircraftDynamicsTestFramework/fmacm.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -33,12 +34,14 @@ #include #include -#include "cppmanifest/cppmanifest.h" #include "framework/TestFrameworkScenario.h" #include "public/Log4cplusSetup.h" #include "public/ScenarioUtils.h" #define _MAX_PATH 260 +#ifndef FMACM_VERSION +#define FMACM_VERSION "unknown" +#endif const std::vector>> LoadConfigurationFile( const std::string &filename); @@ -52,16 +55,12 @@ const std::string VERSION_FLAG("--version"); int main(int argc, char *argv[]) { log4cplus::Initializer initializer; LoadLoggerProperties(); - LOG4CPLUS_INFO(logger, "running " << aaesim::cppmanifest::GetVersion()); + LOG4CPLUS_INFO(logger, "running " << FMACM_VERSION); if (argc == 2) { std::string arg1(argv[1]); if (arg1 == VERSION_FLAG) { - std::cout << "fmacm version " << aaesim::cppmanifest::GetVersion() << std::endl; - return EXIT_SUCCESS; - } else if (arg1 == aaesim::cppmanifest::BUILDINFO_CLI_FLAG) { - std::cout << "fmacm build info:" << std::endl; - aaesim::cppmanifest::PrintMetaData(); + std::cout << "fmacm version " << FMACM_VERSION << std::endl; return EXIT_SUCCESS; } } else { diff --git a/AircraftDynamicsTestFramework/framework.cmake b/AircraftDynamicsTestFramework/framework.cmake index d3a2a17..80dd26e 100644 --- a/AircraftDynamicsTestFramework/framework.cmake +++ b/AircraftDynamicsTestFramework/framework.cmake @@ -1,29 +1,13 @@ add_subdirectory(${FRAMEWORK_DIR}) if(FMACM_BUILD_EXECUTABLE) - # CPMAddPackage( - # NAME cppmanifest_fmacm - # GIT_REPOSITORY https://mustache.mitre.org/scm/idea/cppmanifest.git - # GIT_TAG v1.7 - # DOWNLOAD_ONLY TRUE - # ) - # if(cppmanifest_fmacm_ADDED AND IS_READABLE "${cppmanifest_fmacm_SOURCE_DIR}") - # include(${cppmanifest_fmacm_SOURCE_DIR}/cppmanifest_configure.cmake) - # set(PATH_FOR_CPPMANIFEST "${CMAKE_CURRENT_BINARY_DIR}/include/cppmanifest") - # cppmanifest_configure(${PATH_FOR_CPPMANIFEST}) - # set(cppmanifest_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include") - # else() - # message(FATAL_ERROR "Unable to configure cppmanifest header files: ${cppmanifest_fmacm_SOURCE_DIR}") - # endif() - set(cppmanifest_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/include") - SET(FMACM_MAIN_SRC ${FRAMEWORK_DIR}/fmacm.cpp) add_executable(FMACM ${FMACM_MAIN_SRC}) add_executable(mitre::oss::fmacm ALIAS FMACM) target_link_libraries(FMACM framework) + target_compile_definitions(FMACM PRIVATE "FMACM_VERSION=\"${FMACM_VERSION}\"") target_include_directories(FMACM PUBLIC - $ $ ) set_target_properties(FMACM PROPERTIES diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cd2c0a..b76307c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,25 +50,13 @@ CPMAddPackage( VERSION 1.2.5 ) -# CPMAddPackage( -# NAME cppmanifest -# GIT_REPOSITORY https://mustache.mitre.org/scm/idea/cppmanifest.git -# GIT_TAG v1.7 -# DOWNLOAD_ONLY TRUE -# ) -# if (cppmanifest_ADDED) -# include(${cppmanifest_SOURCE_DIR}/cppmanifest_configure.cmake) -# cppmanifest_configure(${PROJECT_SOURCE_DIR}/include/cppmanifest) -# endif() - -# cppmanifest does not do strings in the version, but we want them. # Append -SNAPSHOT to the version name if this is a pre-release version -if (${PROJECT_VERSION_TWEAK}) - set(aaesim_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-SNAPSHOT) +if(PROJECT_VERSION_TWEAK) + set(FMACM_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-SNAPSHOT) else() - set(aaesim_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) + set(FMACM_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}) endif() -message("-- Generating build for ${PROJECT_NAME} version ${aaesim_VERSION}") +message("-- Generating build for ${PROJECT_NAME} version ${FMACM_VERSION}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -Wno-unused-function -Wno-sign-compare -O0 -g") diff --git a/docs/README.md b/docs/README.md index 617b52b..4ef16dc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -67,7 +67,6 @@ Run from the terminal. Or compile the libraries here into a larger code base for The [main entry point](https://github.com/mitre/FMACM/blob/master/AircraftDynamicsTestFramework/fmacm.cpp) provides: - `--version`: report the build version; -- `--buildinfo`: report the build environment; - a single positional argument is used to provide a configuration file. The above command line arguments may not be combined. @@ -80,7 +79,7 @@ An example is provided in [./Run_Files/](https://github.com/mitre/FMACM/blob/mas The executable is then executed: ```bash -./bin/FMACM ./Run_Files/test-framework-configuration.txt +./build/bin/FMACM ./Run_Files/test-framework-configuration.txt ``` Data output is found in the run-time directory in the form of CSV files. diff --git a/include/cppmanifest/build_info.h b/include/cppmanifest/build_info.h deleted file mode 100644 index 5382c22..0000000 --- a/include/cppmanifest/build_info.h +++ /dev/null @@ -1,53 +0,0 @@ -// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, -// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- -// DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#if !defined(aaesim_CPPMANIFEST_BUILDINFO_H) -#define aaesim_CPPMANIFEST_BUILDINFO_H - -#if defined(aaesim_CPPMANIFEST_HAVE_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include - -#define CPPMANIFEST_MAKE_STR(input) #input - -// if suffix is empty, this will end with a hyphen. That will be removed at run-time -#define CPPMANIFEST_MAKE_VERSION_STR(major, minor, point, suffix) #major "." #minor "." #point "-" #suffix - -//! This is CPPMANIFEST user name as a string. -#define aaesim_CPPMANIFEST_USERNAME_STR CPPMANIFEST_MAKE_STR(sbowman) - -//! This is the build timestamp -#define aaesim_CPPMANIFEST_BUILDTIMESTAMP_STR CPPMANIFEST_MAKE_STR(2026 / 06 / 24 - 12 : 48 : 00) - -//! This is the gcc version -#define aaesim_CPPMANIFEST_BUILD_C_VERSION_STR CPPMANIFEST_MAKE_STR(21.0.0.21000101) -#define aaesim_CPPMANIFEST_BUILD_CXX_VERSION_STR CPPMANIFEST_MAKE_STR(21.0.0.21000101) - -//! Build system info -#define aaesim_CPPMANIFEST_BUILDSYSTEMNAME_STR CPPMANIFEST_MAKE_STR(Darwin) -#define aaesim_CPPMANIFEST_BUILDSYSTEMVERSION_STR CPPMANIFEST_MAKE_STR(25.5.0) -#define aaesim_CPPMANIFEST_BUILDSYSTEMPROCESSOR_STR CPPMANIFEST_MAKE_STR(arm64) -#define aaesim_CPPMANIFEST_BUILDHOSTNAME_STR CPPMANIFEST_MAKE_STR(MM292068 - PC) - -//! Git SCM info -#define aaesim_CPPMANIFEST_GIT_BRANCH CPPMANIFEST_MAKE_STR(refs / heads / master) -#define aaesim_CPPMANIFEST_GIT_HASH CPPMANIFEST_MAKE_STR(b833018dd29fc1dc892a330cff0a8b0dfe9bc367) -#define aaesim_CPPMANIFEST_GIT_TAG CPPMANIFEST_MAKE_STR() -#define aaesim_CPPMANIFEST_GIT_LOCAL_CHANGES CPPMANIFEST_MAKE_STR(CLEAN) - -//! This is CPPMANIFEST version number as a string. -//! Do not wrap the suffix in quotes, but it may be left empty for a release -#define aaesim_CPPMANIFEST_VERSION_STR CPPMANIFEST_MAKE_VERSION_STR(5, 3, 1, 0) - -#endif diff --git a/include/cppmanifest/cppmanifest.h b/include/cppmanifest/cppmanifest.h deleted file mode 100644 index 26e0719..0000000 --- a/include/cppmanifest/cppmanifest.h +++ /dev/null @@ -1,98 +0,0 @@ -// THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, -// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -// FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -// APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- -// DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -/* - * This is just an aggregator header file. - */ - -#if !defined(aaesim_CPPMANIFEST_H) -#define aaesim_CPPMANIFEST_H - -#if defined(aaesim_CPPMANIFEST_HAVE_PRAGMA_ONCE) -#pragma once -#endif - -#include "build_info.h" - -namespace aaesim { -namespace cppmanifest { -static std::string BUILDINFO_CLI_FLAG = "--buildinfo"; -static std::string CLEAN_STR = "CLEAN"; -static std::string DIRTY_STR = "DIRTY"; - -static std::string GetUserName() { return aaesim_CPPMANIFEST_USERNAME_STR; } - -static std::string GetBuildTimeStamp() { return aaesim_CPPMANIFEST_BUILDTIMESTAMP_STR; } - -static std::string GetBuildCompilerVersion() { return aaesim_CPPMANIFEST_BUILD_CXX_VERSION_STR; } - -static std::string GetBuildSystemVersion() { return aaesim_CPPMANIFEST_BUILDSYSTEMVERSION_STR; } - -static std::string GetBuildSystemName() { return aaesim_CPPMANIFEST_BUILDSYSTEMNAME_STR; } - -static std::string GetBuildSystemProcessor() { return aaesim_CPPMANIFEST_BUILDSYSTEMPROCESSOR_STR; } - -static std::string GetBuildHostName() { return aaesim_CPPMANIFEST_BUILDHOSTNAME_STR; } - -static std::string GetGitBranch() { return aaesim_CPPMANIFEST_GIT_BRANCH; } - -static std::string GetGitHash() { return aaesim_CPPMANIFEST_GIT_HASH; } - -static std::string GetGitTag() { return aaesim_CPPMANIFEST_GIT_TAG; } - -static bool GetGitIsClean() { - if (CLEAN_STR.compare(aaesim_CPPMANIFEST_GIT_LOCAL_CHANGES) == 0) - return 1; - else - return 0; -} - -static std::string GetVersion() { - std::string version_str(aaesim_CPPMANIFEST_VERSION_STR); - bool stripLastChar = version_str.find("-") == version_str.length() - 1; - if (stripLastChar) { - // dump the last char - version_str.resize(version_str.find("-")); - } - return version_str; -} - -static void PrintMetaData() { - std::cout << "Build version: " << GetVersion() << std::endl; - std::cout << "Created-by: " << GetUserName() << std::endl; - std::cout << "Created-on: " << GetBuildTimeStamp() << std::endl; - std::cout << "Built with GCC version: " << GetBuildCompilerVersion() << std::endl; - std::cout << "Built on system name: " << GetBuildSystemName() << std::endl; - std::cout << "Built on system processor: " << GetBuildSystemProcessor() << std::endl; - std::cout << "Built with system ver: " << GetBuildSystemVersion() << std::endl; - std::cout << "Built on system hostname: " << GetBuildHostName() << std::endl; - std::cout << "Built from git branch: " << GetGitBranch() << std::endl; - if (GetGitIsClean()) - std::cout << "Built from git hash: " << GetGitHash() << std::endl; - else - std::cout << "Built from git hash: " << GetGitHash() << "-" << DIRTY_STR << std::endl; -} - -static void ProcessCommandLineArgs(int argc, char *argv[]) { - for (auto i = 0; i < argc; ++i) { - if (BUILDINFO_CLI_FLAG.compare(argv[i]) == 0) { - PrintMetaData(); - break; - } - } -} -} // namespace cppmanifest -} // namespace aaesim - -#endif -/* - * Do not put content below here. - */ From 5e97ecb5c957ae4fdaed25b22684ad44cd1b37ad Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 14:15:24 -0400 Subject: [PATCH 5/6] chore: 5.3.3 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b76307c..f91c2bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(aaesim VERSION 5.3.2) +project(aaesim VERSION 5.3.3) set (CMAKE_CXX_STANDARD 20) From a7a11bf59865717d775236112502f38c41dcab98 Mon Sep 17 00:00:00 2001 From: Stuart Bowman Date: Tue, 30 Jun 2026 14:46:42 -0400 Subject: [PATCH 6/6] chore: ci stabilization tweak --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b5814b..234da17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,6 @@ jobs: container: '' install: | brew update - brew upgrade - os: ubuntu-latest container: rockylinux:9 install: |