Skip to content

Conversation

@sean-parent
Copy link
Member

@sean-parent sean-parent commented Dec 18, 2025

Streamlines and clarifies the README with concise instructions, improved troubleshooting, and updated dependency tracking guidance. Enhances cpp-library's CMake install logic to distinguish between development and install modes for untracked dependencies: now, configuration emits warnings and uses fallbacks for local builds, but installation fails with a clear error if dependencies are not properly tracked. Adds install-time validation to prevent broken package configs and updates user guidance for mapping and tracking dependencies.


Note

Streamlines README and updates CMake to warn and fallback on untracked deps during configure, but fail installs with new validation that prevents broken package configs.

  • Build/CMake:
    • Untracked dependencies: Now lenient during configure (status notices + fallback) and strict during install (fails when _CPP_LIBRARY_IN_INSTALL_MODE is set).
    • Install-time validation: Add deferred _cpp_library_setup_install_validation that reads a generated <Package>_unverified_deps.cmake and validates before installing configs/exports.
    • Config generation: Deferred _cpp_library_deferred_generate_config now writes unverified deps file and tracks presence via globals.
    • Messaging/Guidance: Clearer errors and instructions; non-namespaced target guidance updated (map after find_package()/CPMAddPackage()).
  • Docs (README):
    • Condensed/clarified setup and requirements; refined CPM/repo naming/versioning guidance.
    • Expanded dependency tracking docs with “Untracked Dependencies” section and solutions.
    • Updated examples (e.g., OpenCV mapping, BUILD_INTERFACE usage) and streamlined presets/testing/templates sections.

Written by Cursor Bugbot for commit e94509a. This will update automatically on new commits. Configure here.

Streamlines and clarifies the README with concise instructions, improved troubleshooting, and updated dependency tracking guidance. Enhances cpp-library's CMake install logic to distinguish between development and install modes for untracked dependencies: now, configuration emits warnings and uses fallbacks for local builds, but installation fails with a clear error if dependencies are not properly tracked. Adds install-time validation to prevent broken package configs and updates user guidance for mapping and tracking dependencies.
Now outputs all unverified dependencies, not just the first one.
Moves export and config file installation steps into the deferred validation function to ensure install-time validation runs before any config files are written. This prevents broken or incomplete config files from being installed if dependency validation fails.
Reorders cmake_language(DEFER) calls to ensure install validation is registered before config generation, taking into account LIFO execution. This guarantees validation runs after config generation as intended.
@sean-parent sean-parent merged commit 29a599a into main Dec 18, 2025
4 checks passed
@sean-parent sean-parent deleted the sean-parent/untracked-fixes branch December 18, 2025 08:51
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