mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Philipp Zabel <p.zabel@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: [ptxdist] [PATCH v2 6/7] spirv-tools: new package
Date: Fri, 17 Jan 2020 11:00:54 +0100	[thread overview]
Message-ID: <20200117100055.9110-6-p.zabel@pengutronix.de> (raw)
In-Reply-To: <20200117100055.9110-1-p.zabel@pengutronix.de>

Add SPIR-V tools, required to build Vulkan validation layers.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
---
New in v2.
---
 rules/spirv-tools.in   |  18 ++++++++
 rules/spirv-tools.make | 101 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 119 insertions(+)
 create mode 100644 rules/spirv-tools.in
 create mode 100644 rules/spirv-tools.make

diff --git a/rules/spirv-tools.in b/rules/spirv-tools.in
new file mode 100644
index 000000000000..e14eeecb1321
--- /dev/null
+++ b/rules/spirv-tools.in
@@ -0,0 +1,18 @@
+## SECTION=multimedia_libs
+
+menuconfig SPIRV_TOOLS
+	tristate
+	prompt "spirv-tools"
+	select HOST_CMAKE
+	help
+	  SPIR-V Tools
+
+if SPIRV_TOOLS
+
+config SPIRV_TOOLS_LIB
+	bool
+	prompt "install shared library"
+	help
+	  Install libSPIRV-Tools-shared library
+
+endif
diff --git a/rules/spirv-tools.make b/rules/spirv-tools.make
new file mode 100644
index 000000000000..9267152a2d00
--- /dev/null
+++ b/rules/spirv-tools.make
@@ -0,0 +1,101 @@
+# -*-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_SPIRV_TOOLS) += spirv-tools
+
+#
+# Paths and names
+#
+SPIRV_TOOLS_VERSION	:= 2019.5
+SPIRV_TOOLS_MD5		:= b502db437d874d3cd1a4046f21fce61c
+SPIRV_TOOLS		:= spirv-tools-$(SPIRV_TOOLS_VERSION)
+SPIRV_TOOLS_SUFFIX	:= tar.gz
+SPIRV_TOOLS_URL		:= https://github.com/KhronosGroup/SPIRV-Tools/archive/v$(SPIRV_TOOLS_VERSION).$(SPIRV_TOOLS_SUFFIX)
+SPIRV_TOOLS_SOURCE	:= $(SRCDIR)/$(SPIRV_TOOLS).$(SPIRV_TOOLS_SUFFIX)
+SPIRV_TOOLS_DIR		:= $(BUILDDIR)/$(SPIRV_TOOLS)
+SPIRV_TOOLS_LICENSE	:= Apache-2.0
+SPIRV_TOOLS_LICENSE_FILES := file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57
+
+SPIRV_HEADERS_VERSION	:= 1.5.1.corrected
+SPIRV_HEADERS_MD5	:= c8af73a139d18a40706f800b1e35cb9d
+SPIRV_HEADERS_SUFFIX	:= tar.gz
+SPIRV_HEADERS_URL	:= https://github.com/KhronosGroup/SPIRV-Headers/archive/$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
+SPIRV_HEADERS_SOURCE	:= $(SRCDIR)/spirv-headers-$(SPIRV_HEADERS_VERSION).$(SPIRV_HEADERS_SUFFIX)
+$(SPIRV_HEADERS_SOURCE) := SPIRV_HEADERS
+SPIRV_HEADERS_DIR	:= $(SPIRV_TOOLS_DIR)/external/spirv-headers
+
+SPIRV_TOOLS_SOURCES	:= $(SPIRV_TOOLS_SOURCE) $(SPIRV_HEADERS_SOURCE)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/spirv-tools.extract:
+	@$(call targetinfo)
+	@$(call clean, $(SPIRV_TOOLS_DIR))
+	@$(call extract, SPIRV_TOOLS)
+	@$(call extract, SPIRV_HEADERS)
+	@$(call patchin, SPIRV_TOOLS)
+	@$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SPIRV_TOOLS_CONF_TOOL	:= cmake
+SPIRV_TOOLS_CONF_OPT	:= \
+	$(CROSS_CMAKE_USR) \
+	-DCMAKE_BUILD_TYPE=Release \
+	-DCMAKE_INSTALL_LIBDIR=/usr/lib \
+	-DSPIRV_ALLOW_TIMERS=ON \
+	-DSKIP_SPIRV_TOOLS_INSTALL=OFF \
+	-DSPIRV_WERROR=OFF \
+	-DSPIRV_WARN_EVERYTHING=OFF \
+	-DSPIRV_COLOR_TERMINAL=ON \
+	-DSPIRV_LOG_DEBUG=OFF \
+	-DSPIRV_SKIP_EXECUTABLES=ON \
+	-DSPIRV_SKIP_TESTS=ON
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/spirv-tools.install:
+	@$(call targetinfo)
+	@install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/libSPIRV-Tools.a $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools.a
+	@install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/opt/libSPIRV-Tools-opt.a $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools-opt.a
+	@install -vD -m 644 $(SPIRV_TOOLS_DIR)-build/source/libSPIRV-Tools-shared.so $(SPIRV_TOOLS_PKGDIR)/usr/lib/libSPIRV-Tools-shared.so
+	@mkdir -p $(SPIRV_TOOLS_PKGDIR)/usr/include
+	@cp -r $(SPIRV_TOOLS_DIR)/include/spirv-tools $(SPIRV_TOOLS_PKGDIR)/usr/include
+	$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/spirv-tools.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, spirv-tools)
+	@$(call install_fixup, spirv-tools, PRIORITY, optional)
+	@$(call install_fixup, spirv-tools, SECTION, base)
+	@$(call install_fixup, spirv-tools, AUTHOR, "Philipp Zabel <p.zabel@pengutronix.de>")
+	@$(call install_fixup, spirv-tools, DESCRIPTION, SPIR-V Tools)
+
+ifdef PTXCONF_SPIRV_TOOLS_LIB
+	@$(call install_lib, spirv-tools, 0, 0, 0644, libSPIRV-Tools-shared)
+endif
+
+	@$(call install_finish, spirv-tools)
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.20.1


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  parent reply	other threads:[~2020-01-17 10:00 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-17 10:00 [ptxdist] [PATCH v2 1/7] vulkan-loader: " Philipp Zabel
2020-01-17 10:00 ` [ptxdist] [PATCH v2 2/7] mesalib: enable zink gallium driver Philipp Zabel
2020-01-17 10:00 ` [ptxdist] [PATCH v2 3/7] mesalib: enable vulkan drivers Philipp Zabel
2020-01-17 10:00 ` [ptxdist] [PATCH v2 4/7] gst-plugins-bad1: enable vulkan plugin Philipp Zabel
2020-01-17 10:00 ` [ptxdist] [PATCH v2 5/7] glslang: new package Philipp Zabel
2020-02-02 14:46   ` Michael Olbrich
2020-01-17 10:00 ` Philipp Zabel [this message]
2020-01-17 10:00 ` [ptxdist] [PATCH v2 7/7] vulkan-validationlayers: " Philipp Zabel
2020-02-02 14:09   ` Michael Olbrich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200117100055.9110-6-p.zabel@pengutronix.de \
    --to=p.zabel@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox