Skip to content

Fixing version check#18

Merged
mikucionisaau merged 19 commits into
mainfrom
fixing_version_check
Jul 2, 2026
Merged

Fixing version check#18
mikucionisaau merged 19 commits into
mainfrom
fixing_version_check

Conversation

@mikucionisaau

@mikucionisaau mikucionisaau commented May 11, 2026

Copy link
Copy Markdown
Member
  • added use-case example project and fixed CMake exports
  • moved nlohmann_json header-only dependency into private
  • replaced boost.program_options with custom CLI parser
  • replaced boost.test with doctest
  • removed dependency on boost
  • added -static suffix to static library name to avoid issues on Windows.
  • added compiler warnings and refactored SimpleTree and libz2s private sections.

petergjoel and others added 11 commits December 28, 2023 11:25
…tic targets

$<TARGET_OBJECTS:SimpleTree> only contributes compiled objects, not transitive
include directories, so strategy/strategyStatic could not find nlohmann/json_fwd.hpp.
Since nlohmann_json is header-only, pull in its include dirs directly via
target_include_directories to avoid creating an unexportable link dependency.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Corrected --test-dit typo to --test-dir in ctest command
- Fixed stale build-libonly reference in prose (renamed to build-quick)
- Corrected description: quick-release builds Release only, not Debug+Release
- Added enable_testing() to example/CMakeLists.txt so ctest can discover tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Moved SimpleTree::node_t definition to SimpleTree.cpp so that
  SimpleTree.h no longer depends on nlohmann_json (avoids leaking
  the dependency to consumers of the installed library)
- Added Rule of Five to SimpleTree: copy disabled, move noexcept;
  destructor and move assignment defined in .cpp where node_t is complete
- Added INSTALL_INTERFACE include dirs to strategy/strategyStatic targets
  so installed consumers find libstrategy headers via cmake
- Fixed FIND_PACKAGE_ARGS version (1.1.2 -> 1.0.9) in libstrategy.cmake
  so the example uses the locally installed library instead of fetching
- Removed nlohmann_json from example/CMakeLists.txt (no longer needed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…c name

- Added INSTALL_INTERFACE include dirs to strategy and strategyStatic so
  installed consumers get the libstrategy headers on their include path
- Added find_dependency(ptrie) to config template so downstream
  find_package(libstrategy) resolves ptrie::ptrie without extra setup
- Added libz2s.h to install(FILES) — it declares the public C/FFI API
- Replaced VISIBILITY_INLINE_HIDDEN (typo, no-op) with
  CMAKE_VISIBILITY_INLINES_HIDDEN so the flag applies to OBJECT targets
- Renamed static archive to strategy-static to avoid strategy.lib
  collision with the shared library import lib on Windows
- Split ZonotopStrategy and libz2s into separate OBJECT libraries so
  each source unit declares its own dependencies explicitly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
mikucionisaau and others added 6 commits June 30, 2026 13:39
Targets x86_64-w64-mingw32-gcc/g++ with windres for resource files.
Sets CMAKE_FIND_ROOT_PATH to /usr/x86_64-w64-mingw32 with NEVER/ONLY
modes so host tools are used as-is while libraries and headers are
searched only in the target sysroot.

Usage:
  cmake --preset multi -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/mingw-w64-x86_64.cmake

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ostConfig

With CMP0167 NEW (CMake ≥3.30), find_package(Boost) uses Boost's own
BoostConfig.cmake instead of CMake's legacy FindBoost. BoostConfig only
creates compiled-library targets (Boost::program_options, etc.) for
explicitly requested COMPONENTS; without them the find succeeds on headers
alone, FetchContent treats Boost as "already found", and no component
targets are ever defined. Adding COMPONENTS to FIND_PACKAGE_ARGS ensures
the targets exist whether Boost is found in-tree or fetched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Without CMAKE_RUNTIME_OUTPUT_DIRECTORY, Ninja Multi-Config places each
target's DLL/exe in its subdirectory's binary dir (src/Debug/,
test/Debug/, ...). Windows DLL search checks the application directory
first, so test executables in test/Debug/ can't find strategy.dll in
src/Debug/. Setting CMAKE_RUNTIME_OUTPUT_DIRECTORY="${CMAKE_BINARY_DIR}"
makes all DLLs and executables land in the same per-config directory
(Debug/, Release/) so Windows loads the DLL from the application
directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Removes the z2s executable's dependency on Boost.ProgramOptions,
using a small string_view/from_chars-based argument parser instead.
Boost is now only fetched/linked for the unit_test_framework used
by the test suite.
@mikucionisaau mikucionisaau force-pushed the fixing_version_check branch from 45c82c5 to 1861172 Compare July 1, 2026 12:54
mikucionisaau and others added 2 commits July 1, 2026 14:06
AppleClang's libc++ doesn't implement the double overload of
std::from_chars yet, so gate it behind __cpp_lib_to_chars and fall
back to std::stod otherwise.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@mikucionisaau mikucionisaau merged commit 71451f4 into main Jul 2, 2026
5 checks passed
@mikucionisaau mikucionisaau deleted the fixing_version_check branch July 2, 2026 12:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants