[shaderc] Use build type to build targets (#16137)

* [shaderc] Use build type to build targets

* update version record

* Update ports/shaderc/portfile.cmake

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>

* Update ports/shaderc/portfile.cmake

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>

* refresh version record

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
This commit is contained in:
Jack·Boos·Yu 2021-02-11 00:24:45 -08:00 committed by GitHub
parent 56136ffae6
commit f6a877255e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 113 additions and 18 deletions

View File

@ -1,5 +1,6 @@
Source: shaderc
Version: 2019-06-26-1
Version: 2019-06-26
Port-Version: 2
Homepage: https://github.com/google/shaderc
Description: A collection of tools, libraries and tests for shader compilation.
Build-Depends: glslang, spirv-tools

View File

@ -0,0 +1,85 @@
diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt
index 0ffa06f..3476170 100644
--- a/libshaderc/CMakeLists.txt
+++ b/libshaderc/CMakeLists.txt
@@ -10,10 +10,11 @@ set(SHADERC_SOURCES
src/shaderc_private.h
)
+if (NOT BUILD_SHARED_LIBS)
add_library(shaderc STATIC ${SHADERC_SOURCES})
shaderc_default_compile_options(shaderc)
target_include_directories(shaderc PUBLIC include PRIVATE ${glslang_SOURCE_DIR})
-
+else()
add_library(shaderc_shared SHARED ${SHADERC_SOURCES})
shaderc_default_compile_options(shaderc_shared)
target_include_directories(shaderc_shared PUBLIC include PRIVATE ${glslang_SOURCE_DIR})
@@ -22,6 +23,7 @@ target_compile_definitions(shaderc_shared
PUBLIC SHADERC_SHAREDLIB
)
set_target_properties(shaderc_shared PROPERTIES SOVERSION 1)
+endif()
if(SHADERC_ENABLE_INSTALL)
install(
@@ -34,10 +36,17 @@ if(SHADERC_ENABLE_INSTALL)
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}/shaderc)
- install(TARGETS shaderc shaderc_shared
+ if (NOT BUILD_SHARED_LIBS)
+ install(TARGETS shaderc
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ else()
+ install(TARGETS shaderc_shared
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
endif(SHADERC_ENABLE_INSTALL)
find_package(Threads)
@@ -47,10 +56,13 @@ set(SHADERC_LIBS
SPIRV # from glslang
SPIRV-Tools
)
-
+if (NOT BUILD_SHARED_LIBS)
target_link_libraries(shaderc PRIVATE ${SHADERC_LIBS})
+else()
target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS})
+endif()
+if (NOT BUILD_SHARED_LIBS)
shaderc_add_tests(
TEST_PREFIX shaderc
LINK_LIBS shaderc
@@ -60,7 +72,7 @@ shaderc_add_tests(
shaderc
shaderc_cpp
shaderc_private)
-
+else()
shaderc_add_tests(
TEST_PREFIX shaderc_shared
LINK_LIBS shaderc_shared SPIRV-Tools
@@ -70,7 +82,9 @@ shaderc_add_tests(
shaderc
shaderc_cpp
shaderc_private)
-
+endif()
+# Do not combine all dependencies to static library
+if (0)
shaderc_combine_static_lib(shaderc_combined shaderc)
if(SHADERC_ENABLE_INSTALL)
@@ -106,3 +120,4 @@ if(${SHADERC_ENABLE_TESTS})
target_link_libraries(shaderc_c_smoke_test PRIVATE shaderc)
add_test(NAME shaderc_c_smoke_test COMMAND shaderc_c_smoke_test)
endif()
+endif()
\ No newline at end of file

View File

@ -1,3 +1,6 @@
#Note: glslang and spir tools doesn't export symbol and need to be build as static lib for cmake to work
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/shaderc
@ -5,8 +8,9 @@ vcpkg_from_github(
SHA512 329697e8e23d619313440d57ef740a94c49d13533e1b8734fc8ff72fd5092c2addabb306f64cb69160fa5fee373a05ba39a5ee6d92d95e5e2e9c7ec96a51aadc
HEAD_REF master
PATCHES
"disable-update-version.patch"
"fix-install.patch"
disable-update-version.patch
fix-install.patch
fix-build-type.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang)
@ -16,8 +20,6 @@ file(RENAME ${SOURCE_PATH}/third_party/spirv-tools/CMakeLists_spirv.txt ${SOURCE
file(COPY ${CMAKE_CURRENT_LIST_DIR}/build-version.inc DESTINATION ${SOURCE_PATH}/glslc/src)
#Note: glslang and spir tools doesn't export symbol and need to be build as static lib for cmake to work
set(VCPKG_LIBRARY_LINKAGE "static")
set(OPTIONS)
if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
list(APPEND OPTIONS -DSHADERC_ENABLE_SHARED_CRT=ON)
@ -31,21 +33,23 @@ vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}")
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS -DSHADERC_SKIP_TESTS=true ${OPTIONS} -Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include -Dspirv-tools_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include
OPTIONS_DEBUG -DSUFFIX_D=true
OPTIONS_RELEASE -DSUFFIX_D=false
OPTIONS
${OPTIONS}
-DSHADERC_SKIP_TESTS=true
-Dglslang_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include
-Dspirv-tools_SOURCE_DIR=${CURRENT_INSTALLED_DIR}/include
OPTIONS_DEBUG
-DSUFFIX_D=true
OPTIONS_RELEASE
-DSUFFIX_D=false
)
vcpkg_install_cmake()
file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*${CMAKE_EXECUTABLE_SUFFIX}")
file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools)
vcpkg_fixup_pkgconfig()
vcpkg_copy_tools(TOOL_NAMES glslc AUTO_CLEAN)
#Safe to remove as libs are static
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/shaderc)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/shaderc/LICENSE ${CURRENT_PACKAGES_DIR}/share/shaderc/copyright)
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -5349,8 +5349,8 @@
"port-version": 0
},
"shaderc": {
"baseline": "2019-06-26-1",
"port-version": 0
"baseline": "2019-06-26",
"port-version": 2
},
"shaderwriter": {
"baseline": "1.0.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "684cc1ffce4fe1fe48788484436e1e6d5886859e",
"version-string": "2019-06-26",
"port-version": 2
},
{
"git-tree": "0622fa62b4192278be6dc612e9328e3c3a96ff50",
"version-string": "2019-06-26-1",