Skip to content

Conversation

@tanmoyPaul12
Copy link

Fixes #810

Reason for this PR

The current CMake installation logic in GraphAr does not reliably support
library distribution and downstream consumption, especially on Windows.

This PR addresses the CMake install and export issues discussed in #810
and makes runtime installation behavior consistent across platforms.

What changes are included in this PR?

  • Remove duplicate and conflicting install logic for the graphar target
  • Define a single canonical install(TARGETS graphar ...) rule
  • Ensure headers and CMake package config files are installed correctly
  • Fix Windows runtime (DLL) installation issues during cmake --install
  • Validate installation with MSVC + vcpkg + Apache Arrow

Are these changes tested?

  • Windows 11
  • MSVC (Visual Studio 2026)
  • CMake + vcpkg
  • Apache Arrow installed via vcpkg (arrow[dataset,parquet])
  • Verified:
    • cmake --build . --config Release
    • cmake --install . --config Release
    • Generated headers and CMake config files

Are there any user-facing changes?

No. This change affects CMake install and packaging behavior only and does not
modify GraphAr APIs or runtime behavior.

@codecov-commenter
Copy link

codecov-commenter commented Dec 30, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.18%. Comparing base (bac3630) to head (0d11cb8).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #819      +/-   ##
============================================
+ Coverage     77.17%   77.18%   +0.01%     
  Complexity      607      607              
============================================
  Files            84       85       +1     
  Lines          8854     8858       +4     
  Branches       1043     1043              
============================================
+ Hits           6833     6837       +4     
  Misses         1781     1781              
  Partials        240      240              
Flag Coverage Δ
cpp 71.52% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yangxk1
Copy link
Contributor

yangxk1 commented Jan 5, 2026

Hi @tanmoyPaul12 Thanks for the update! This PR improves the installation paths (especially for Windows), but it doesn't fully resolve #810 yet.

To fully support find_package(GraphAr) and the requested distribution goals, we still need:

  1. The install(EXPORT ...) command to actually generate and install the CMake target files.
  2. The RPATH configuration (e.g., $ORIGIN) and the hybrid linking strategy mentioned in the issue discussion.

Could you please address these points?

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.

feat(c++): Improve CMakeLists.txt for portable library distribution and installation

3 participants