Skip to content

Investigate imported-target workaround in downstream consumers; fix or simplify #88

Description

@joshkamm

ZEST's CMakeLists (CMakeLists.txt:45-118) contains ~74 lines of diagnostics and find_library fallback for SlaterGPU::io and SlaterGPU::cintw, with comments suggesting these targets sometimes appear without IMPORTED_LOCATION. XCtera's CMakeLists (CMakeLists.txt:38-49) has a slimmer version of the same fallback.

SlaterGPU's actual install/export setup (src/CMakeLists.txt:13-30) does correctly install SlaterGPU, io, and cintw to EXPORT SlaterGPUTargets. So the fallback may be vestigial defensive code from a past defect.

Goal

Determine the truth of the matter and act on it.

Investigation steps

  1. Build ZEST against a clean SlaterGPU install. Inspect the actual values of IMPORTED_LOCATION, IMPORTED_LOCATION_RELEASE, and IMPORTED_IMPLIB on SlaterGPU::io and SlaterGPU::cintw — the message(STATUS ...) calls at ZEST/CMakeLists.txt:53-92 already print these — read them.
  2. If properties are populated correctly: open follow-up PRs in ZEST and XCtera to delete the fallback (this issue closes as "no source fix needed; consumers will be simplified separately").
  3. If properties are missing: identify the install/export step that's incomplete (likely something about SHARED libs missing the LIBRARY DESTINATION interaction, or build-type-specific IMPORTED_LOCATION_<CONFIG> not being set). Fix in SlaterGPU.

Legacy workflow impact

Low. Paul's Makefile doesn't use find_package(SlaterGPU). Manual CMake builds (no pixi) benefit from any source fix.

Acceptance

  • Either: SlaterGPU's exported imported targets carry IMPORTED_LOCATION correctly, and ZEST/XCtera CMakeLists drop the fallback in their respective follow-up PRs.
  • Or: confirmed working as-is and the workaround is documented as removable; follow-up cleanup PRs are filed against ZEST and XCtera.

Context

Part of a broader dependency-infrastructure effort tracked in ZimmermanGroup/XCtera (umbrella tracking issue will be linked once filed).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions