From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28] helo=dude02.pengutronix.de.) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1isOQz-0004I7-0q for ptxdist@pengutronix.de; Fri, 17 Jan 2020 11:00:57 +0100 From: Philipp Zabel Date: Fri, 17 Jan 2020 11:00:54 +0100 Message-Id: <20200117100055.9110-6-p.zabel@pengutronix.de> In-Reply-To: <20200117100055.9110-1-p.zabel@pengutronix.de> References: <20200117100055.9110-1-p.zabel@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH v2 6/7] spirv-tools: new package List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Add SPIR-V tools, required to build Vulkan validation layers. Signed-off-by: Philipp Zabel --- 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 +# +# 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 ") + @$(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