Closed SpaceIm closed 1 week ago
More generally I'd like to see the different cmake targets of glslang be documented. Some are kind of self-explanatory, but for some it is not clear which one's you are supposed to use for a given task. Alternatively (or additionally) it would be good to have the headers belonging to a specific target be in a subdir indicating what target it belongs to. Then one can deduce what target to link against by what headers one used.
libglslang.so and libSPIRV.so have been combined into one library, so this shouldn't be an issue anymore.
I'm trying to package glslang 8.13.3743 for conan. In this toy example, glslang built as a shared lib has undefined references to SPIRV symbols:
As you can see I assume that SPIRV depends on glslang, based on CMakeLists.txt in SPIRV folder: https://github.com/KhronosGroup/glslang/blob/bcf6a2430e99e8fc24f9f266e99316905e6d5134/SPIRV/CMakeLists.txt#L67
So now I'm confused, does glslang depend on SPIRV (and SPIRV on glslang)?
I didn't have these undefined symbols with 8.13.3559 with the same linking order.
EDIT: Seems like this dependency of glslang to SPIRV comes from this new compilation unit in glslang target:
glslang_c_interface.cpp
. If internal implementation of C interface depends on glslang and SPIRV, while SPIRV depends on glslang, it would be probably a better idea to have a new specific lib for C interface in order to break circular dependencies, something like this: