diff --git a/CMakeLists.txt b/CMakeLists.txt index 287e211b1b6fceec428c7645888f4910fb8e48ed..9a869c2c00110bf23e953125d1c6c77fad7656bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,14 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) # Adhere to GNU filesystem layout conventions include(GNUInstallDirs) +option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) + +set(LIB_TYPE STATIC) + +if(BUILD_SHARED_LIBS) + set(LIB_TYPE SHARED) +endif() + option(SKIP_GLSLANG_INSTALL "Skip installation" ${SKIP_GLSLANG_INSTALL}) if(NOT ${SKIP_GLSLANG_INSTALL}) set(ENABLE_GLSLANG_INSTALL ON) diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index f26b5b4e02952d2e1c17ffd02247b57ec3d6d16f..1e32e275a54d18a3d5722ff38dff389204f7239c 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -40,14 +40,19 @@ if(ENABLE_NV_EXTENSIONS) GLSL.ext.NV.h) endif(ENABLE_NV_EXTENSIONS) -add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) +add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS}) set_property(TARGET SPIRV PROPERTY FOLDER glslang) set_property(TARGET SPIRV PROPERTY POSITION_INDEPENDENT_CODE ON) -add_library(SPVRemapper STATIC ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) +add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS}) set_property(TARGET SPVRemapper PROPERTY FOLDER glslang) set_property(TARGET SPVRemapper PROPERTY POSITION_INDEPENDENT_CODE ON) +if(WIN32 AND BUILD_SHARED_LIBS) + set_target_properties(SPIRV PROPERTIES PREFIX "") + set_target_properties(SPVRemapper PROPERTIES PREFIX "") +endif() + if(ENABLE_OPT) target_include_directories(SPIRV PRIVATE ${spirv-tools_SOURCE_DIR}/include diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 7a50ab67828340218a1ee3b626473459d142648e..4f33b539454f8f5273c1a6748b15842aa7263027 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -80,10 +80,15 @@ set(HEADERS # WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) # set(BISON_GLSLParser_OUTPUT_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/MachineIndependent/glslang_tab.cpp) -add_library(glslang STATIC ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) +add_library(glslang ${LIB_TYPE} ${BISON_GLSLParser_OUTPUT_SOURCE} ${SOURCES} ${HEADERS}) set_property(TARGET glslang PROPERTY FOLDER glslang) set_property(TARGET glslang PROPERTY POSITION_INDEPENDENT_CODE ON) target_link_libraries(glslang OGLCompiler OSDependent) + +if(WIN32 AND BUILD_SHARED_LIBS) + set_target_properties(glslang PROPERTIES PREFIX "") +endif() + if(ENABLE_HLSL) target_link_libraries(glslang HLSL) endif() diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt index 98dfad7c9637025ade6ad0bf868dc339eb078ae6..a3b643f0329fc0a373baea258476e354bbdf72dc 100755 --- a/hlsl/CMakeLists.txt +++ b/hlsl/CMakeLists.txt @@ -17,10 +17,14 @@ set(HEADERS hlslGrammar.h hlslParseables.h) -add_library(HLSL STATIC ${SOURCES} ${HEADERS}) +add_library(HLSL ${LIB_TYPE} ${SOURCES} ${HEADERS}) set_property(TARGET HLSL PROPERTY FOLDER hlsl) set_property(TARGET HLSL PROPERTY POSITION_INDEPENDENT_CODE ON) +if(WIN32 AND BUILD_SHARED_LIBS) + set_target_properties(HLSL PROPERTIES PREFIX "") +endif() + if(WIN32) source_group("Source" FILES ${SOURCES} ${HEADERS}) endif(WIN32)