Repository navigation
Conversation
Keep the external runtime namespaced so exported IPC targets do not depend on a caller-defined flatccrt target or link-directory settings. Resolve configuration-specific runtime libraries when finding the package, including after relocating a combined install prefix. Exercise real build-tree and installed-package consumers on Windows, Linux, and macOS CI without downloading test dependencies. Preserve vendored flatcc exports and document installed-package consumption. Files changed: - CMakeLists.txt - cmake/config.cmake.in - ci/scripts/test_cmake_package.py - .github/workflows/build-and-test-ipc.yaml - examples/cmake-ipc/README.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7f6f6eb9-6891-4b8c-8e40-e252aec061d4
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #963 +/- ##
=======================================
Coverage 78.24% 78.24%
=======================================
Files 106 106
Lines 16867 16867
Branches 1993 1993
=======================================
Hits 13198 13198
Misses 2437 2437
Partials 1232 1232 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This branch has not been deployed
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.
Problem
With
NANOARROW_IPC=ONand an external flatcc runtime, the exported static IPC target contains$<LINK_ONLY:flatccrt>, but the package does not define that target for its consumers. Standalone consumers therefore depend on incidental caller-defined targets or linker search paths. This affects build-tree exports as well as installed packages.The vcpkg port currently compensates on Windows by replacing this dependency with a Release-only library path; Unix consumers are left with the bare library name. A source-level fix lets package maintainers remove that workaround when updating nanoarrow.
Related to #922. This addresses exported dependency metadata, separately from #949's build-time static/shared runtime discovery.
Changes
nanoarrow::flatccrt, rather than an alias of an unqualified imported target. CMake resolves imported aliases back to the underlying name when exporting them.Validation
Windows (Visual Studio 2026 / MSVC 19.51) and Linux (WSL / GCC 13.3):
flatccrtdeclared both before and after package discovery.find_package(... QUIET).flatccrt-NOTFOUND, demonstrating that the test detects the original export defect.Regression entry point, from the repository root:
On Windows the local run explicitly selected
CMAKE_GENERATOR=Visual Studio 18 2026.CMake formatting (0.6.13), Black (22.3.0), Flake8 (7.1.1), isort (5.12.0), codespell, workflow YAML parsing, and
git diff --checkpassed. No runtime tests in these selections were skipped or excluded. Native macOS was not available locally; the added CI job covers it.AI assistance: GitHub Copilot assisted with implementation and regression coverage.