diff --git a/dpctl/.gitignore b/dpctl/.gitignore index 0c03f1ed6a..3e23a8af25 100644 --- a/dpctl/.gitignore +++ b/dpctl/.gitignore @@ -1,5 +1,6 @@ *.so *.cpp +*.cxx *.c *.h memory/*.h diff --git a/dpctl/CMakeLists.txt b/dpctl/CMakeLists.txt index 275fe83f80..69292f897e 100644 --- a/dpctl/CMakeLists.txt +++ b/dpctl/CMakeLists.txt @@ -1,6 +1,8 @@ find_package(PythonExtensions REQUIRED) find_package(NumPy REQUIRED) + +set(CYTHON_FLAGS "-w ${CMAKE_SOURCE_DIR}") find_package(Cython REQUIRED) if(WIN32) @@ -111,6 +113,10 @@ function(build_dpctl_ext _trgt _src _dest) add_library(${_trgt} MODULE ${_generated_src}) target_include_directories(${_trgt} PRIVATE ${NumPy_INCLUDE_DIR} ${DPCTL_INCLUDE_DIR}) add_dependencies(${_trgt} _build_time_create_dpctl_include) + if (DPCTL_GENERATE_COVERAGE) + target_compile_definitions(${_trgt} PRIVATE CYTHON_TRACE=1 CYTHON_TRACE_NOGIL=1) + target_compile_options(${_trgt} PRIVATE -fno-sycl-use-footer) + endif() target_link_libraries(${_trgt} DPCTLSyclInterface) target_link_options(${_trgt} PRIVATE "LINKER:${DPCTL_LDFLAGS}") python_extension_module(${_trgt}) @@ -124,15 +130,28 @@ function(build_dpctl_ext _trgt _src _dest) COMMAND ${CMAKE_COMMAND} -DSOURCE_FILE=${_generated_public_h} -DDEST=${CMAKE_CURRENT_SOURCE_DIR} - -P ${CMAKE_SOURCE_DIR}/dpctl/cmake/copy_generated_headers.cmake + -P ${CMAKE_SOURCE_DIR}/dpctl/cmake/copy_existing.cmake COMMAND ${CMAKE_COMMAND} -DSOURCE_FILE=${_generated_api_h} -DDEST=${CMAKE_CURRENT_SOURCE_DIR} - -P ${CMAKE_SOURCE_DIR}/dpctl/cmake/copy_generated_headers.cmake + -P ${CMAKE_SOURCE_DIR}/dpctl/cmake/copy_existing.cmake DEPENDS ${_trgt} VERBATIM - COMMENT "Copying Cython-generated headers to destination" + COMMENT "Copying Cython-generated headers to dpctl" ) + if (DPCTL_GENERATE_COVERAGE) + set(_copy_cxx_trgt "${_trgt}_copy_cxx") + add_custom_target( + ${_copy_cxx_trgt} ALL + COMMAND ${CMAKE_COMMAND} + -DSOURCE_FILE=${_generated_src} + -DDEST=${CMAKE_CURRENT_SOURCE_DIR} + -P ${CMAKE_SOURCE_DIR}/dpctl/cmake/copy_existing.cmake + DEPENDS ${_trgt} + VERBATIM + COMMENT "Copying Cython-generated source to dpctl" + ) + endif() install(TARGETS ${_trgt} LIBRARY DESTINATION ${_dest}) endfunction() diff --git a/dpctl/cmake/copy_generated_headers.cmake b/dpctl/cmake/copy_existing.cmake similarity index 100% rename from dpctl/cmake/copy_generated_headers.cmake rename to dpctl/cmake/copy_existing.cmake