libshaderc
A library for compiling shader strings into SPIR-V.
Build Artifacts
There are two main shaderc libraries that are created during a CMake
compilation. The first is libshaderc, which is a static library
containing just the functionality exposed by libshaderc. It depends
on other compilation targets glslang, shaderc_util, SPIRV,
SPIRV-Tools, and SPIRV-Tools-opt.
The other is libshaderc_combined, which is a static library containing
libshaderc and all of its dependencies.
Integrating libshaderc
There are several ways of integrating libshaderc into external projects.
-
If the external project uses CMake, then
shaderc/CMakeLists.txtcan be included into the external project's CMake configuration and shaderc can be used as a link target. This is the simplest way to use libshaderc in an external project. -
If the external project uses CMake and is building for Linux or Android,
target_link_libraries(shaderc_combined)can instead be specified. This is functionally identical to the previous option. -
If the external project does not use CMake, then the external project can instead directly use the generated libraries.
shaderc/libshaderc/includeshould be added to the include path, andbuild/libshaderc/libshaderc_combined.ashould be linked. Note that on some platforms-lpthreadshould also be specified. -
If the external project does not use CMake and cannot use
libshaderc_combined, the following libraries or their platform-dependent counterparts should be linked in the order specified.
build/libshaderc/libshaderc.abuild/third_party/glslang/glslang/glslang.abuild/third_party/glslang/libglslang.abuild/shaderc_util/libshaderc_util.abuild/third_party/glslang/SPIRV/libSPIRV.abuild/third_party/spirv-tools/libSPIRV-Tools-opt.abuild/third_party/spirv-tools/libSPIRV-Tools.a
- If building for Android using the Android NDK,
shaderc/Android.mkcan be included in the application'sAndroid.mkandLOCAL_STATIC_LIBRARIES:=shaderccan be specified. Seeshaderc/android_testfor an example.