Skip to content

v1.1.6: Unified CMake build with nanobench benchmarks

Choose a tag to compare

@luk036 luk036 released this 06 Aug 02:25
· 13 commits to master since this release

v1.1.6 β€” Unified CMake build with nanobench benchmarks

πŸ—οΈ Build System

  • Unify library, tests, examples, benchmarks, standalone and documentation into a single root CMakeLists.txt; remove the all/, standalone/, test/, examples/ and documentation/ subprojects along with bench/CMakeLists.txt, specific.cmake and the cmake/ helper modules
  • Add per-component build options: ECGEN_BUILD_TESTS, ECGEN_BUILD_BENCHMARKS, ECGEN_BUILD_STANDALONE, ECGEN_BUILD_DOCS, ECGEN_ENABLE_CLANG_TIDY and ECGEN_ENABLE_COVERAGE
  • Declare the installed-package dependency Py2Cpp 1.6.4 in packageProject

⚑ Performance

  • Replace Google Benchmark with nanobench (BM_EMK.cpp, BM_set_partition.cpp) β€” header-only, no BENCHMARK_MAIN, with instruction/branch counters via doNotOptimizeAway
  • Prefer a system-installed fmt and avoid recompiling doctest on every CPM build

πŸ› Fixes

  • Use SPDLOG_FMT_EXTERNAL when a system fmt is found to avoid duplicate symbols
  • Tell CPM that fmt is already handled to prevent duplicate target conflicts
  • Rework the standalone EcGen demo to use the real emk_comb_gen API with --size / --comb-size options
  • Link coverage flags into SPDLOGGER_EXAMPLE and drop an unused #include <vector>

πŸ§ͺ Tests

  • Add a test_installed consumer test that find_package(EcGen) and checks the installed version header

πŸ“– Documentation

  • Update the README for the single-root build layout (cmake -B build, ctest --test-dir build)

πŸ”§ Maintenance

  • Switch GitHub Actions workflows to the single-root build and drop stale .bak backups

Full Changelog: v1.1.5...v1.1.6