aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/llgi
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/llgi')
-rw-r--r--vcpkg/ports/llgi/fix-cmake-use-vcpkg.patch46
-rw-r--r--vcpkg/ports/llgi/fix-sources.patch14
-rw-r--r--vcpkg/ports/llgi/portfile.cmake52
-rw-r--r--vcpkg/ports/llgi/vcpkg.json36
4 files changed, 148 insertions, 0 deletions
diff --git a/vcpkg/ports/llgi/fix-cmake-use-vcpkg.patch b/vcpkg/ports/llgi/fix-cmake-use-vcpkg.patch
new file mode 100644
index 0000000..8eabbd6
--- /dev/null
+++ b/vcpkg/ports/llgi/fix-cmake-use-vcpkg.patch
@@ -0,0 +1,46 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5fd2ce0..202bcfe 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,10 +27,6 @@ option(SPIRVCROSS_WITHOUT_INSTALL "Compile with spirv-cross without install"
+ OFF)
+ option(USE_CREATE_COMPILER_FUNCTION "Whether LLGI::CreateCompiler is used." ON)
+
+-if(LINUX)
+- set(BUILD_VULKAN TRUE)
+-endif()
+-
+ option(USE_MSVC_RUNTIME_LIBRARY_DLL "compile as multithreaded DLL" ON)
+
+ include(cmake/ClangFormat.cmake)
+@@ -234,8 +230,13 @@ if(BUILD_VULKAN_COMPILER OR BUILD_TOOL)
+ spirv-cross-util)
+
+ else()
+- list(APPEND LLGI_THIRDPARTY_INCLUDES ${GLSLANG_INCLUDE_DIR}
+- ${SPIRVCROSS_INCLUDE_DIR})
++ # from vcpkg
++ find_package(glslang CONFIG REQUIRED)
++ find_package(spirv_cross_core CONFIG REQUIRED)
++ find_package(spirv_cross_glsl CONFIG REQUIRED)
++ find_package(spirv_cross_hlsl CONFIG REQUIRED)
++ find_package(spirv_cross_msl CONFIG REQUIRED)
++ find_package(spirv_cross_cpp CONFIG REQUIRED)
+
+ endif()
+
+diff --git a/tools/ShaderTranspilerCore/CMakeLists.txt b/tools/ShaderTranspilerCore/CMakeLists.txt
+index bf34437..09e428d 100644
+--- a/tools/ShaderTranspilerCore/CMakeLists.txt
++++ b/tools/ShaderTranspilerCore/CMakeLists.txt
+@@ -24,6 +24,10 @@ else()
+
+ endif()
+
++target_link_libraries(ShaderTranspilerCore PUBLIC
++ glslang::glslang glslang::glslang-default-resource-limits glslang::SPIRV glslang::SPVRemapper spirv-cross-cpp spirv-cross-glsl spirv-cross-msl spirv-cross-hlsl
++)
++
+ if(USE_THIRDPARTY_DIRECTORY)
+ add_dependencies(ShaderTranspilerCore EP_glslang EP_SPIRV-Cross)
+ endif()
diff --git a/vcpkg/ports/llgi/fix-sources.patch b/vcpkg/ports/llgi/fix-sources.patch
new file mode 100644
index 0000000..90837de
--- /dev/null
+++ b/vcpkg/ports/llgi/fix-sources.patch
@@ -0,0 +1,14 @@
+diff --git a/tools/ShaderTranspilerCore/ShaderTranspilerCore.h b/tools/ShaderTranspilerCore/ShaderTranspilerCore.h
+index 269afa6..1d1015f 100644
+--- a/tools/ShaderTranspilerCore/ShaderTranspilerCore.h
++++ b/tools/ShaderTranspilerCore/ShaderTranspilerCore.h
+@@ -1,7 +1,7 @@
+
+ #pragma once
+-
+-#include <stdint.h>
++#include <cstddef>
++#include <cstdint>
+
+ #include "../../src/LLGI.Base.h"
+ #include <memory>
diff --git a/vcpkg/ports/llgi/portfile.cmake b/vcpkg/ports/llgi/portfile.cmake
new file mode 100644
index 0000000..9ddbcda
--- /dev/null
+++ b/vcpkg/ports/llgi/portfile.cmake
@@ -0,0 +1,52 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO altseed/LLGI
+ REF 8f8510e2dffa1d747ff6ebb0da341198e75291ec
+ SHA512 d521b47f293b90faed28f9648facdfae327c6122ea6391683a08e48558fdf62ce0d3977f78aef3bc276d77ab19fc40ab3cc4d27311dd5a292e0884635fe7c9d3
+ HEAD_REF master
+ PATCHES
+ fix-cmake-use-vcpkg.patch
+ fix-sources.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ vulkan BUILD_VULKAN
+ vulkan BUILD_VULKAN_COMPILER
+ tool BUILD_TOOL
+)
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" USE_DYNAMIC_RUNTIME)
+
+# linux build requires x11-xcb
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DBUILD_TEST=OFF
+ -DBUILD_EXAMPLE=OFF
+ -DUSE_CREATE_COMPILER_FUNCTION=ON
+ -DUSE_THIRDPARTY_DIRECTORY=OFF # prevent ExternalProject_Add
+ -DUSE_MSVC_RUNTIME_LIBRARY_DLL:BOOL=${USE_DYNAMIC_RUNTIME}
+ -DGLSLANG_WITHOUT_INSTALL=OFF
+ -DSPIRVCROSS_WITHOUT_INSTALL=OFF
+ MAYBE_UNUSED_VARIABLES
+ USE_MSVC_RUNTIME_LIBRARY_DLL
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake")
+
+if("tool" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES ShaderTranspiler AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/debug/bin"
+ "${CURRENT_PACKAGES_DIR}/bin"
+)
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") \ No newline at end of file
diff --git a/vcpkg/ports/llgi/vcpkg.json b/vcpkg/ports/llgi/vcpkg.json
new file mode 100644
index 0000000..e4d5bb8
--- /dev/null
+++ b/vcpkg/ports/llgi/vcpkg.json
@@ -0,0 +1,36 @@
+{
+ "name": "llgi",
+ "version-date": "2023-12-19",
+ "port-version": 1,
+ "homepage": "https://github.com/altseed/LLGI",
+ "license": null,
+ "supports": "!(uwp | android)",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "tool": {
+ "description": "Build ShaderTranspiler",
+ "dependencies": [
+ "glslang",
+ "spirv-cross"
+ ]
+ },
+ "vulkan": {
+ "description": "Build vulkan modules",
+ "supports": "windows | linux",
+ "dependencies": [
+ "glslang",
+ "spirv-cross",
+ "vulkan"
+ ]
+ }
+ }
+}