diff options
| author | vlj <vljn.ovi@gmail.com> | 2016-11-27 12:07:15 +0100 |
|---|---|---|
| committer | Vincent Lejeune <vljn.ovi@gmail.com> | 2016-12-04 19:02:32 +0100 |
| commit | b78fdc699457118368e251029211fc701e10be56 (patch) | |
| tree | 8d2d7cb8ceebf9a2392ce2f8cbf47b0c4d8a8e7b | |
| parent | 49e760390ebd58670fb24a184e81db50360a8399 (diff) | |
| download | vcpkg-b78fdc699457118368e251029211fc701e10be56.tar.gz vcpkg-b78fdc699457118368e251029211fc701e10be56.zip | |
Add shaderc.
| -rw-r--r-- | ports/shaderc/0001-Do-not-generate-build-version.inc.patch | 30 | ||||
| -rw-r--r-- | ports/shaderc/CMakeLists.txt | 29 | ||||
| -rw-r--r-- | ports/shaderc/CONTROL | 3 | ||||
| -rw-r--r-- | ports/shaderc/build-version.inc | 3 | ||||
| -rw-r--r-- | ports/shaderc/portfile.cmake | 114 |
5 files changed, 179 insertions, 0 deletions
diff --git a/ports/shaderc/0001-Do-not-generate-build-version.inc.patch b/ports/shaderc/0001-Do-not-generate-build-version.inc.patch new file mode 100644 index 000000000..41cc81220 --- /dev/null +++ b/ports/shaderc/0001-Do-not-generate-build-version.inc.patch @@ -0,0 +1,30 @@ +From e8e12e856cbc41f9bdcc83bc87eb5013df199ee1 Mon Sep 17 00:00:00 2001 +From: vlj <vljn.ovi@gmail.com> +Date: Fri, 2 Dec 2016 16:36:25 +0100 +Subject: [PATCH] Do not generate build-version.inc + +--- + CMakeLists.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a4c2fac..5544a2d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -53,8 +53,8 @@ add_subdirectory(libshaderc) + add_subdirectory(glslc) + add_subdirectory(examples) + +-add_custom_target(build-version +- ${PYTHON_EXE} +- ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py +- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} +- COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") ++#add_custom_target(build-version ++# ${PYTHON_EXE} ++# ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py ++# ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ++# COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") +-- +2.10.2.windows.1 + diff --git a/ports/shaderc/CMakeLists.txt b/ports/shaderc/CMakeLists.txt new file mode 100644 index 000000000..3dc7be973 --- /dev/null +++ b/ports/shaderc/CMakeLists.txt @@ -0,0 +1,29 @@ +option(SUFFIX_D "Add d Suffix to lib" ${SUFFIX_D}) +if(NOT ${SUFFIX_D}) + find_library(GLSLANG glslang) + find_library(OSDEPENDENT OSDependent) + find_library(OGLCOMPILER OGLCompiler) + find_library(HLSLLIB HLSL) + find_library(SPIRVLIB SPIRV) +ELSE() + find_library(GLSLANG glslangd) + find_library(OSDEPENDENT OSDependentd) + find_library(OGLCOMPILER OGLCompilerd) + find_library(HLSLLIB HLSLd) + find_library(SPIRVLIB SPIRVd) +ENDIF() + +add_library(glslang STATIC IMPORTED GLOBAL) +set_property(TARGET glslang PROPERTY IMPORTED_LOCATION "${GLSLANG}") + +add_library(OSDependent STATIC IMPORTED GLOBAL) +set_property(TARGET OSDependent PROPERTY IMPORTED_LOCATION "${OSDEPENDENT}") + +add_library(OGLCompiler STATIC IMPORTED GLOBAL) +set_property(TARGET OGLCompiler PROPERTY IMPORTED_LOCATION "${OGLCOMPILER}") + +add_library(HLSL STATIC IMPORTED GLOBAL) +set_property(TARGET HLSL PROPERTY IMPORTED_LOCATION "${HLSLLIB}") + +add_library(SPIRV STATIC IMPORTED GLOBAL) +set_property(TARGET SPIRV PROPERTY IMPORTED_LOCATION "${SPIRVLIB}") diff --git a/ports/shaderc/CONTROL b/ports/shaderc/CONTROL new file mode 100644 index 000000000..7f82bee28 --- /dev/null +++ b/ports/shaderc/CONTROL @@ -0,0 +1,3 @@ +Source: shaderc +Version: 2df47b51d83ad83cbc2e7f8ff2b56776293e8958 +Description: A collection of tools, libraries and tests for shader compilation. diff --git a/ports/shaderc/build-version.inc b/ports/shaderc/build-version.inc new file mode 100644 index 000000000..853e89916 --- /dev/null +++ b/ports/shaderc/build-version.inc @@ -0,0 +1,3 @@ +"shaderc v2016.2-dev unknown hash, 2016-12-02\n" +"spirv-tools v2016.6-dev unknown hash, 2016-12-02\n" +"glslang unknown hash, 2016-12-02\n" diff --git a/ports/shaderc/portfile.cmake b/ports/shaderc/portfile.cmake new file mode 100644 index 000000000..74dff4d9d --- /dev/null +++ b/ports/shaderc/portfile.cmake @@ -0,0 +1,114 @@ +# Common Ambient Variables: +# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg> +# TARGET_TRIPLET is the current triplet (x86-windows, etc) +# PORT is the current port name (zlib, etc) +# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT} +# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET} +# + +include(vcpkg_common_functions) +find_program(GIT git) + +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src) + +set(SHADERC_GIT_URL "https://github.com/google/shaderc.git") +set(SHADERC_GIT_REF "2df47b51d83ad83cbc2e7f8ff2b56776293e8958") +if(NOT EXISTS "${DOWNLOADS}/shaderc.git") + message(STATUS "Cloning") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --bare ${SHADERC_GIT_URL} ${DOWNLOADS}/shaderc.git + WORKING_DIRECTORY ${DOWNLOADS} + LOGNAME clone + ) +endif() +if(NOT EXISTS "${SOURCE_PATH}/.git") + message(STATUS "Adding worktree and patching") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) + vcpkg_execute_required_process( + COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH} ${SHADERC_GIT_REF} + WORKING_DIRECTORY ${DOWNLOADS}/shaderc.git + LOGNAME worktree + ) + message(STATUS "Patching") + vcpkg_execute_required_process( + COMMAND ${GIT} apply ${CMAKE_CURRENT_LIST_DIR}/0001-Do-not-generate-build-version.inc.patch --ignore-whitespace --whitespace=fix + WORKING_DIRECTORY ${SOURCE_PATH} + LOGNAME patch + ) +endif() + +set(GLSLANG_GIT_URL "https://github.com/KhronosGroup/glslang.git") +set(GLSLANG_GIT_REF "1c573fbcfba6b3d631008b1babc838501ca925d3") +set(SPIRVTOOLS_GIT_URL "https://github.com/KhronosGroup/SPIRV-Tools.git") +set(SPIRVTOOLS_GIT_REF "f72189c249ba143c6a89a4cf1e7d53337b2ddd40") +set(SPIRVHEADERS_GIT_URL "https://github.com/KhronosGroup/SPIRV-Headers.git") +set(SPIRVHEADERS_GIT_REF "bd47a9abaefac00be692eae677daed1b977e625c") + +if(NOT EXISTS "${DOWNLOADS}/SPIRV-Tools.git") + message(STATUS "Cloning") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --bare ${SPIRVTOOLS_GIT_URL} ${DOWNLOADS}/SPIRV-Tools.git + WORKING_DIRECTORY ${DOWNLOADS} + LOGNAME clone + ) +endif() +if(NOT EXISTS "${DOWNLOADS}/SPIRV-Headers.git") + message(STATUS "Cloning") + vcpkg_execute_required_process( + COMMAND ${GIT} clone --bare ${SPIRVHEADERS_GIT_URL} ${DOWNLOADS}/SPIRV-Headers.git + WORKING_DIRECTORY ${DOWNLOADS} + LOGNAME clone + ) +endif() + + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}/third_party/glslang) +if(NOT EXISTS "${SOURCE_PATH}/third_party/spirv-tools/.git") + message(STATUS "Adding worktree and patching") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) + vcpkg_execute_required_process( + COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH}/third_party/spirv-tools ${SPIRVTOOLS_GIT_REF} + WORKING_DIRECTORY ${DOWNLOADS}/SPIRV-Tools.git + LOGNAME worktree + ) +endif() +if(NOT EXISTS "${SOURCE_PATH}/third_party/spirv-tools/external/spirv-headers/.git") + message(STATUS "Adding worktree and patching") + file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}) + vcpkg_execute_required_process( + COMMAND ${GIT} worktree add -f --detach ${SOURCE_PATH}/third_party/spirv-tools/external/spirv-headers ${SPIRVHEADERS_GIT_REF} + WORKING_DIRECTORY ${DOWNLOADS}/SPIRV-Headers.git + LOGNAME worktree + ) +endif() + +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(VCPKG_CRT_LINKAGE "static") + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS -DSHADERC_SKIP_TESTS=true + OPTIONS_DEBUG -DSUFFIX_D=true + OPTIONS_RELEASE -DSUFFIX_D=false +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) +file(GLOB EXES "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(COPY ${EXES} DESTINATION ${CURRENT_PACKAGES_DIR}/tools) + +#Safe to remove as libs are static +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin) +#Provided by another package (glslang) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug) + + +# 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) |
