summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2020-07-17 12:35:23 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2020-07-17 13:56:36 +0200
commit6721ecdd3deb6e5839462086e9526d6f6c744cea (patch)
treeb7c5ee1cb2130a674d82850fc9c158d850c3eb17
parent303e3df046a6e3130f6b5543c8e6ca0c6930687b (diff)
downloadptxdist-6721ecdd3deb6e5839462086e9526d6f6c744cea.tar.gz
ptxdist-6721ecdd3deb6e5839462086e9526d6f6c744cea.tar.xz
shaderc: new package
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Message-Id: <20200717103523.12388-1-p.zabel@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--rules/host-shaderc.in7
-rw-r--r--rules/host-shaderc.make65
-rw-r--r--rules/shaderc.in41
-rw-r--r--rules/shaderc.make115
4 files changed, 228 insertions, 0 deletions
diff --git a/rules/host-shaderc.in b/rules/host-shaderc.in
new file mode 100644
index 000000000..2619ae5da
--- /dev/null
+++ b/rules/host-shaderc.in
@@ -0,0 +1,7 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SHADERC
+ tristate
+ default y if ALLYES
+ select HOST_CMAKE
+ select HOST_SYSTEM_PYTHON3
diff --git a/rules/host-shaderc.make b/rules/host-shaderc.make
new file mode 100644
index 000000000..0ee834d1b
--- /dev/null
+++ b/rules/host-shaderc.make
@@ -0,0 +1,65 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SHADERC) += host-shaderc
+
+HOST_SHADERC_GLSLANG_MD5 := $(SHADERC_GLSLANG_MD5)
+HOST_SHADERC_GLSLANG_URL := $(SHADERC_GLSLANG_URL)
+HOST_SHADERC_GLSLANG_SOURCE := $(SHADERC_GLSLANG_SOURCE)
+HOST_SHADERC_GLSLANG_DIR := $(HOST_SHADERC_DIR)/third_party/glslang
+
+HOST_SHADERC_SPIRV_TOOLS_MD5 = $(SHADERC_SPIRV_TOOLS_MD5)
+HOST_SHADERC_SPIRV_TOOLS_URL = $(SHADERC_SPIRV_TOOLS_URL)
+HOST_SHADERC_SPIRV_TOOLS_SOURCE = $(SHADERC_SPIRV_TOOLS_SOURCE)
+HOST_SHADERC_SPIRV_TOOLS_DIR = $(HOST_SHADERC_DIR)/third_party/spirv-tools
+
+HOST_SHADERC_SPIRV_HEADERS_MD5 = $(SHADERC_SPIRV_HEADERS_MD5)
+HOST_SHADERC_SPIRV_HEADERS_URL = $(SHADERC_SPIRV_HEADERS_URL)
+HOST_SHADERC_SPIRV_HEADERS_SOURCE = $(SHADERC_SPIRV_HEADERS_SOURCE)
+HOST_SHADERC_SPIRV_HEADERS_DIR = $(HOST_SHADERC_DIR)/third_party/spirv-tools/external/spirv-headers
+
+HOST_SHADERC_SOURCES = \
+ $(HOST_SHADERC_SOURCE) \
+ $(HOST_SHADERC_GLSLANG_SOURCE) \
+ $(HOST_SHADERC_SPIRV_TOOLS_SOURCE) \
+ $(HOST_SHADERC_SPIRV_HEADERS_SOURCE)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/host-shaderc.extract:
+ @$(call targetinfo)
+ @$(call clean, $(HOST_SHADERC_DIR))
+ @$(call extract, HOST_SHADERC)
+ @$(call extract, HOST_SHADERC_GLSLANG)
+ @$(call extract, HOST_SHADERC_SPIRV_TOOLS)
+ @$(call extract, HOST_SHADERC_SPIRV_HEADERS)
+ @$(call patchin, HOST_SHADERC)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+HOST_SHADERC_CONF_TOOL := cmake
+HOST_SHADERC_CONF_OPT := \
+ $(HOST_CMAKE_OPT) \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DSHADERC_ENABLE_SPVC=OFF \
+ -DSHADERC_SKIP_INSTALL=OFF \
+ -DSHADERC_SKIP_TESTS=ON \
+ -DSHADERC_SPVC_ENABLE_DIRECT_LOGGING=OFF \
+ -DSHADERC_SPVC_DISABLE_CONTEXT_LOGGING=OFF \
+ -DSHADERC_ENABLE_WERROR_COMPILE=ON
+
+# vim: syntax=make
diff --git a/rules/shaderc.in b/rules/shaderc.in
new file mode 100644
index 000000000..ccb3bc538
--- /dev/null
+++ b/rules/shaderc.in
@@ -0,0 +1,41 @@
+## SECTION=multimedia_libs
+
+menuconfig SHADERC
+ tristate
+ prompt "shaderc"
+ select HOST_CMAKE
+ select HOST_SYSTEM_PYTHON3
+ help
+ A collection of tools, libraries and tests for shader compilation.
+
+if SHADERC
+
+config SHADERC_GLSLC
+ bool
+ prompt "install glslc"
+ help
+ Install glslc tool.
+
+config SHADERC_SPVC
+ bool
+ # requires SPIRV-Cross
+ depends on BROKEN
+ prompt "install spvc"
+ help
+ Install spvc tool.
+
+config SHADERC_LIBSHADERC
+ bool
+ prompt "install libshaderc"
+ help
+ Install libshaderc shared library.
+
+config SHADERC_LIBSHADERC_SPVC
+ bool
+ # requires SPIRV-Cross
+ depends on BROKEN
+ prompt "install libshaderc_spvc"
+ help
+ Install libshaderc_spvc shared library.
+
+endif
diff --git a/rules/shaderc.make b/rules/shaderc.make
new file mode 100644
index 000000000..863df8c98
--- /dev/null
+++ b/rules/shaderc.make
@@ -0,0 +1,115 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2020 by Philipp Zabel <p.zabel@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SHADERC) += shaderc
+
+#
+# Paths and names
+#
+SHADERC_VERSION := v2020.1
+SHADERC_MD5 := d12155e2e15a3717a9e71468b844a9ce
+SHADERC := shaderc-$(SHADERC_VERSION)
+SHADERC_SUFFIX := tar.gz
+SHADERC_URL := \
+ https://github.com/google/shaderc/archive/$(SHADERC_VERSION).$(SHADERC_SUFFIX)
+SHADERC_SOURCE := $(SRCDIR)/$(SHADERC).$(SHADERC_SUFFIX)
+SHADERC_DIR := $(BUILDDIR)/$(SHADERC)
+SHADERC_LICENSE := Apache-2.0 AND BSD-3-clause AND MIT AND Apple-MIT-License
+SHADERC_LICENSE_FILES := \
+ file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \
+ file://third_party/glslang/LICENSE.txt;md5=918e668376010a04448a312fb37ae69b \
+ file://third_party/spirv-tools/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+SHADERC_GLSLANG_MD5 = $(GLSLANG_MD5)
+SHADERC_GLSLANG_URL = $(GLSLANG_URL)
+SHADERC_GLSLANG_SOURCE = $(GLSLANG_SOURCE)
+SHADERC_GLSLANG_DIR = $(SHADERC_DIR)/third_party/glslang
+
+SHADERC_SPIRV_TOOLS_MD5 = $(SPIRV_TOOLS_MD5)
+SHADERC_SPIRV_TOOLS_URL = $(SPIRV_TOOLS_URL)
+SHADERC_SPIRV_TOOLS_SOURCE = $(SPIRV_TOOLS_SOURCE)
+SHADERC_SPIRV_TOOLS_DIR = $(SHADERC_DIR)/third_party/spirv-tools
+
+SHADERC_SPIRV_HEADERS_MD5 = $(SPIRV_HEADERS_MD5)
+SHADERC_SPIRV_HEADERS_URL = $(SPIRV_HEADERS_URL)
+SHADERC_SPIRV_HEADERS_SOURCE = $(SPIRV_HEADERS_SOURCE)
+SHADERC_SPIRV_HEADERS_DIR = $(SHADERC_DIR)/third_party/spirv-tools/external/spirv-headers
+
+SHADERC_SOURCES = \
+ $(SHADERC_SOURCE) \
+ $(SHADERC_GLSLANG_SOURCE) \
+ $(SHADERC_SPIRV_TOOLS_SOURCE) \
+ $(SHADERC_SPIRV_HEADERS_SOURCE)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/shaderc.extract:
+ @$(call targetinfo)
+ @$(call clean, $(SHADERC_DIR))
+ @$(call extract, SHADERC)
+ @$(call extract, SHADERC_GLSLANG)
+ @$(call extract, SHADERC_SPIRV_TOOLS)
+ @$(call extract, SHADERC_SPIRV_HEADERS)
+ @$(call patchin, SHADERC)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SHADERC_CONF_TOOL := cmake
+SHADERC_CONF_OPT := \
+ $(CROSS_CMAKE_USR) \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DSHADERC_ENABLE_SPVC=$(call ptx/onoff, PTXCONF_SHADERC_SPVC) \
+ -DSHADERC_SKIP_INSTALL=OFF \
+ -DSHADERC_SKIP_TESTS=ON \
+ -DSHADERC_SPVC_ENABLE_DIRECT_LOGGING=OFF \
+ -DSHADERC_SPVC_DISABLE_CONTEXT_LOGGING=OFF \
+ -DSHADERC_ENABLE_WERROR_COMPILE=ON
+
+# -DSHADERC_ENABLE_SHARED_CRT=OFF
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/shaderc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, shaderc)
+ @$(call install_fixup, shaderc, PRIORITY, optional)
+ @$(call install_fixup, shaderc, SECTION, base)
+ @$(call install_fixup, shaderc, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
+ @$(call install_fixup, shaderc, DESCRIPTION, A collection of tools, libraries and tests for shader compilation)
+
+ifdef PTXCONF_SHADERC_GLSLC
+ @$(call install_copy, shaderc, 0, 0, 0755, -, /usr/bin/glslc)
+endif
+ifdef PTXCONF_SHADERC_SPVC
+ @$(call install_copy, shaderc, 0, 0, 0755, -, /usr/bin/spvc)
+endif
+
+ifdef PTXCONF_SHADERC_LIBSHADERC
+ @$(call install_lib, shaderc, 0, 0, 0644, libshaderc_shared)
+endif
+ifdef PTXCONF_SHADERC_LIBSHADERC_SPVC
+ @$(call install_lib, shaderc, 0, 0, 0644, libshaderc_spvc)
+endif
+
+ @$(call install_finish, shaderc)
+
+ @$(call touch)
+
+# vim: syntax=make