diff options
author | Marek Szuba <marecki@gentoo.org> | 2016-09-01 11:14:49 +0200 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2016-09-02 09:37:11 +0200 |
commit | cd119cad371b2ddd61a50479eacf83e9f7f6efce (patch) | |
tree | b75cba33eee0a304e69ae433155bc3121bf48181 /dev-libs | |
parent | dev-java/leiningen-bin: Added to tree at v=2.7.0 (diff) | |
download | gentoo-cd119cad371b2ddd61a50479eacf83e9f7f6efce.tar.gz gentoo-cd119cad371b2ddd61a50479eacf83e9f7f6efce.tar.bz2 gentoo-cd119cad371b2ddd61a50479eacf83e9f7f6efce.zip |
dev-libs/beignet: new package.
An OpenCL implementation for Intel GPUs.
Multilib-aware, tested with on amd64 with ABI_X86="32 64". Builds with both
stable versions of sys-devel/llvm currently in Portage (3.5.0 and 3.7.1-r3).
Tests provided by upstream are not run because they require permissions
to access the GPU which the Portage user does not have.
Gentoo-Bug: 545924
Package-Manager: portage-2.3.0
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/beignet/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/beignet/beignet-1.1.2.ebuild | 96 | ||||
-rw-r--r-- | dev-libs/beignet/files/llvm-empty-system-libs.patch | 11 | ||||
-rw-r--r-- | dev-libs/beignet/files/llvm-terminfo.patch | 20 | ||||
-rw-r--r-- | dev-libs/beignet/files/no-debian-multiarch.patch | 39 | ||||
-rw-r--r-- | dev-libs/beignet/files/no-hardcoded-cflags.patch | 13 | ||||
-rw-r--r-- | dev-libs/beignet/metadata.xml | 8 |
7 files changed, 188 insertions, 0 deletions
diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest new file mode 100644 index 000000000000..b8b6ac72422f --- /dev/null +++ b/dev-libs/beignet/Manifest @@ -0,0 +1 @@ +DIST beignet-1.1.2.tar.gz 948241 SHA256 6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96 SHA512 25b7118976c385ad3b9db01afd3c9494ff9d050d44ee4266042abb4215747d8bb5086c06697f754956f562ea2b6e5ec51d51bbd651e8cd7cd0eb14eb8c83fbd4 WHIRLPOOL c3bfb7f4fa3c97bbd202ace868a08dce48753cac547b075e4c30cfff21cffcc5520ef4ef77b4e15fa8574a798f41a920e44503a160a1888e9ee4f2a737b37e82 diff --git a/dev-libs/beignet/beignet-1.1.2.ebuild b/dev-libs/beignet/beignet-1.1.2.ebuild new file mode 100644 index 000000000000..2591bc82e179 --- /dev/null +++ b/dev-libs/beignet/beignet-1.1.2.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) +CMAKE_BUILD_TYPE="Release" + +inherit python-any-r1 cmake-multilib + +DESCRIPTION="OpenCL implementation for Intel GPUs" +HOMEPAGE="https://01.org/beignet" + +LICENSE="LGPL-2.1+" +SLOT="0" + +if [[ "${PV}" == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="git://anongit.freedesktop.org/beignet" + KEYWORDS="" +else + KEYWORDS="~amd64" + SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz -> ${P}.tar.gz" + S=${WORKDIR}/Beignet-${PV}-Source +fi + +COMMON="${PYTHON_DEPS} + media-libs/mesa + sys-devel/clang + >=sys-devel/llvm-3.5 + x11-libs/libdrm[video_cards_intel] + x11-libs/libXext + x11-libs/libXfixes" +RDEPEND="${COMMON} + app-eselect/eselect-opencl" +DEPEND="${COMMON} + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/no-debian-multiarch.patch + "${FILESDIR}"/no-hardcoded-cflags.patch + "${FILESDIR}"/llvm-terminfo.patch + "${FILESDIR}"/llvm-empty-system-libs.patch +) + +DOCS=( + docs/. +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} != "binary" ]]; then + if [[ $(tc-getCC) == *gcc* ]] ; then + if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -lt 6 ]]; then + eerror "Compilation with gcc older than 4.6 is not supported" + die "Too old gcc found." + fi + fi + fi +} + +pkg_setup() { + python_setup +} + +src_prepare() { + cmake-utils_src_prepare + # We cannot run tests because they require permissions to access + # the hardware, and building them is very time-consuming. + cmake_comment_add_subdirectory utests +} + +multilib_src_configure() { + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" + + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}" + ) + + cmake-utils_src_configure +} + +multilib_src_install() { + VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" + + cmake-utils_src_install + + insinto /etc/OpenCL/vendors/ + echo "${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" + doins "${PN}-${ABI}.icd" + + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1 + dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so +} diff --git a/dev-libs/beignet/files/llvm-empty-system-libs.patch b/dev-libs/beignet/files/llvm-empty-system-libs.patch new file mode 100644 index 000000000000..d5e0cd704a7d --- /dev/null +++ b/dev-libs/beignet/files/llvm-empty-system-libs.patch @@ -0,0 +1,11 @@ +--- a/CMake/FindLLVM.cmake 2015-12-18 06:39:59.000000000 +0000 ++++ b/CMake/FindLLVM.cmake 2016-08-31 15:05:11.210679204 +0000 +@@ -99,7 +99,7 @@ + OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_ORIG + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +-string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS ${LLVM_SYSTEM_LIBS_ORIG}) ++string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_ORIG}") + endif (LLVM_VERSION_NODOT VERSION_GREATER 34) + + macro(add_one_lib name) diff --git a/dev-libs/beignet/files/llvm-terminfo.patch b/dev-libs/beignet/files/llvm-terminfo.patch new file mode 100644 index 000000000000..afbbc26a33de --- /dev/null +++ b/dev-libs/beignet/files/llvm-terminfo.patch @@ -0,0 +1,20 @@ +--- a/backend/src/CMakeLists.txt 2015-12-18 07:40:03.000000000 +0100 ++++ b/backend/src/CMakeLists.txt 2016-08-01 13:44:31.475875150 +0200 +@@ -153,7 +153,7 @@ + + add_library(gbeinterp SHARED gbe_bin_interpreter.cpp) + +-if (LLVM_VERSION_NODOT VERSION_EQUAL 34) ++if (NOT (LLVM_VERSION_NODOT LESS 34)) + find_library(TERMINFO NAMES tinfo ncurses) + if (${TERMINFO} STREQUAL TERMINFO-NOTFOUND) + message(FATAL_ERROR "no libtinfo or libncurses is found in system") +@@ -161,7 +161,7 @@ + target_link_libraries(gbe ${TERMINFO}) + message(STATUS "use ${TERMINFO} as terminal control library") + endif (${TERMINFO} STREQUAL TERMINFO-NOTFOUND) +-endif(LLVM_VERSION_NODOT VERSION_EQUAL 34) ++endif(NOT (LLVM_VERSION_NODOT LESS 34)) + + link_directories (${LLVM_LIBRARY_DIR} ${DRM_LIBDIR}) + diff --git a/dev-libs/beignet/files/no-debian-multiarch.patch b/dev-libs/beignet/files/no-debian-multiarch.patch new file mode 100644 index 000000000000..c9aef4d9dafc --- /dev/null +++ b/dev-libs/beignet/files/no-debian-multiarch.patch @@ -0,0 +1,39 @@ +--- a/CMakeLists.txt 2015-04-17 04:27:51.000000000 +0200 ++++ b/CMakeLists.txt 2015-05-20 20:59:17.895041760 +0200 +@@ -39,14 +39,9 @@ + + SET(CMAKE_VERBOSE_MAKEFILE "false") + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/") +-INCLUDE (GNUInstallDirs OPTIONAL) +-# support old CMake without GNUInstallDirs +-if (NOT CMAKE_INSTALL_FULL_LIBDIR) +- set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") +- set (BEIGNET_LIBRARY_ARCHITECTURE "") +-else (NOT CMAKE_INSTALL_FULL_LIBDIR) +- set (BEIGNET_LIBRARY_ARCHITECTURE "${CMAKE_LIBRARY_ARCHITECTURE}") +-endif (NOT CMAKE_INSTALL_FULL_LIBDIR) ++ ++set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") ++set (BEIGNET_LIBRARY_ARCHITECTURE "") + + if (NOT LIB_INSTALL_DIR) + set (LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") +@@ -55,17 +50,7 @@ + set (BEIGNET_INSTALL_DIR "${LIB_INSTALL_DIR}/beignet/") + endif (NOT BEIGNET_INSTALL_DIR) + +-# allow co-installation of 32- and 64-bit versions: +-# https://wiki.debian.org/Multiarch +-if (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") +- set (ICD_FILE_NAME "intel-beignet.icd") +-else (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") +- if (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") +- set (ICD_FILE_NAME "intel-beignet.icd") +- else (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") +- set (ICD_FILE_NAME "intel-beignet-${BEIGNET_LIBRARY_ARCHITECTURE}.icd") +- endif (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") +-endif (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") ++set (ICD_FILE_NAME "intel-beignet.icd") + + # Force Release with debug info + if (NOT CMAKE_BUILD_TYPE) diff --git a/dev-libs/beignet/files/no-hardcoded-cflags.patch b/dev-libs/beignet/files/no-hardcoded-cflags.patch new file mode 100644 index 000000000000..3dd67b741733 --- /dev/null +++ b/dev-libs/beignet/files/no-hardcoded-cflags.patch @@ -0,0 +1,13 @@ +--- a/CMakeLists.txt 2016-08-31 17:13:26.000000000 +0000 ++++ b/CMakeLists.txt 2016-08-31 17:00:40.000000000 +0000 +@@ -70,8 +70,8 @@ + elseif (COMPILER STREQUAL "ICC") + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E") + endif () +-set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof") +-set (CMAKE_C_FLAGS "${CMAKE_C_CXX_FLAGS}") ++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof") ++set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1") + set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1") + set (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0") diff --git a/dev-libs/beignet/metadata.xml b/dev-libs/beignet/metadata.xml new file mode 100644 index 000000000000..3e5026ee3754 --- /dev/null +++ b/dev-libs/beignet/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> + </maintainer> +</pkgmetadata> |