commit: 1aeb897a8fd01d3693dbead9c13317cff3a7e085
Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 12 10:09:44 2022 +0000
Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Dec 12 10:33:38 2022 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=1aeb897a
dev-python/dpnp: new package, add 0.10.0
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
dev-python/dpnp/dpnp-0.10.0.ebuild | 50 ++++++++++++++
.../dpnp/files/dpnp-0.10.0-fix-compile.patch | 76 ++++++++++++++++++++++
dev-python/dpnp/metadata.xml | 12 ++++
3 files changed, 138 insertions(+)
diff --git a/dev-python/dpnp/dpnp-0.10.0.ebuild
b/dev-python/dpnp/dpnp-0.10.0.ebuild
new file mode 100644
index 000000000..903a2f806
--- /dev/null
+++ b/dev-python/dpnp/dpnp-0.10.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+DESCRIPTION="Data Parallel Extension for NumPy"
+HOMEPAGE="https://github.com/IntelPython/dpnp"
+SRC_URI="https://github.com/IntelPython/dpnp/archive/refs/tags/${PV}.tar.gz ->
${P}.gh.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-util/cmake
+ sys-devel/DPC++
+"
+
+RDEPEND="
+ dev-cpp/tbb
+ dev-python/dpctl[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ sci-libs/mkl
+"
+DEPEND="${RDEPEND}
+ sys-devel/oneDPL
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-compile.patch"
+)
+
+python_prepare_all() {
+ # DPC++ compiler required for full functionality
+ export CC="${ESYSROOT}/usr/lib/llvm/intel/bin/clang"
+ export CXX="${ESYSROOT}/usr/lib/llvm/intel/bin/clang++"
+ export DPCPPROOT="${ESYSROOT}/usr/lib/llvm/intel"
+ export DPL_ROOT="${ESYSROOT}/usr/include/include/oneapi/dpl"
+ # Parallel build broken
+ export MAKEOPTS="-j1"
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/dpnp/files/dpnp-0.10.0-fix-compile.patch
b/dev-python/dpnp/files/dpnp-0.10.0-fix-compile.patch
new file mode 100644
index 000000000..49559afab
--- /dev/null
+++ b/dev-python/dpnp/files/dpnp-0.10.0-fix-compile.patch
@@ -0,0 +1,76 @@
+diff --git a/0.build.sh b/0.build.sh
+index c089b1d..3bb0739 100755
+--- a/0.build.sh
++++ b/0.build.sh
+@@ -10,14 +10,14 @@ python setup.py clean
+ DPLROOT=/opt/intel/oneapi/dpl/latest python setup.py build_clib
+
+ # inplace build
+-CC=dpcpp python setup.py build_ext --inplace
++CC=${CC} python setup.py build_ext --inplace
+
+ # development build. Root privileges needed
+ # python setup.py develop
+
+ echo
+ echo =========example3==============
+-dpcpp -g -fPIC dpnp/backend/examples/example3.cpp -Idpnp
-Idpnp/backend/include -Ldpnp -Wl,-rpath='$ORIGIN'/dpnp -ldpnp_backend_c -o
example3
++${CXX} -g -fPIC dpnp/backend/examples/example3.cpp -Idpnp
-Idpnp/backend/include -Ldpnp -Wl,-rpath='$ORIGIN'/dpnp -ldpnp_backend_c -o
example3
+ # LD_DEBUG=libs,bindings,symbols ./example3
+ ./example3
+
+diff --git a/dpnp/backend/CMakeLists.txt b/dpnp/backend/CMakeLists.txt
+index 81f073c..24c6b65 100644
+--- a/dpnp/backend/CMakeLists.txt
++++ b/dpnp/backend/CMakeLists.txt
+@@ -88,24 +88,6 @@ if (CMAKE_VERSION VERSION_EQUAL 3.19.1)
+ )
+ endif()
+
+-if(UNIX)
+- set(CMAKE_CXX_COMPILER "dpcpp")
+- # add_compile_options(-fPIC)
+-elseif(WIN32)
+- set(CMAKE_CXX_COMPILER "dpcpp")
+- # set(CMAKE_SHARED_LINKER_FLAGS_INIT "-fuse-ld=lld-link")
+- # set(CMAKE_LINKER "lld-link")
+- # include (Platform/Windows-Clang)
+- # set(CMAKE_LINKER "dpcpp")
+- # set(CMAKE_AR "llvm-ar")
+- # set(CMAKE_RANLIB "llvm-ranlib")
+- # set(CMAKE_CXX_FLAGS "/EHsc")
+-
+- add_compile_options(/EHsc) # /Ox /W3 /GL /DNDEBUG /MD /EHsc
+-else()
+- message(FATAL_ERROR "Unsupported system ${CMAKE_SYSTEM} in compiler
selection case")
+-endif()
+-
+ # set language version
+ set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+diff --git a/utils/command_build_clib.py b/utils/command_build_clib.py
+index dc9f322..35432fa 100644
+--- a/utils/command_build_clib.py
++++ b/utils/command_build_clib.py
+@@ -60,8 +60,8 @@ else:
+ Set compiler for the project
+ """
+ # default variables (for Linux)
+-_project_compiler = "dpcpp"
+-_project_linker = "dpcpp"
++_project_compiler = os.environ.get("CXX")
++_project_linker = os.environ.get("CXX")
+ _project_cmplr_flag_sycl_devel = ["-fsycl-device-code-split=per_kernel"]
+ _project_cmplr_flag_sycl = ["-fsycl"]
+ _project_cmplr_flag_stdcpp_static = [] # This brakes TBB
["-static-libstdc++", "-static-libgcc"]
+@@ -113,8 +113,8 @@ except ImportError:
+
+ # other OS specific
+ if IS_WIN:
+- _project_compiler = "dpcpp"
+- _project_linker = "lld-link"
++ _project_compiler = os.environ.get("CXX")
++ _project_linker = os.environ.get("CXX")
+ _project_cmplr_flag_sycl = []
+ _project_cmplr_flag_stdcpp_static = []
+ _project_cmplr_flag_compatibility = []
diff --git a/dev-python/dpnp/metadata.xml b/dev-python/dpnp/metadata.xml
new file mode 100644
index 000000000..868959c89
--- /dev/null
+++ b/dev-python/dpnp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>[email protected]</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">IntelPython/dpnp</remote-id>
+ <remote-id type="pypi">dpnp</remote-id>
+ </upstream>
+</pkgmetadata>