KhronosGroup / KhronosGroup/glslang

Namespace CMake build options

Open
#1,816 3 comments 3 reactions 0 assignees View on GitHub
Infrastructure
Dominant language
C++
Stars
3.6k
Forks
989
Avg merge
1d 2h
Merged PRs (30d)
31

Description

Glslang now uses very generic names for CMake options such as `BUILD_SHARED_LIBS`. This may cause conflicts/confusion when integrating glslang in larger projects (https://github.com/DiligentGraphics/DiligentEngine/issues/45).
It is preferred to namespace global settings such as `GLSLANG_BUILD_SHARED_LIBS` (similar to for instance how [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Tools/blob/master/CMakeLists.txt#L66) does that) to clearly separate them.

Contributor guide

Open the contributing guide

Research direction

Start by inspecting glslang's CMake configuration and the global options it defines, then compare the naming approach in the referenced SPIRV-Tools CMakeLists.txt. Namespace the generic settings consistently and verify that the project still configures and builds when integrated into a larger CMake project.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.