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>

Reply via email to