Fixing version check#18
Merged
Merged
Conversation
…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>
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.
45c82c5 to
1861172
Compare
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
-staticsuffix to static library name to avoid issues on Windows.