mirror of
https://github.com/yann64/haikuports.git
synced 2026-03-19 01:46:00 +01:00
shaderc: add recipe
This commit is contained in:
163
media-libs/shaderc/patches/shaderc-2024.2.patchset
Normal file
163
media-libs/shaderc/patches/shaderc-2024.2.patchset
Normal file
@@ -0,0 +1,163 @@
|
||||
From 03055348b744b66c3cd76f8e2ab925aa91481e38 Mon Sep 17 00:00:00 2001
|
||||
From: Gerasim Troeglazov <3dEyes@gmail.com>
|
||||
Date: Fri, 13 Sep 2024 08:39:05 +1000
|
||||
Subject: Add patches for submodules
|
||||
|
||||
|
||||
diff --git a/third_party/abseil_cpp.patch b/third_party/abseil_cpp.patch
|
||||
new file mode 100644
|
||||
index 0000000..cf94bc8
|
||||
--- /dev/null
|
||||
+++ b/third_party/abseil_cpp.patch
|
||||
@@ -0,0 +1,26 @@
|
||||
+diff --git a/absl/base/internal/sysinfo.cc b/absl/base/internal/sysinfo.cc
|
||||
+index 79eaba3e..970cfdb8 100644
|
||||
+--- a/absl/base/internal/sysinfo.cc
|
||||
++++ b/absl/base/internal/sysinfo.cc
|
||||
+@@ -42,6 +42,10 @@
|
||||
+ #include <lwp.h>
|
||||
+ #endif
|
||||
+
|
||||
++#ifdef __HAIKU__
|
||||
++#include <OS.h>
|
||||
++#endif
|
||||
++
|
||||
+ #if defined(__myriad2__)
|
||||
+ #include <rtems.h>
|
||||
+ #endif
|
||||
+@@ -452,6 +456,10 @@ pid_t GetTID() { return getthrid(); }
|
||||
+
|
||||
+ pid_t GetTID() { return static_cast<pid_t>(_lwp_self()); }
|
||||
+
|
||||
++#elif defined(__HAIKU__)
|
||||
++
|
||||
++pid_t GetTID() { return static_cast<pid_t>(find_thread(NULL)); }
|
||||
++
|
||||
+ #elif defined(__native_client__)
|
||||
+
|
||||
+ pid_t GetTID() {
|
||||
diff --git a/third_party/glslang.patch b/third_party/glslang.patch
|
||||
new file mode 100644
|
||||
index 0000000..a14d4f7
|
||||
--- /dev/null
|
||||
+++ b/third_party/glslang.patch
|
||||
@@ -0,0 +1,75 @@
|
||||
+diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
|
||||
+index 66808812..8c0263d0 100644
|
||||
+--- a/SPIRV/CMakeLists.txt
|
||||
++++ b/SPIRV/CMakeLists.txt
|
||||
+@@ -82,7 +82,7 @@ add_library(SPIRV ${LIB_TYPE} ${SOURCES} ${HEADERS})
|
||||
+ add_library(glslang::SPIRV ALIAS SPIRV)
|
||||
+ set_target_properties(SPIRV PROPERTIES
|
||||
+ FOLDER glslang
|
||||
+- POSITION_INDEPENDENT_CODE ON
|
||||
++ POSITION_INDEPENDENT_CODE OFF
|
||||
+ VERSION "${GLSLANG_VERSION}"
|
||||
+ SOVERSION "${GLSLANG_VERSION_MAJOR}")
|
||||
+ target_include_directories(SPIRV PUBLIC
|
||||
+@@ -96,7 +96,7 @@ if (ENABLE_SPVREMAPPER)
|
||||
+ add_library(glslang::SPVRemapper ALIAS SPVRemapper)
|
||||
+ set_target_properties(SPVRemapper PROPERTIES
|
||||
+ FOLDER glslang
|
||||
+- POSITION_INDEPENDENT_CODE ON
|
||||
++ POSITION_INDEPENDENT_CODE OFF
|
||||
+ VERSION "${GLSLANG_VERSION}"
|
||||
+ SOVERSION "${GLSLANG_VERSION_MAJOR}")
|
||||
+ endif()
|
||||
+diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
|
||||
+index 8d4b1e9c..1001c5de 100644
|
||||
+--- a/glslang/CMakeLists.txt
|
||||
++++ b/glslang/CMakeLists.txt
|
||||
+@@ -50,7 +50,7 @@ endif()
|
||||
+ add_library(GenericCodeGen STATIC
|
||||
+ GenericCodeGen/CodeGen.cpp
|
||||
+ GenericCodeGen/Link.cpp)
|
||||
+-set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
++set_property(TARGET GenericCodeGen PROPERTY POSITION_INDEPENDENT_CODE OFF)
|
||||
+ set_property(TARGET GenericCodeGen PROPERTY FOLDER glslang)
|
||||
+
|
||||
+ ################################################################################
|
||||
+@@ -131,7 +131,7 @@ if(ENABLE_HLSL)
|
||||
+ endif()
|
||||
+
|
||||
+ add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
|
||||
+-set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
++set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE OFF)
|
||||
+ set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
|
||||
+
|
||||
+ if (NOT MSVC)
|
||||
+@@ -172,7 +172,7 @@ add_library(glslang ${LIB_TYPE} ${GLSLANG_SOURCES} ${GLSLANG_HEADERS})
|
||||
+ add_library(glslang::glslang ALIAS glslang)
|
||||
+ set_target_properties(glslang PROPERTIES
|
||||
+ FOLDER glslang
|
||||
+- POSITION_INDEPENDENT_CODE ON
|
||||
++ POSITION_INDEPENDENT_CODE OFF
|
||||
+ VERSION "${GLSLANG_VERSION}"
|
||||
+ SOVERSION "${GLSLANG_VERSION_MAJOR}")
|
||||
+ target_link_libraries(glslang PRIVATE OSDependent MachineIndependent)
|
||||
+@@ -207,7 +207,7 @@ set_target_properties(glslang-default-resource-limits PROPERTIES
|
||||
+ VERSION "${GLSLANG_VERSION}"
|
||||
+ SOVERSION "${GLSLANG_VERSION_MAJOR}"
|
||||
+ FOLDER glslang
|
||||
+- POSITION_INDEPENDENT_CODE ON)
|
||||
++ POSITION_INDEPENDENT_CODE OFF)
|
||||
+
|
||||
+ target_include_directories(glslang-default-resource-limits PUBLIC
|
||||
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
|
||||
+diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt
|
||||
+index 0c549756..48f6f73d 100644
|
||||
+--- a/glslang/OSDependent/Unix/CMakeLists.txt
|
||||
++++ b/glslang/OSDependent/Unix/CMakeLists.txt
|
||||
+@@ -33,7 +33,7 @@
|
||||
+
|
||||
+ add_library(OSDependent STATIC ossource.cpp ../osinclude.h)
|
||||
+ set_property(TARGET OSDependent PROPERTY FOLDER glslang)
|
||||
+-set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
++set_property(TARGET OSDependent PROPERTY POSITION_INDEPENDENT_CODE OFF)
|
||||
+
|
||||
+ # Link pthread
|
||||
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
diff --git a/third_party/spirv-tools.patch b/third_party/spirv-tools.patch
|
||||
new file mode 100644
|
||||
index 0000000..d04759e
|
||||
--- /dev/null
|
||||
+++ b/third_party/spirv-tools.patch
|
||||
@@ -0,0 +1,35 @@
|
||||
+diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
+index 0ba173f1..46b7f5a6 100644
|
||||
+--- a/CMakeLists.txt
|
||||
++++ b/CMakeLists.txt
|
||||
+@@ -33,7 +33,7 @@ set(SPIRV_TOOLS "SPIRV-Tools")
|
||||
+
|
||||
+ include(GNUInstallDirs)
|
||||
+
|
||||
+-set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
++set(CMAKE_POSITION_INDEPENDENT_CODE OFF)
|
||||
+
|
||||
+ # Require at least C++17
|
||||
+ if(NOT CMAKE_CXX_STANDARD)
|
||||
+@@ -74,6 +74,8 @@ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
|
||||
+ add_definitions(-DSPIRV_OPENBSD)
|
||||
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
|
||||
+ add_definitions(-DSPIRV_FUCHSIA)
|
||||
++elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Haiku")
|
||||
++ add_definitions(-DSPIRV_HAIKU)
|
||||
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||
+ add_definitions(-DSPIRV_GNU)
|
||||
+ elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "QNX")
|
||||
+diff --git a/source/print.cpp b/source/print.cpp
|
||||
+index f36812ef..faddfe50 100644
|
||||
+--- a/source/print.cpp
|
||||
++++ b/source/print.cpp
|
||||
+@@ -17,7 +17,7 @@
|
||||
+ #if defined(SPIRV_ANDROID) || defined(SPIRV_LINUX) || defined(SPIRV_MAC) || \
|
||||
+ defined(SPIRV_IOS) || defined(SPIRV_TVOS) || defined(SPIRV_FREEBSD) || \
|
||||
+ defined(SPIRV_OPENBSD) || defined(SPIRV_EMSCRIPTEN) || \
|
||||
+- defined(SPIRV_FUCHSIA) || defined(SPIRV_GNU) || defined(SPIRV_QNX)
|
||||
++ defined(SPIRV_FUCHSIA) || defined(SPIRV_GNU) || defined(SPIRV_QNX) || defined(SPIRV_HAIKU)
|
||||
+ namespace spvtools {
|
||||
+
|
||||
+ clr::reset::operator const char*() { return "\x1b[0m"; }
|
||||
--
|
||||
2.45.2
|
||||
|
||||
102
media-libs/shaderc/shaderc-2024.2.recipe
Normal file
102
media-libs/shaderc/shaderc-2024.2.recipe
Normal file
@@ -0,0 +1,102 @@
|
||||
SUMMARY="A collection of tools, libraries, and tests for Vulkan shader compilation"
|
||||
DESCRIPTION="At the moment it includes:
|
||||
* glslc, a command line compiler for GLSL/HLSL to SPIR-V, and
|
||||
* libshaderc, a library API for accessing glslc functionality.
|
||||
|
||||
Note: The fact that that libshaderc is not named libshaderc_glslc is a quirk of history, and a known \
|
||||
inconsistency. Changing it would require a significant amount of renaming and breaking of downstream \
|
||||
projects, so it is being left as is.
|
||||
|
||||
glslc wraps around core functionality in glslang and SPIRV-Tools. glslc and its library aims to to provide:
|
||||
* a command line compiler with GCC- and Clang-like usage, for better integration with build systems
|
||||
* an API where functionality can be added without breaking existing clients
|
||||
* an API supporting standard concurrency patterns across multiple operating systems
|
||||
* increased functionality such as file include support."
|
||||
HOMEPAGE="https://github.com/google/shaderc"
|
||||
COPYRIGHT="Google"
|
||||
LICENSE="Apache v2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://github.com/google/shaderc/archive/refs/tags/v${portVersion}.tar.gz"
|
||||
CHECKSUM_SHA256="c25e24d47c911b808266684d9c75ee09a390a5c537c17465eb15ea6905e702c3"
|
||||
SOURCE_DIR="shaderc-$portVersion"
|
||||
PATCHES="shaderc-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
commandBinDir=$binDir
|
||||
commandSuffix=$secondaryArchSuffix
|
||||
if [ "$targetArchitecture" = x86_gcc2 ]; then
|
||||
commandSuffix=
|
||||
commandBinDir=$prefix/bin
|
||||
fi
|
||||
|
||||
PROVIDES="
|
||||
shaderc$secondaryArchSuffix = $portVersion
|
||||
cmd:glslc$commandSuffix = $portVersion
|
||||
lib:libshaderc_shared$secondaryArchSuffix = 1 compat >= 1
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PROVIDES_devel="
|
||||
shaderc${secondaryArchSuffix}_devel = $portVersion
|
||||
devel:libshaderc_shared$secondaryArchSuffix = 1 compat >= 1
|
||||
"
|
||||
REQUIRES_devel="
|
||||
shaderc$secondaryArchSuffix == $portVersion base
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:cmake
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:git
|
||||
cmd:ninja
|
||||
cmd:patch
|
||||
cmd:pkg_config$secondaryArchSuffix
|
||||
cmd:python3
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
utils/git-sync-deps
|
||||
|
||||
patch -d third_party/abseil_cpp -f --merge -p1 < third_party/abseil_cpp.patch
|
||||
patch -d third_party/glslang -f --merge -p1 < third_party/glslang.patch
|
||||
patch -d third_party/spirv-tools -f --merge -p1 < third_party/spirv-tools.patch
|
||||
|
||||
cmake -Bbuild -S. -GNinja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_INSTALL_PREFIX=$prefix \
|
||||
-DCMAKE_INSTALL_BINDIR=$commandBinDir \
|
||||
-DCMAKE_INSTALL_LIBDIR=$libDir \
|
||||
-DCMAKE_INSTALL_INCLUDEDIR=$includeDir
|
||||
|
||||
ninja -C build $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
ninja -C build install
|
||||
|
||||
rm -rf $prefix/include
|
||||
rm -rf $libDir/*.a
|
||||
rm -rf $libDir/cmake
|
||||
rm -rf $libDir/libSPIRV-Tools-shared.so
|
||||
rm -rf $binDir/spirv* $prefix/bin/glslang*
|
||||
rm -rf $includeDir/{spirv-tools,re2,gtest,gmock,glslang}
|
||||
rm -rf $libDir/pkgconfig/re2.pc
|
||||
rm -rf $libDir/pkgconfig/gtest*.pc
|
||||
rm -rf $libDir/pkgconfig/gmock*.pc
|
||||
rm -rf $libDir/pkgconfig/SPIRV*.pc
|
||||
|
||||
prepareInstalledDevelLib libshaderc_shared
|
||||
fixPkgconfig
|
||||
|
||||
packageEntries devel \
|
||||
$developDir
|
||||
}
|
||||
Reference in New Issue
Block a user