Missing case in `blt_patch_target` and `blt_determine_scope`
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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