commit:     80af1504888fc6b7da1c5c0f3dd78ac0f6d98a65
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 12 15:13:16 2022 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Dec 12 15:13:16 2022 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=80af1504

dev-python/dpnp: add 0.11.0

Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 dev-python/dpnp/dpnp-0.11.0.ebuild                 | 57 +++++++++++++++
 .../dpnp/files/dpnp-0.11.0-fix-compile.patch       | 80 ++++++++++++++++++++++
 2 files changed, 137 insertions(+)

diff --git a/dev-python/dpnp/dpnp-0.11.0.ebuild 
b/dev-python/dpnp/dpnp-0.11.0.ebuild
new file mode 100644
index 000000000..da7abcc88
--- /dev/null
+++ b/dev-python/dpnp/dpnp-0.11.0.ebuild
@@ -0,0 +1,57 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+# Breaks the installation of the backend library
+#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
+       sys-devel/DPC++:=
+"
+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
+}
+
+python_compile() {
+       export BUILD_DIR_LIBS="${BUILD_DIR}/lib/dpnp"
+       distutils-r1_python_compile
+}

diff --git a/dev-python/dpnp/files/dpnp-0.11.0-fix-compile.patch 
b/dev-python/dpnp/files/dpnp-0.11.0-fix-compile.patch
new file mode 100644
index 000000000..2ccc0a6b8
--- /dev/null
+++ b/dev-python/dpnp/files/dpnp-0.11.0-fix-compile.patch
@@ -0,0 +1,80 @@
+diff --git a/dpnp/backend/CMakeLists.txt b/dpnp/backend/CMakeLists.txt
+index 409a29f..11d21f1 100644
+--- a/dpnp/backend/CMakeLists.txt
++++ b/dpnp/backend/CMakeLists.txt
+@@ -98,30 +98,7 @@ string(CONCAT COMMON_LINK_FLAGS
+   "-fsycl "
+   "-fsycl-device-code-split=per_kernel "
+ )
+-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")
+ 
+-  string(APPEND COMMON_COMPILER_FLAGS
+-    "/EHsc "
+-#    "/Ox "
+-#    "/W3 "
+-#    "/GL "
+-#    "/DNDEBUG "
+-#    "/MD "
+-  )
+-else()
+-  message(FATAL_ERROR "Unsupported system ${CMAKE_SYSTEM} in compiler 
selection case")
+-endif()
+ 
+ # set language version
+ set(CMAKE_CXX_STANDARD 17)
+@@ -327,6 +304,7 @@ endif()
+ # set_target_properties(dpnp_backend_c PROPERTIES VERSION ${DPNP_VERSION} 
SOVERSION ${DPNP_API_VERSION})
+ 
+ install(TARGETS dpnp_backend_c
++        DESTINATION ${DPNP_INSTALL_PREFIX}
+         PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ 
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+         )
+ 
+diff --git a/utils/command_build_clib.py b/utils/command_build_clib.py
+index 3d1177b..d8fbdac 100644
+--- a/utils/command_build_clib.py
++++ b/utils/command_build_clib.py
+@@ -61,8 +61,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", 
"-fno-approx-func"]
+ _project_cmplr_flag_sycl = ["-fsycl"]
+ _project_cmplr_flag_stdcpp_static = []  # This brakes TBB 
["-static-libstdc++", "-static-libgcc"]
+@@ -114,7 +114,7 @@ except ImportError:
+ 
+ # other OS specific
+ if IS_WIN:
+-    _project_compiler = "dpcpp"
++    _project_compiler = os.environ.get("CXX")
+     _project_linker = "lld-link"
+     _project_cmplr_flag_sycl = []
+     _project_cmplr_flag_stdcpp_static = []
+diff --git a/utils/command_build_cmake_clib.py 
b/utils/command_build_cmake_clib.py
+index 0ef0e24..84f2469 100644
+--- a/utils/command_build_cmake_clib.py
++++ b/utils/command_build_cmake_clib.py
+@@ -112,7 +112,7 @@ class custom_build_cmake_clib(build_clib.build_clib):
+             "-S" + backend_directory,
+             "-B" + abs_build_temp_path,
+             "-DCMAKE_BUILD_TYPE=" + config,
+-            "-DDPNP_INSTALL_PREFIX=" + install_directory.replace(os.sep, 
"/"),  # adjust to cmake requirenments
++            "-DDPNP_INSTALL_PREFIX=" + os.environ.get('BUILD_DIR_LIBS'),  # 
adjust to cmake requirenments
+             "-DDPNP_INSTALL_STRUCTURED=OFF",
+             # "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=" + install_directory,
+             "-DDPNP_SYCL_QUEUE_MGR_ENABLE:BOOL=" + _dpctrl_exists,

Reply via email to