llnl / llnl/blt

Missing case in `blt_patch_target` and `blt_determine_scope`

Open
#658 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
296
Forks
66
Avg merge
1h 3m
Merged PRs (30d)
1

Description

We are missing a case where we need to downscope from `PUBLIC` to `INTERFACE` in a couple places.

Truncated output from user:

```
-- [foo property] 'foo' is a CMake target
-- [foo property] IMPORTED: TRUE
-- [foo property] NAME: foo
-- [foo property] TYPE: STATIC_LIBRARY
```

Error:

```
CMake Error at /blt/cmake/BLTMacros.cmake:467 (target_link_libraries):
IMPORTED library can only be used with the INTERFACE keyword of
target_link_libraries
Call Stack (most recent call first):
cmake/thirdparty/SetupAxomThirdParty.cmake:214 (blt_patch_target)
cmake/CMakeBasics.cmake:20 (include)
CMakeLists.txt:126 (include)

```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in BLTMacros.cmake at blt_patch_target and blt_determine_scope, then inspect the call from SetupAxomThirdParty.cmake:214. Reproduce the imported STATIC_LIBRARY configuration shown in the issue and trace how PUBLIC is selected. Done means the configuration no longer passes PUBLIC for this imported target and uses INTERFACE where required.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.