diff --git a/ports/shaderc/fix-build-type.patch b/ports/shaderc/fix-build-type.patch index 8e5cd22db15ee2..291595b4b9fb81 100644 --- a/ports/shaderc/fix-build-type.patch +++ b/ports/shaderc/fix-build-type.patch @@ -1,8 +1,53 @@ +diff --git a/examples/online-compile/CMakeLists.txt b/examples/online-compile/CMakeLists.txt +index 6cceb6b..c7a1521 100644 +--- a/examples/online-compile/CMakeLists.txt ++++ b/examples/online-compile/CMakeLists.txt +@@ -15,4 +15,5 @@ + add_executable(shaderc-online-compile main.cc) + shaderc_default_compile_options(shaderc-online-compile) + target_include_directories(shaderc-online-compile PUBLIC ${shaderc_SOURCE_DIR}/libshaderc_util/include) +-target_link_libraries(shaderc-online-compile PRIVATE shaderc) ++target_include_directories(shaderc-online-compile PUBLIC ${shaderc_SOURCE_DIR}/libshaderc/include) ++target_link_libraries(shaderc-online-compile PRIVATE ${sharerc_core_target}) +diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt +index 358d91b..1979111 100644 +--- a/glslc/CMakeLists.txt ++++ b/glslc/CMakeLists.txt +@@ -31,6 +31,7 @@ add_library(glslc STATIC + + shaderc_default_compile_options(glslc) + target_include_directories(glslc PUBLIC ${glslang_SOURCE_DIR}) ++target_include_directories(glslc PUBLIC ${shaderc_SOURCE_DIR}/libshaderc/include) + + if (SHADERC_ENABLE_WGSL_OUTPUT) + if (IS_DIRECTORY "${tint_SOURCE_DIR}/include") +@@ -45,18 +46,18 @@ endif(SHADERC_ENABLE_WGSL_OUTPUT) + target_link_libraries(glslc PRIVATE + glslang OSDependent OGLCompiler HLSL glslang SPIRV # Glslang libraries + $<$:libtint> # Tint libraries, optional +- shaderc_util shaderc # internal Shaderc libraries ++ shaderc_util ${sharerc_core_target} # internal Shaderc libraries + ${CMAKE_THREAD_LIBS_INIT}) + + add_executable(glslc_exe src/main.cc) + shaderc_default_compile_options(glslc_exe) + target_include_directories(glslc_exe PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/.. ${spirv-tools_SOURCE_DIR}/include) + set_target_properties(glslc_exe PROPERTIES OUTPUT_NAME glslc) +-target_link_libraries(glslc_exe PRIVATE glslc shaderc_util shaderc) ++target_link_libraries(glslc_exe PRIVATE glslc shaderc_util ${sharerc_core_target} SPIRV-Tools) + + shaderc_add_tests( + TEST_PREFIX glslc +- LINK_LIBS glslc shaderc_util shaderc ++ LINK_LIBS glslc shaderc_util ${sharerc_core_target} + TEST_NAMES + file + resource_parse diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt -index 3ada419..f3277f0 100644 +index 3ada419..cdbc0bd 100644 --- a/libshaderc/CMakeLists.txt +++ b/libshaderc/CMakeLists.txt -@@ -24,13 +24,16 @@ set(SHADERC_SOURCES +@@ -24,13 +24,17 @@ set(SHADERC_SOURCES src/shaderc_private.h ) @@ -14,21 +59,23 @@ index 3ada419..f3277f0 100644 PRIVATE ${glslang_SOURCE_DIR} ${SPIRV-Headers_SOURCE_DIR}/include) +set(shaderc_install_target shaderc) ++set(sharerc_core_target shaderc PARENT_SCOPE) +else() add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) shaderc_default_compile_options(shaderc_shared) target_include_directories(shaderc_shared -@@ -42,6 +45,8 @@ target_compile_definitions(shaderc_shared +@@ -42,6 +46,9 @@ target_compile_definitions(shaderc_shared PUBLIC SHADERC_SHAREDLIB ) set_target_properties(shaderc_shared PROPERTIES SOVERSION 1) +set(shaderc_install_target shaderc_shared) ++set(sharerc_core_target shaderc_shared PARENT_SCOPE) +endif() if(SHADERC_ENABLE_INSTALL) install( -@@ -54,7 +59,7 @@ if(SHADERC_ENABLE_INSTALL) +@@ -54,7 +61,7 @@ if(SHADERC_ENABLE_INSTALL) DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) @@ -37,7 +84,7 @@ index 3ada419..f3277f0 100644 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -@@ -68,8 +73,11 @@ set(SHADERC_LIBS +@@ -68,31 +75,24 @@ set(SHADERC_LIBS SPIRV-Tools ) @@ -48,8 +95,27 @@ index 3ada419..f3277f0 100644 +endif() shaderc_add_tests( - TEST_PREFIX shaderc -@@ -93,6 +101,7 @@ shaderc_add_tests( +- TEST_PREFIX shaderc +- LINK_LIBS shaderc +- INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR} +- ${spirv-tools_SOURCE_DIR}/include +- ${SPIRV-Headers_SOURCE_DIR}/include +- TEST_NAMES +- shaderc +- shaderc_cpp +- shaderc_private) +- +-shaderc_add_tests( +- TEST_PREFIX shaderc_shared +- LINK_LIBS shaderc_shared SPIRV-Tools ++ TEST_PREFIX ${shaderc_install_target} ++ LINK_LIBS ${shaderc_install_target} + INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR} + ${spirv-tools_SOURCE_DIR}/include + ${SPIRV-Headers_SOURCE_DIR}/include + TEST_NAMES +- shaderc ++ ${shaderc_install_target} shaderc_cpp shaderc_private) @@ -57,7 +123,7 @@ index 3ada419..f3277f0 100644 shaderc_combine_static_lib(shaderc_combined shaderc) if(SHADERC_ENABLE_INSTALL) -@@ -121,6 +130,7 @@ shaderc_add_tests( +@@ -121,11 +121,12 @@ shaderc_add_tests( TEST_NAMES shaderc shaderc_cpp) @@ -65,3 +131,9 @@ index 3ada419..f3277f0 100644 if(${SHADERC_ENABLE_TESTS}) add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c) + shaderc_default_c_compile_options(shaderc_c_smoke_test) + target_include_directories(shaderc_c_smoke_test PUBLIC ${shaderc_SOURCE_DIR}/libshaderc_util/include) +- target_link_libraries(shaderc_c_smoke_test PRIVATE shaderc) ++ target_link_libraries(shaderc_c_smoke_test PRIVATE ${shaderc_install_target}) + add_test(NAME shaderc_c_smoke_test COMMAND shaderc_c_smoke_test) + endif() diff --git a/ports/shaderc/fix-install-shaderc_util.patch b/ports/shaderc/fix-install-shaderc_util.patch deleted file mode 100644 index 7601f3020d3a57..00000000000000 --- a/ports/shaderc/fix-install-shaderc_util.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt -index 99ce3c4..4926203 100644 ---- a/libshaderc_util/CMakeLists.txt -+++ b/libshaderc_util/CMakeLists.txt -@@ -49,6 +49,13 @@ target_link_libraries(shaderc_util PRIVATE - glslang OSDependent OGLCompiler HLSL glslang SPIRV - SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT}) - -+if(SHADERC_ENABLE_INSTALL AND NOT BUILD_SHARED_LIBS) -+ install(TARGETS shaderc_util -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -+endif(SHADERC_ENABLE_INSTALL) -+ - shaderc_add_tests( - TEST_PREFIX shaderc_util - LINK_LIBS shaderc_util diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake index be59aa5ba2a8c9..6db62897860f07 100644 --- a/ports/shaderc/portfile.cmake +++ b/ports/shaderc/portfile.cmake @@ -1,6 +1,3 @@ -#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 @@ -10,38 +7,34 @@ vcpkg_from_github( PATCHES disable-update-version.patch fix-build-type.patch - fix-install-shaderc_util.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/build-version.inc DESTINATION ${SOURCE_PATH}/glslc/src) -set(OPTIONS) -if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - list(APPEND OPTIONS -DSHADERC_ENABLE_SHARED_CRT=ON) -endif() +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" SHADERC_SHARED_CRT) # shaderc uses python to manipulate copyright information vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") -vcpkg_configure_cmake( +vcpkg_cmake_configure( SOURCE_PATH ${SOURCE_PATH} - PREFER_NINJA OPTIONS - ${OPTIONS} - -DSHADERC_SKIP_TESTS=true + -DSHADERC_ENABLE_SHARED_CRT=${SHADERC_SHARED_CRT} -DSHADERC_GLSLANG_DIR=${CMAKE_CURRENT_LIST_DIR}/glslang -DSHADERC_SPIRV_TOOLS_DIR=${CMAKE_CURRENT_LIST_DIR}/spirv-tools - -DSHADERC_ENABLE_EXAMPLES=OFF + -DSHADERC_SKIP_INSTALL=OFF + -DSHADERC_SKIP_TESTS=ON + -DSHADERC_SKIP_EXAMPLES=ON ) -vcpkg_install_cmake() +vcpkg_cmake_install() vcpkg_fixup_pkgconfig() vcpkg_copy_tools(TOOL_NAMES glslc AUTO_CLEAN) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/ports/shaderc/vcpkg.json b/ports/shaderc/vcpkg.json index e7e490c008bfd3..bec6f78d65ffd2 100644 --- a/ports/shaderc/vcpkg.json +++ b/ports/shaderc/vcpkg.json @@ -1,11 +1,15 @@ { "name": "shaderc", "version": "2021.1", - "port-version": 1, + "port-version": 2, "description": "A collection of tools, libraries and tests for shader compilation.", "homepage": "https://github.com/google/shaderc", "dependencies": [ "glslang", - "spirv-tools" + "spirv-tools", + { + "name": "vcpkg-cmake", + "host": true + } ] } diff --git a/versions/baseline.json b/versions/baseline.json index a5bfbc3b0d6c39..b2c49d9550ca43 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5794,7 +5794,7 @@ }, "shaderc": { "baseline": "2021.1", - "port-version": 1 + "port-version": 2 }, "shaderwriter": { "baseline": "1.1.0", diff --git a/versions/s-/shaderc.json b/versions/s-/shaderc.json index 8c608dcec57b5f..2f2112f4910cab 100644 --- a/versions/s-/shaderc.json +++ b/versions/s-/shaderc.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "f6a82ca83afbf20c08d6d001f133cd5fd2672108", + "version": "2021.1", + "port-version": 2 + }, { "git-tree": "e8590ab232dd5ccd2331bb321127f00788b573a3", "version": "2021.1",