aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/shaderwriter
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/shaderwriter')
-rw-r--r--vcpkg/ports/shaderwriter/fix-template.diff13
-rw-r--r--vcpkg/ports/shaderwriter/portfile.cmake46
-rw-r--r--vcpkg/ports/shaderwriter/vcpkg.json32
3 files changed, 91 insertions, 0 deletions
diff --git a/vcpkg/ports/shaderwriter/fix-template.diff b/vcpkg/ports/shaderwriter/fix-template.diff
new file mode 100644
index 0000000..244a091
--- /dev/null
+++ b/vcpkg/ports/shaderwriter/fix-template.diff
@@ -0,0 +1,13 @@
+diff --git a/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp b/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp
+index 39bdee2..26a1e74 100644
+--- a/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp
++++ b/include/ShaderWriter/CompositeTypes/StructInstanceHelper.hpp
+@@ -61,7 +61,7 @@ namespace sdw
+ {
+ static_assert( hasFieldByName< FieldNameT >() );
+ using FieldT = decltype( getFieldByName< FieldNameT >() );
+- return FieldT::template get( *this );
++ return FieldT::get( *this );
+ }
+
+ static type::BaseStructPtr makeType( type::TypesCache & cache )
diff --git a/vcpkg/ports/shaderwriter/portfile.cmake b/vcpkg/ports/shaderwriter/portfile.cmake
new file mode 100644
index 0000000..1d25201
--- /dev/null
+++ b/vcpkg/ports/shaderwriter/portfile.cmake
@@ -0,0 +1,46 @@
+vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
+ REPO DragonJoker/ShaderWriter
+ REF v${VERSION}
+ SHA512 72b197f1185e3cee507fb1a5152709ee4c99317db61484d2427d96ae8426a127cd1cb234553be55616709f6f04bed6aec88fa4dfea48219ac1c5b36d9b349a2a
+ HEAD_REF development
+ PATCHES
+ fix-template.diff # https://github.com/DragonJoker/ShaderWriter/pull/280
+)
+
+vcpkg_from_github(OUT_SOURCE_PATH CMAKE_SOURCE_PATH
+ REPO DragonJoker/CMakeUtils
+ REF d66b1c5e964368e036fbfd70a22e84077a7de236
+ HEAD_REF master
+ SHA512 040c6886675894b4bdb89e9ef5f9f24b669c5644aec88082d06429cb0d47bb041e72517921518b85e02f124058db6182f57e74568d08b1b2316b1992b01f1a3a
+)
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/CMake")
+file(COPY "${CMAKE_SOURCE_PATH}/" DESTINATION "${SOURCE_PATH}/CMake")
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ spirv SDW_BUILD_EXPORTER_SPIRV
+ glsl SDW_BUILD_EXPORTER_HLSL
+ hlsl SDW_BUILD_EXPORTER_GLSL
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DPROJECTS_USE_PRECOMPILED_HEADERS=OFF
+ -DSDW_GENERATE_SOURCE=OFF
+ -DSDW_BUILD_VULKAN_LAYER=OFF
+ -DSDW_BUILD_TESTS=OFF
+ -DSDW_BUILD_STATIC_SDW=${BUILD_STATIC}
+ -DSDW_BUILD_STATIC_SDAST=${BUILD_STATIC}
+ -DSDW_UNITY_BUILD=ON
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_copy_pdbs()
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(PACKAGE_NAME ShaderWriter CONFIG_PATH lib/cmake/shaderwriter)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/vcpkg/ports/shaderwriter/vcpkg.json b/vcpkg/ports/shaderwriter/vcpkg.json
new file mode 100644
index 0000000..ef096a0
--- /dev/null
+++ b/vcpkg/ports/shaderwriter/vcpkg.json
@@ -0,0 +1,32 @@
+{
+ "name": "shaderwriter",
+ "version": "2.9.0",
+ "port-version": 1,
+ "description": "Library to write shaders directly from C++ code, supports GLSL, HLSL and SPIRV outputs.",
+ "homepage": "https://github.com/DragonJoker/ShaderWriter",
+ "license": "MIT",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "default-features": [
+ "spirv"
+ ],
+ "features": {
+ "glsl": {
+ "description": "Compiles GLSL exporter."
+ },
+ "hlsl": {
+ "description": "Compiles HLSL exporter."
+ },
+ "spirv": {
+ "description": "Compiles SPIR-V exporter."
+ }
+ }
+}