Skip to content

Support explicit library types and independent nested package installs - #27

Open
sean-parent wants to merge 5 commits into
mainfrom
execution-support
Open

sean-parent wants to merge 5 commits into
mainfrom
execution-support

Conversation

@sean-parent

Copy link
Copy Markdown
Member

Summary

  • Add optional LIBRARY_TYPE STATIC|SHARED without changing default BUILD_SHARED_LIBS behavior.
  • Add optional INSTALL_OPTION and target-scoped deferred install metadata, allowing independent same-namespace package installation.
  • Preserve existing toolkit behavior when the new options are omitted; document and run the regressions in CI.

This enables the standalone stlab/stlab-execution extraction and STLab's transitive dependency.

Validation

  • 11 real target-type configure cases passed, including missing/invalid arguments and header-only defaults.
  • 10 nested configure/build/install/consumer cases passed, including independent flags and isolated invalid dependencies.
  • Existing dependency/provider/version baselines passed (dependency summary retains its existing one skipped case).
  • Final local cross-repository review approved the assembled extraction.

No release is created by this PR. Merge/release this support before publishing execution, then STLab.

Generated with GitHub Copilot CLI

sean-parent and others added 3 commits October 1, 2026 19:46
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The installed parent target drops its transitive leaf linkage because the dependency is build-interface-only.

Review effort: Balanced
Findings: 1 Medium severity

Open (1)
What changed in this PR

Adds explicit compiled-library types and package-specific install controls for nested libraries.

Changes:

  • Adds LIBRARY_TYPE STATIC|SHARED and INSTALL_OPTION.
  • Scopes deferred installation metadata per target.
  • Adds nested-install and target-type regressions to CI.
File Description
cpp-library.cmake Parses and forwards new options.
cmake/​cpp-library-setup.cmake Creates explicit static/shared targets.
cmake/​cpp-library-install.cmake Adds independent install options and target-scoped metadata.
README.md Documents new APIs and regressions.
.github/​workflows/​ci.yml Runs added tests.
tests/​setup/​test_target_type.cmake Tests target-type behavior and diagnostics.
tests/​setup/​fixtures/​target_type/​CMakeLists.txt Configures target-type cases.
tests/​setup/​fixtures/​target_type/​src/​sample.cpp Provides compiled fixture source.
tests/​setup/​fixtures/​target_type/​include/​fixture/​sample.hpp Provides fixture API.
tests/​install/​test_nested_install.cmake Exercises nested installation scenarios.
tests/​install/​fixtures/​nested/​CMakeLists.txt Defines the parent package and dependency.
tests/​install/​fixtures/​nested/​include/​stlab/​parent.hpp Provides parent fixture API.
tests/​install/​fixtures/​nested/​leaf/​CMakeLists.txt Defines the nested leaf package.
tests/​install/​fixtures/​nested/​leaf/​include/​stlab/​leaf.hpp Provides leaf fixture API.
tests/​install/​fixtures/​consumer/​CMakeLists.txt Configures the installed-package consumer.
tests/​install/​fixtures/​consumer/​main.cpp Exercises installed fixture APIs.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread tests/install/fixtures/nested/CMakeLists.txt Outdated
sean-parent and others added 2 commits October 2, 2026 01:21
Exercise transitive linkage with a compiled leaf and a parent-only consumer. Document deferred install-interface target resolution for separately installed dependencies.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@sean-parent
sean-parent requested a balanced review from Copilot October 2, 2026 08:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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