# -*-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 := 2020.5
SPIRV_TOOLS_MD5 := 294a6497fc918eb3bff1cb9693ce78cd
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 := 2020-09-10-g060627f0b0d2
SPIRV_HEADERS_MD5 := 459fc2b250130c38c31e2d9690d32e69
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_HEADERS_DIR)/include/spirv $(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