mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-18 19:59:54 +00:00
Merge ancillary libraries into main glslang library and stub originals
This commit is contained in:
parent
0dc6711e5a
commit
4f01996c9d
43
Android.mk
43
Android.mk
@ -59,9 +59,8 @@ include $(CLEAR_VARS)
|
|||||||
LOCAL_MODULE:=OSDependent
|
LOCAL_MODULE:=OSDependent
|
||||||
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||||
LOCAL_SRC_FILES:=glslang/OSDependent/Unix/ossource.cpp
|
LOCAL_SRC_FILES:=glslang/stub.cpp
|
||||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) $(LOCAL_PATH)/glslang/OSDependent/Unix/
|
LOCAL_C_INCLUDES:=$(LOCAL_PATH)
|
||||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/OSDependent/Unix/
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
@ -73,7 +72,8 @@ $(LOCAL_PATH)/glslang/MachineIndependent/ShaderLang.cpp: \
|
|||||||
|
|
||||||
LOCAL_MODULE:=glslang
|
LOCAL_MODULE:=glslang
|
||||||
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti $(GLSLANG_DEFINES)
|
||||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH) \
|
||||||
|
$(LOCAL_PATH)/glslang/OSDependent/Unix
|
||||||
LOCAL_SRC_FILES:= \
|
LOCAL_SRC_FILES:= \
|
||||||
glslang/CInterface/glslang_c_interface.cpp \
|
glslang/CInterface/glslang_c_interface.cpp \
|
||||||
glslang/GenericCodeGen/CodeGen.cpp \
|
glslang/GenericCodeGen/CodeGen.cpp \
|
||||||
@ -112,12 +112,24 @@ LOCAL_SRC_FILES:= \
|
|||||||
glslang/MachineIndependent/preprocessor/PpContext.cpp \
|
glslang/MachineIndependent/preprocessor/PpContext.cpp \
|
||||||
glslang/MachineIndependent/preprocessor/Pp.cpp \
|
glslang/MachineIndependent/preprocessor/Pp.cpp \
|
||||||
glslang/MachineIndependent/preprocessor/PpScanner.cpp \
|
glslang/MachineIndependent/preprocessor/PpScanner.cpp \
|
||||||
glslang/MachineIndependent/preprocessor/PpTokens.cpp
|
glslang/MachineIndependent/preprocessor/PpTokens.cpp \
|
||||||
|
glslang/OSDependent/Unix/ossource.cpp
|
||||||
|
SPIRV/CInterface/spirv_c_interface.cpp \
|
||||||
|
SPIRV/GlslangToSpv.cpp \
|
||||||
|
SPIRV/InReadableOrder.cpp \
|
||||||
|
SPIRV/Logger.cpp \
|
||||||
|
SPIRV/SPVRemapper.cpp \
|
||||||
|
SPIRV/SpvBuilder.cpp \
|
||||||
|
SPIRV/SpvPostProcess.cpp \
|
||||||
|
SPIRV/SpvTools.cpp \
|
||||||
|
SPIRV/disassemble.cpp \
|
||||||
|
SPIRV/doc.cpp
|
||||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) \
|
LOCAL_C_INCLUDES:=$(LOCAL_PATH) \
|
||||||
$(LOCAL_PATH)/glslang/MachineIndependent \
|
$(LOCAL_PATH)/glslang/MachineIndependent \
|
||||||
|
$(LOCAL_PATH)/glslang/OSDependent/Unix \
|
||||||
|
$(LOCAL_PATH)/SPIRV \
|
||||||
$(GLSLANG_GENERATED_INCLUDEDIR) \
|
$(GLSLANG_GENERATED_INCLUDEDIR) \
|
||||||
$(GLSLANG_OUT_PATH)
|
$(GLSLANG_OUT_PATH)
|
||||||
LOCAL_STATIC_LIBRARIES:=OSDependent
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
@ -128,20 +140,7 @@ $(LOCAL_PATH)/SPIRV/GlslangToSpv.cpp: \
|
|||||||
|
|
||||||
LOCAL_MODULE:=SPIRV
|
LOCAL_MODULE:=SPIRV
|
||||||
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES)
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror $(GLSLANG_DEFINES)
|
||||||
LOCAL_SRC_FILES:= \
|
LOCAL_SRC_FILES:=glslang/stub.cpp
|
||||||
SPIRV/CInterface/spirv_c_interface.cpp \
|
LOCAL_C_INCLUDES:=$(LOCAL_PATH)
|
||||||
SPIRV/GlslangToSpv.cpp \
|
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)
|
||||||
SPIRV/InReadableOrder.cpp \
|
|
||||||
SPIRV/Logger.cpp \
|
|
||||||
SPIRV/SPVRemapper.cpp \
|
|
||||||
SPIRV/SpvBuilder.cpp \
|
|
||||||
SPIRV/SpvPostProcess.cpp \
|
|
||||||
SPIRV/SpvTools.cpp \
|
|
||||||
SPIRV/disassemble.cpp \
|
|
||||||
SPIRV/doc.cpp
|
|
||||||
LOCAL_C_INCLUDES:=$(LOCAL_PATH) \
|
|
||||||
$(LOCAL_PATH)/glslang/SPIRV \
|
|
||||||
$(GLSLANG_GENERATED_INCLUDEDIR)
|
|
||||||
LOCAL_EXPORT_C_INCLUDES:=$(LOCAL_PATH)/glslang/SPIRV
|
|
||||||
LOCAL_STATIC_LIBRARIES:=glslang
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
@ -97,6 +97,7 @@ option(GLSLANG_TESTS "Enable glslang testing" ${GLSLANG_TESTS_DEFAULT})
|
|||||||
# Always expose this as an option, so the defaults can be overridden.
|
# Always expose this as an option, so the defaults can be overridden.
|
||||||
option(GLSLANG_ENABLE_INSTALL "Enable glslang installation" ${GLSLANG_ENABLE_INSTALL_DEFAULT})
|
option(GLSLANG_ENABLE_INSTALL "Enable glslang installation" ${GLSLANG_ENABLE_INSTALL_DEFAULT})
|
||||||
|
|
||||||
|
option(ENABLE_SPIRV "Enables SPIRV output support" ON)
|
||||||
option(ENABLE_SPVREMAPPER "Enables building of SPVRemapper" ON)
|
option(ENABLE_SPVREMAPPER "Enables building of SPVRemapper" ON)
|
||||||
|
|
||||||
option(ENABLE_GLSLANG_BINARIES "Builds glslang and spirv-remap" ON)
|
option(ENABLE_GLSLANG_BINARIES "Builds glslang and spirv-remap" ON)
|
||||||
@ -125,6 +126,10 @@ endif()
|
|||||||
|
|
||||||
option(ENABLE_PCH "Enables Precompiled header" ON)
|
option(ENABLE_PCH "Enables Precompiled header" ON)
|
||||||
|
|
||||||
|
if(ENABLE_SPIRV)
|
||||||
|
add_compile_definitions(ENABLE_SPIRV)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(ENABLE_HLSL)
|
if(ENABLE_HLSL)
|
||||||
add_compile_definitions(ENABLE_HLSL)
|
add_compile_definitions(ENABLE_HLSL)
|
||||||
endif()
|
endif()
|
||||||
@ -313,11 +318,13 @@ else()
|
|||||||
add_definitions(-DENABLE_OPT=0)
|
add_definitions(-DENABLE_OPT=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_SPIRV)
|
||||||
|
add_subdirectory(SPIRV)
|
||||||
|
endif()
|
||||||
add_subdirectory(glslang)
|
add_subdirectory(glslang)
|
||||||
if(ENABLE_GLSLANG_BINARIES)
|
if(ENABLE_GLSLANG_BINARIES)
|
||||||
add_subdirectory(StandAlone)
|
add_subdirectory(StandAlone)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(SPIRV)
|
|
||||||
|
|
||||||
if(GLSLANG_TESTS)
|
if(GLSLANG_TESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
@ -4,9 +4,13 @@
|
|||||||
|
|
||||||
# News
|
# News
|
||||||
|
|
||||||
1. `OGLCompiler` and `HLSL` stub libraries have been fully removed from the build.
|
1. The `GenericCodeGen`, `MachineIndependent`, `OSDependent`, and `SPIRV` libraries have been integrated into the main `glslang` library. The old separate libraries have replaced with empty stubs for a temporary compatibility period, and they will be removed entirely in the future.
|
||||||
|
|
||||||
2. `OVERRIDE_MSVCCRT` has been removed in favor of `CMAKE_MSVC_RUNTIME_LIBRARY`
|
2. A new CMake `ENABLE_SPIRV` option has been added to control whether glslang is built with SPIR-V support. Its default value is `ON`.
|
||||||
|
|
||||||
|
3. `OGLCompiler` and `HLSL` stub libraries have been fully removed from the build.
|
||||||
|
|
||||||
|
4. `OVERRIDE_MSVCCRT` has been removed in favor of `CMAKE_MSVC_RUNTIME_LIBRARY`
|
||||||
|
|
||||||
Users are encouraged to utilize the standard approach via [CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html).
|
Users are encouraged to utilize the standard approach via [CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html).
|
||||||
|
|
||||||
|
@ -31,41 +31,43 @@
|
|||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
set(SOURCES
|
set(SPIRV_SOURCES
|
||||||
GlslangToSpv.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/GlslangToSpv.cpp
|
||||||
InReadableOrder.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/InReadableOrder.cpp
|
||||||
Logger.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/Logger.cpp
|
||||||
SpvBuilder.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/SpvBuilder.cpp
|
||||||
SpvPostProcess.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/SpvPostProcess.cpp
|
||||||
doc.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/doc.cpp
|
||||||
SpvTools.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/SpvTools.cpp
|
||||||
disassemble.cpp
|
${CMAKE_CURRENT_SOURCE_DIR}/disassemble.cpp
|
||||||
CInterface/spirv_c_interface.cpp)
|
${CMAKE_CURRENT_SOURCE_DIR}/CInterface/spirv_c_interface.cpp
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
set(SPVREMAP_SOURCES
|
set(SPVREMAP_SOURCES
|
||||||
SPVRemapper.cpp
|
SPVRemapper.cpp
|
||||||
doc.cpp)
|
doc.cpp)
|
||||||
|
|
||||||
set(HEADERS
|
set(SPIRV_HEADERS
|
||||||
bitutils.h
|
${CMAKE_CURRENT_SOURCE_DIR}/bitutils.h
|
||||||
spirv.hpp
|
${CMAKE_CURRENT_SOURCE_DIR}/spirv.hpp
|
||||||
GLSL.std.450.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.std.450.h
|
||||||
GLSL.ext.EXT.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.EXT.h
|
||||||
GLSL.ext.KHR.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.KHR.h
|
||||||
GlslangToSpv.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GlslangToSpv.h
|
||||||
hex_float.h
|
${CMAKE_CURRENT_SOURCE_DIR}/hex_float.h
|
||||||
Logger.h
|
${CMAKE_CURRENT_SOURCE_DIR}/Logger.h
|
||||||
SpvBuilder.h
|
${CMAKE_CURRENT_SOURCE_DIR}/SpvBuilder.h
|
||||||
spvIR.h
|
${CMAKE_CURRENT_SOURCE_DIR}/spvIR.h
|
||||||
doc.h
|
${CMAKE_CURRENT_SOURCE_DIR}/doc.h
|
||||||
SpvTools.h
|
${CMAKE_CURRENT_SOURCE_DIR}/SpvTools.h
|
||||||
disassemble.h
|
${CMAKE_CURRENT_SOURCE_DIR}/disassemble.h
|
||||||
GLSL.ext.AMD.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.AMD.h
|
||||||
GLSL.ext.NV.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.NV.h
|
||||||
GLSL.ext.ARM.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.ARM.h
|
||||||
GLSL.ext.QCOM.h
|
${CMAKE_CURRENT_SOURCE_DIR}/GLSL.ext.QCOM.h
|
||||||
NonSemanticDebugPrintf.h
|
${CMAKE_CURRENT_SOURCE_DIR}/NonSemanticDebugPrintf.h
|
||||||
NonSemanticShaderDebugInfo100.h)
|
${CMAKE_CURRENT_SOURCE_DIR}/NonSemanticShaderDebugInfo100.h
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
set(SPVREMAP_HEADERS
|
set(SPVREMAP_HEADERS
|
||||||
SPVRemapper.h
|
SPVRemapper.h
|
||||||
@ -79,7 +81,7 @@ set(PUBLIC_HEADERS
|
|||||||
SPVRemapper.h
|
SPVRemapper.h
|
||||||
SpvTools.h)
|
SpvTools.h)
|
||||||
|
|
||||||
add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
add_library(SPIRV ${LIB_TYPE} ${CMAKE_CURRENT_SOURCE_DIR}/../glslang/stub.cpp)
|
||||||
add_library(glslang::SPIRV ALIAS SPIRV)
|
add_library(glslang::SPIRV ALIAS SPIRV)
|
||||||
set_target_properties(SPIRV PROPERTIES
|
set_target_properties(SPIRV PROPERTIES
|
||||||
FOLDER glslang
|
FOLDER glslang
|
||||||
@ -90,8 +92,6 @@ target_include_directories(SPIRV PUBLIC
|
|||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||||
|
|
||||||
glslang_add_build_info_dependency(SPIRV)
|
|
||||||
|
|
||||||
if (ENABLE_SPVREMAPPER)
|
if (ENABLE_SPVREMAPPER)
|
||||||
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
|
||||||
add_library(glslang::SPVRemapper ALIAS SPVRemapper)
|
add_library(glslang::SPVRemapper ALIAS SPVRemapper)
|
||||||
|
@ -59,8 +59,6 @@ glslang_set_link_args(glslang-standalone)
|
|||||||
|
|
||||||
set(LIBRARIES
|
set(LIBRARIES
|
||||||
glslang
|
glslang
|
||||||
OSDependent
|
|
||||||
SPIRV
|
|
||||||
glslang-default-resource-limits)
|
glslang-default-resource-limits)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@ -75,12 +73,14 @@ target_link_libraries(glslang-standalone ${LIBRARIES})
|
|||||||
target_include_directories(glslang-standalone PUBLIC
|
target_include_directories(glslang-standalone PUBLIC
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
|
||||||
|
|
||||||
if(ENABLE_SPVREMAPPER)
|
if(ENABLE_SPIRV)
|
||||||
set(REMAPPER_SOURCES spirv-remap.cpp)
|
if(ENABLE_SPVREMAPPER)
|
||||||
add_executable(spirv-remap ${REMAPPER_SOURCES})
|
set(REMAPPER_SOURCES spirv-remap.cpp)
|
||||||
set_property(TARGET spirv-remap PROPERTY FOLDER tools)
|
add_executable(spirv-remap ${REMAPPER_SOURCES})
|
||||||
glslang_set_link_args(spirv-remap)
|
set_property(TARGET spirv-remap PROPERTY FOLDER tools)
|
||||||
target_link_libraries(spirv-remap SPVRemapper ${LIBRARIES})
|
glslang_set_link_args(spirv-remap)
|
||||||
|
target_link_libraries(spirv-remap SPVRemapper ${LIBRARIES})
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@ -113,7 +113,9 @@ if(GLSLANG_ENABLE_INSTALL)
|
|||||||
)
|
)
|
||||||
")
|
")
|
||||||
|
|
||||||
if(ENABLE_SPVREMAPPER)
|
if(ENABLE_SPIRV)
|
||||||
install(TARGETS spirv-remap EXPORT glslang-targets)
|
if(ENABLE_SPVREMAPPER)
|
||||||
|
install(TARGETS spirv-remap EXPORT glslang-targets)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif(GLSLANG_ENABLE_INSTALL)
|
endif(GLSLANG_ENABLE_INSTALL)
|
||||||
|
@ -1509,6 +1509,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
|||||||
|
|
||||||
std::vector<std::string> outputFiles;
|
std::vector<std::string> outputFiles;
|
||||||
|
|
||||||
|
#ifdef ENABLE_SPIRV
|
||||||
// Dump SPIR-V
|
// Dump SPIR-V
|
||||||
if (Options & EOptionSpv) {
|
if (Options & EOptionSpv) {
|
||||||
CompileOrLinkFailed.fetch_or(CompileFailed);
|
CompileOrLinkFailed.fetch_or(CompileFailed);
|
||||||
@ -1571,6 +1572,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
CompileOrLinkFailed.fetch_or(CompileFailed);
|
CompileOrLinkFailed.fetch_or(CompileFailed);
|
||||||
CompileOrLinkFailed.fetch_or(LinkFailed);
|
CompileOrLinkFailed.fetch_or(LinkFailed);
|
||||||
@ -1669,21 +1671,31 @@ int singleMain()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (Options & EOptionDumpBareVersion) {
|
if (Options & EOptionDumpBareVersion) {
|
||||||
printf("%d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR, GLSLANG_VERSION_MINOR,
|
int spirvGeneratorVersion = 0;
|
||||||
|
#ifdef ENABLE_SPIRV
|
||||||
|
spirvGeneratorVersion = glslang::GetSpirvGeneratorVersion();
|
||||||
|
#endif
|
||||||
|
printf("%d:%d.%d.%d%s\n", spirvGeneratorVersion, GLSLANG_VERSION_MAJOR, GLSLANG_VERSION_MINOR,
|
||||||
GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR);
|
GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR);
|
||||||
if (workList.empty())
|
if (workList.empty())
|
||||||
return ESuccess;
|
return ESuccess;
|
||||||
} else if (Options & EOptionDumpVersions) {
|
} else if (Options & EOptionDumpVersions) {
|
||||||
printf("Glslang Version: %d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR,
|
int spirvGeneratorVersion = 0;
|
||||||
|
#ifdef ENABLE_SPIRV
|
||||||
|
spirvGeneratorVersion = glslang::GetSpirvGeneratorVersion();
|
||||||
|
#endif
|
||||||
|
printf("Glslang Version: %d:%d.%d.%d%s\n", spirvGeneratorVersion, GLSLANG_VERSION_MAJOR,
|
||||||
GLSLANG_VERSION_MINOR, GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR);
|
GLSLANG_VERSION_MINOR, GLSLANG_VERSION_PATCH, GLSLANG_VERSION_FLAVOR);
|
||||||
printf("ESSL Version: %s\n", glslang::GetEsslVersionString());
|
printf("ESSL Version: %s\n", glslang::GetEsslVersionString());
|
||||||
printf("GLSL Version: %s\n", glslang::GetGlslVersionString());
|
printf("GLSL Version: %s\n", glslang::GetGlslVersionString());
|
||||||
std::string spirvVersion;
|
std::string spirvVersion;
|
||||||
|
#if ENABLE_SPIRV
|
||||||
glslang::GetSpirvVersion(spirvVersion);
|
glslang::GetSpirvVersion(spirvVersion);
|
||||||
|
#endif
|
||||||
printf("SPIR-V Version %s\n", spirvVersion.c_str());
|
printf("SPIR-V Version %s\n", spirvVersion.c_str());
|
||||||
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
|
printf("GLSL.std.450 Version %d, Revision %d\n", GLSLstd450Version, GLSLstd450Revision);
|
||||||
printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
|
printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
|
||||||
printf("SPIR-V Generator Version %d\n", glslang::GetSpirvGeneratorVersion());
|
printf("SPIR-V Generator Version %d\n", spirvGeneratorVersion);
|
||||||
printf("GL_KHR_vulkan_glsl version %d\n", 100);
|
printf("GL_KHR_vulkan_glsl version %d\n", 100);
|
||||||
printf("ARB_GL_gl_spirv version %d\n", 100);
|
printf("ARB_GL_gl_spirv version %d\n", 100);
|
||||||
if (workList.empty())
|
if (workList.empty())
|
||||||
|
@ -47,9 +47,12 @@ endif()
|
|||||||
################################################################################
|
################################################################################
|
||||||
# GenericCodeGen
|
# GenericCodeGen
|
||||||
################################################################################
|
################################################################################
|
||||||
add_library(GenericCodeGen STATIC
|
set(GENERICCODEGEN_SOURCES
|
||||||
GenericCodeGen/CodeGen.cpp
|
GenericCodeGen/CodeGen.cpp
|
||||||
GenericCodeGen/Link.cpp)
|
GenericCodeGen/Link.cpp)
|
||||||
|
|
||||||
|
add_library(GenericCodeGen STATIC
|
||||||
|
stub.cpp)
|
||||||
set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON)
|
set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang)
|
set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang)
|
||||||
|
|
||||||
@ -130,7 +133,7 @@ if(ENABLE_HLSL)
|
|||||||
HLSL/hlslParseables.h)
|
HLSL/hlslParseables.h)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
|
add_library(MachineIndependent STATIC stub.cpp)
|
||||||
set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
|
set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
|
||||||
|
|
||||||
@ -139,12 +142,6 @@ if (NOT MSVC)
|
|||||||
set_source_files_properties(MachineIndependent/glslang_tab.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-but-set-variable)
|
set_source_files_properties(MachineIndependent/glslang_tab.cpp PROPERTIES COMPILE_FLAGS -Wno-unused-but-set-variable)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
glslang_add_build_info_dependency(MachineIndependent)
|
|
||||||
|
|
||||||
glslang_pch(MachineIndependent MachineIndependent/pch.h)
|
|
||||||
|
|
||||||
target_link_libraries(MachineIndependent PRIVATE OSDependent GenericCodeGen)
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# glslang
|
# glslang
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -168,26 +165,42 @@ set(GLSLANG_HEADERS
|
|||||||
Include/SpirvIntrinsics.h
|
Include/SpirvIntrinsics.h
|
||||||
Include/Types.h)
|
Include/Types.h)
|
||||||
|
|
||||||
add_library(glslang ${LIB_TYPE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
|
add_library(glslang ${LIB_TYPE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS} ${GENERICCODEGEN_SOURCES} ${GENERICCODEGEN_HEADERS} ${OSDEPENDENT_SOURCES} ${OSDEPENDENT_HEADERS} ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS} ${SPIRV_SOURCES} ${SPIRV_HEADERS})
|
||||||
add_library(glslang::glslang ALIAS glslang)
|
add_library(glslang::glslang ALIAS glslang)
|
||||||
set_target_properties(glslang PROPERTIES
|
set_target_properties(glslang PROPERTIES
|
||||||
FOLDER glslang
|
FOLDER glslang
|
||||||
POSITION_INDEPENDENT_CODE ON
|
POSITION_INDEPENDENT_CODE ON
|
||||||
VERSION "${GLSLANG_VERSION}"
|
VERSION "${GLSLANG_VERSION}"
|
||||||
SOVERSION "${GLSLANG_VERSION_MAJOR}")
|
SOVERSION "${GLSLANG_VERSION_MAJOR}")
|
||||||
target_link_libraries(glslang PRIVATE OSDependent MachineIndependent)
|
|
||||||
target_include_directories(glslang PUBLIC
|
target_include_directories(glslang PUBLIC
|
||||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||||
|
|
||||||
glslang_add_build_info_dependency(glslang)
|
glslang_add_build_info_dependency(glslang)
|
||||||
|
|
||||||
|
glslang_pch(glslang MachineIndependent/pch.h)
|
||||||
|
|
||||||
glslang_only_export_explicit_symbols(glslang)
|
glslang_only_export_explicit_symbols(glslang)
|
||||||
|
|
||||||
if(WIN32 AND BUILD_SHARED_LIBS)
|
if(WIN32 AND BUILD_SHARED_LIBS)
|
||||||
set_target_properties(glslang PROPERTIES PREFIX "")
|
set_target_properties(glslang PROPERTIES PREFIX "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(ENABLE_SPIRV)
|
||||||
|
if(ENABLE_OPT)
|
||||||
|
target_include_directories(glslang PUBLIC
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
|
||||||
|
target_link_libraries(glslang SPIRV-Tools-opt)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Link pthread
|
||||||
|
if(UNIX OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia" OR ANDROID)
|
||||||
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
target_link_libraries(glslang Threads::Threads)
|
||||||
|
endif()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# ResourceLimits
|
# ResourceLimits
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -217,6 +230,8 @@ target_include_directories(glslang-default-resource-limits PUBLIC
|
|||||||
# source_groups
|
# source_groups
|
||||||
################################################################################
|
################################################################################
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
source_group("OSDependent" REGULAR_EXPRESSION "OSDependent/[^/]*")
|
||||||
|
source_group("OSDependent\\Windows" REGULAR_EXPRESSION "OSDependent/Windows/*")
|
||||||
source_group("Public" REGULAR_EXPRESSION "Public/*")
|
source_group("Public" REGULAR_EXPRESSION "Public/*")
|
||||||
source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*")
|
source_group("MachineIndependent" REGULAR_EXPRESSION "MachineIndependent/[^/]*")
|
||||||
source_group("Include" REGULAR_EXPRESSION "Include/[^/]*")
|
source_group("Include" REGULAR_EXPRESSION "Include/[^/]*")
|
||||||
@ -224,6 +239,8 @@ if(WIN32)
|
|||||||
source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*")
|
source_group("MachineIndependent\\Preprocessor" REGULAR_EXPRESSION "MachineIndependent/preprocessor/*")
|
||||||
source_group("HLSL" REGULAR_EXPRESSION "HLSL/*")
|
source_group("HLSL" REGULAR_EXPRESSION "HLSL/*")
|
||||||
source_group("CInterface" REGULAR_EXPRESSION "CInterface/*")
|
source_group("CInterface" REGULAR_EXPRESSION "CInterface/*")
|
||||||
|
source_group("SPIRV" REGULAR_EXPRESSION "SPIRV/[^/]*")
|
||||||
|
source_group("SPIRV\\CInterface" REGULAR_EXPRESSION "SPIRV/CInterface/*")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
@ -31,15 +31,18 @@
|
|||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
add_library(OSDependent STATIC ossource.cpp ../osinclude.h)
|
set(OSDEPENDENT_SOURCES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/ossource.cpp
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(OSDEPENDENT_HEADERS
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../osinclude.h
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
|
add_library(OSDependent STATIC ${CMAKE_CURRENT_SOURCE_DIR}/../../stub.cpp)
|
||||||
set_property(TARGET OSDependent PROPERTY FOLDER glslang)
|
set_property(TARGET OSDependent PROPERTY FOLDER glslang)
|
||||||
set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
# Link pthread
|
|
||||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
||||||
find_package(Threads REQUIRED)
|
|
||||||
target_link_libraries(OSDependent Threads::Threads)
|
|
||||||
|
|
||||||
if(GLSLANG_ENABLE_INSTALL AND NOT BUILD_SHARED_LIBS)
|
if(GLSLANG_ENABLE_INSTALL AND NOT BUILD_SHARED_LIBS)
|
||||||
install(TARGETS OSDependent EXPORT glslang-targets)
|
install(TARGETS OSDependent EXPORT glslang-targets)
|
||||||
endif()
|
endif()
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
if(ENABLE_GLSLANG_JS)
|
if(ENABLE_GLSLANG_JS)
|
||||||
add_executable(glslang.js "glslang.js.cpp")
|
add_executable(glslang.js "glslang.js.cpp")
|
||||||
glslang_set_link_args(glslang.js)
|
glslang_set_link_args(glslang.js)
|
||||||
target_link_libraries(glslang.js glslang SPIRV)
|
target_link_libraries(glslang.js glslang)
|
||||||
|
|
||||||
# Link library names that start with "-" are treated as link flags.
|
# Link library names that start with "-" are treated as link flags.
|
||||||
# "-Os" should be OK in MSVC; don't use /Os because CMake won't
|
# "-Os" should be OK in MSVC; don't use /Os because CMake won't
|
||||||
|
@ -31,12 +31,18 @@
|
|||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
set(OSDEPENDENT_SOURCES
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/ossource.cpp
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
|
set(OSDEPENDENT_HEADERS
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/../osinclude.h
|
||||||
|
PARENT_SCOPE)
|
||||||
|
|
||||||
add_library(OSDependent STATIC)
|
add_library(OSDependent STATIC)
|
||||||
|
|
||||||
target_sources(OSDependent PRIVATE
|
target_sources(OSDependent PRIVATE
|
||||||
../osinclude.h
|
${CMAKE_CURRENT_SOURCE_DIR}/../../stub.cpp)
|
||||||
ossource.cpp
|
|
||||||
)
|
|
||||||
|
|
||||||
set_property(TARGET OSDependent PROPERTY FOLDER glslang)
|
set_property(TARGET OSDependent PROPERTY FOLDER glslang)
|
||||||
set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
@ -44,7 +50,7 @@ set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|||||||
# MinGW GCC complains about function pointer casts to void*.
|
# MinGW GCC complains about function pointer casts to void*.
|
||||||
# Turn that off with -fpermissive.
|
# Turn that off with -fpermissive.
|
||||||
if(MINGW AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
if(MINGW AND ${CMAKE_CXX_COMPILER_ID} MATCHES "GNU")
|
||||||
target_compile_options(OSDependent PRIVATE -fpermissive)
|
set_source_files_properties(${OSDEPENDENT_SOURCES} PROPERTIES COMPILE_FLAGS -fpermissive)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
37
glslang/stub.cpp
Normal file
37
glslang/stub.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
//
|
||||||
|
// Copyright (C) 2024 The Khronos Group Inc.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Redistribution and use in source and binary forms, with or without
|
||||||
|
// modification, are permitted provided that the following conditions
|
||||||
|
// are met:
|
||||||
|
//
|
||||||
|
// Redistributions of source code must retain the above copyright
|
||||||
|
// notice, this list of conditions and the following disclaimer.
|
||||||
|
//
|
||||||
|
// Redistributions in binary form must reproduce the above
|
||||||
|
// copyright notice, this list of conditions and the following
|
||||||
|
// disclaimer in the documentation and/or other materials provided
|
||||||
|
// with the distribution.
|
||||||
|
//
|
||||||
|
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived
|
||||||
|
// from this software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
// POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//
|
||||||
|
|
||||||
|
// This empty source file exists to support building stubbed versions of
|
||||||
|
// deprecated libraries which have been integrated into the main glslang
|
||||||
|
// library. It should be deleted once the stub libraries are fully removed.
|
@ -88,8 +88,7 @@ if(GLSLANG_TESTS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(LIBRARIES
|
set(LIBRARIES
|
||||||
glslang OSDependent glslang
|
glslang glslang-default-resource-limits)
|
||||||
SPIRV glslang-default-resource-limits)
|
|
||||||
|
|
||||||
if(ENABLE_SPVREMAPPER)
|
if(ENABLE_SPVREMAPPER)
|
||||||
set(LIBRARIES ${LIBRARIES} SPVRemapper)
|
set(LIBRARIES ${LIBRARIES} SPVRemapper)
|
||||||
|
@ -39,7 +39,7 @@ LOCAL_SRC_FILES:=test.cpp
|
|||||||
LOCAL_MODULE:=glslang_ndk_test
|
LOCAL_MODULE:=glslang_ndk_test
|
||||||
LOCAL_LDLIBS:=-landroid
|
LOCAL_LDLIBS:=-landroid
|
||||||
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror
|
LOCAL_CXXFLAGS:=-std=c++17 -fno-exceptions -fno-rtti -Werror
|
||||||
LOCAL_STATIC_LIBRARIES:=glslang SPIRV
|
LOCAL_STATIC_LIBRARIES:=glslang
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
include $(LOCAL_PATH)/../Android.mk
|
include $(LOCAL_PATH)/../Android.mk
|
||||||
|
Loading…
Reference in New Issue
Block a user