KhronosGroup / KhronosGroup/glslang
Silent C++ runtime dependence
- Dominant language
- C++
- Stars
- 3.6k
- Forks
- 989
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 31
Description
On Linux (but possibly Windows as well) when consuming glslang as a static library - as is the default with Vcpkg (which is how I found this bug) - in a C application, the `glslang::glslang` target silently depends on libstdc++.
If the project exports a C API, it likely wants to link the C++ runtime statically into itself when it is built as a static library. See WHOLE_ARCHIVE in the CMake docs.
Contributor guide
Research direction
Start with the glslang::glslang CMake target and the CMake documentation for WHOLE_ARCHIVE. Reproduce a static-library build consumed by a C application through Vcpkg, then verify that the exported target handles its C++ runtime dependency without requiring consumers to discover it themselves.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100