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.