Skip to content

Commit d389bd4

Browse files
authored
Use IntelSYCL cmake script (#1611)
1 parent 5d8cf2d commit d389bd4

File tree

6 files changed

+400
-28
lines changed

6 files changed

+400
-28
lines changed

CMakeLists.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
cmake_minimum_required(VERSION 3.21...3.26 FATAL_ERROR)
2-
3-
if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24")
4-
cmake_policy(SET CMP0135 NEW)
5-
endif()
1+
cmake_minimum_required(VERSION 3.21...3.27 FATAL_ERROR)
62

73
project(dpnp
84
DESCRIPTION "NumPy-like API accelerated by SYCL."
@@ -27,7 +23,7 @@ endif()
2723
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${DPCTL_MODULE_PATH})
2824

2925

30-
find_package(IntelDPCPP REQUIRED)
26+
find_package(IntelSYCL REQUIRED PATHS ${CMAKE_SOURCE_DIR}/dpnp/backend/cmake/Modules NO_DEFAULT_PATH)
3127
find_package(TBB QUIET)
3228
if(TBB_FOUND)
3329
find_package(TBB REQUIRED)
@@ -77,7 +73,7 @@ FetchContent_Declare(
7773
)
7874
FetchContent_MakeAvailable(pybind11)
7975

80-
find_package(PythonExtensions REQUIRED)
76+
find_package(Python REQUIRED COMPONENTS Development.Module)
8177
find_package(NumPy REQUIRED)
8278

8379
set(CYTHON_FLAGS "-t -w \"${CMAKE_SOURCE_DIR}\"")

dpnp/CMakeLists.txt

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,53 @@
11

22
function(build_dpnp_cython_ext _trgt _src _dest)
3+
set(options SYCL)
4+
cmake_parse_arguments(BUILD_DPNP_EXT "${options}" "" "" ${ARGN})
35
add_cython_target(${_trgt} ${_src} CXX OUTPUT_VAR _generated_src)
46
message(STATUS "Using ${_trgt}")
5-
add_library(${_trgt} MODULE ${_generated_src})
7+
8+
Python_add_library(${_trgt} MODULE WITH_SOABI ${_generated_src})
69
set(_trgt_deps "${_trgt}_deps")
710
add_custom_target(${_trgt_deps} DEPENDS ${_src})
811
add_dependencies(${_trgt} ${_trgt_deps})
12+
13+
if (BUILD_DPNP_EXT_SYCL)
14+
add_sycl_to_target(TARGET ${_trgt} SOURCES ${_generated_src})
15+
endif()
16+
917
if (DPNP_GENERATE_COVERAGE)
1018
target_compile_definitions(${_trgt} PRIVATE CYTHON_TRACE=1 CYTHON_TRACE_NOGIL=1)
1119
target_compile_options(${_trgt} PRIVATE "-fno-sycl-use-footer")
1220
endif()
13-
target_compile_definitions(${_trgt} PRIVATE NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
21+
1422
# NumPy
23+
target_compile_definitions(${_trgt} PRIVATE NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION)
1524
target_include_directories(${_trgt} PRIVATE ${NumPy_INCLUDE_DIR})
25+
1626
# Dpctl
1727
target_include_directories(${_trgt} PRIVATE ${Dpctl_INCLUDE_DIR})
1828
target_link_directories(${_trgt} PRIVATE ${Dpctl_INCLUDE_DIR}/..)
19-
target_link_libraries(${_trgt} DPCTLSyclInterface)
29+
target_link_libraries(${_trgt} PRIVATE DPCTLSyclInterface)
2030

2131
set(_linker_options "LINKER:${DPNP_LDFLAGS}")
2232
target_link_options(${_trgt} PRIVATE ${_linker_options})
23-
python_extension_module(${_trgt})
2433

2534
if (DPNP_GENERATE_COVERAGE)
2635
set(_copy_cxx_trgt "${_trgt}_copy_cxx")
2736
add_custom_target(
28-
${_copy_cxx_trgt} ALL
29-
COMMAND ${CMAKE_COMMAND}
30-
-DSOURCE_FILE=${_generated_src}
31-
-DDEST=${CMAKE_CURRENT_SOURCE_DIR}
32-
-P ${CMAKE_SOURCE_DIR}/dpnp/cmake/copy_existing.cmake
33-
DEPENDS ${_trgt}
34-
VERBATIM
35-
COMMENT "Copying Cython-generated source for target ${_trgt} to dpnp source layout"
37+
${_copy_cxx_trgt} ALL COMMAND ${CMAKE_COMMAND}
38+
-DSOURCE_FILE=${_generated_src}
39+
-DDEST=${CMAKE_CURRENT_SOURCE_DIR}
40+
-P ${CMAKE_SOURCE_DIR}/dpnp/cmake/copy_existing.cmake
41+
DEPENDS ${_trgt}
42+
VERBATIM COMMENT "Copying Cython-generated source for target ${_trgt} to dpnp source layout"
3643
)
3744
endif()
3845
install(TARGETS ${_trgt} LIBRARY DESTINATION ${_dest})
3946
endfunction()
4047

4148
function(build_dpnp_cython_ext_with_backend _trgt _src _dest)
4249
build_dpnp_cython_ext(${_trgt} ${_src} ${_dest})
43-
target_link_libraries(${_trgt} dpnp_backend_library)
50+
target_link_libraries(${_trgt} PRIVATE dpnp_backend_library)
4451
if (UNIX)
4552
set_target_properties(${_trgt} PROPERTIES INSTALL_RPATH "$ORIGIN/..")
4653
endif()

0 commit comments

Comments
 (0)