Repository navigation
v1.1.6: Unified CMake build with nanobench benchmarks
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 theall/,standalone/,test/,examples/anddocumentation/subprojects along withbench/CMakeLists.txt,specific.cmakeand thecmake/helper modules - Add per-component build options:
ECGEN_BUILD_TESTS,ECGEN_BUILD_BENCHMARKS,ECGEN_BUILD_STANDALONE,ECGEN_BUILD_DOCS,ECGEN_ENABLE_CLANG_TIDYandECGEN_ENABLE_COVERAGE - Declare the installed-package dependency
Py2Cpp 1.6.4inpackageProject
β‘ Performance
- Replace Google Benchmark with nanobench (
BM_EMK.cpp,BM_set_partition.cpp) β header-only, noBENCHMARK_MAIN, with instruction/branch counters viadoNotOptimizeAway - Prefer a system-installed fmt and avoid recompiling doctest on every CPM build
π Fixes
- Use
SPDLOG_FMT_EXTERNALwhen a system fmt is found to avoid duplicate symbols - Tell CPM that fmt is already handled to prevent duplicate target conflicts
- Rework the standalone
EcGendemo to use the realemk_comb_genAPI with--size/--comb-sizeoptions - Link coverage flags into
SPDLOGGER_EXAMPLEand drop an unused#include <vector>
π§ͺ Tests
- Add a
test_installedconsumer test thatfind_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
.bakbackups
Full Changelog: v1.1.5...v1.1.6