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,