From 414a9d6691e29879158185223e7a0f668a0e7a79 Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Thu, 7 Mar 2024 17:59:59 -0600 Subject: [PATCH 1/2] Do not install header files which are copied during building steps Installing them updates time-stamps on the files, and incremental rebuild is always rebuilding, even though no files are changed. With this change repeated invocation of `python scripts/build_locally.py` is effectively a no-op. --- CMakeLists.txt | 7 +------ libsyclinterface/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb1346a423..8e1f82fc36 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.21...3.27 FATAL_ERROR) project(dpctl - VERSION 0.15 + VERSION 0.17 LANGUAGES CXX DESCRIPTION "Python interface for XPU programming" ) @@ -47,11 +47,6 @@ endif() add_subdirectory(libsyclinterface) -file(GLOB _dpctl_capi_headers dpctl/apis/include/*.h*) -install(FILES ${_dpctl_capi_headers} - DESTINATION dpctl/include -) - # Define CMAKE_INSTALL_xxx: LIBDIR, INCLUDEDIR include(GNUInstallDirs) diff --git a/libsyclinterface/CMakeLists.txt b/libsyclinterface/CMakeLists.txt index e84959c1c3..6dc086fe8e 100644 --- a/libsyclinterface/CMakeLists.txt +++ b/libsyclinterface/CMakeLists.txt @@ -280,7 +280,7 @@ set_target_properties(DPCTLSyclInterface if (SKBUILD) set(_lib_destination dpctl) - set(_include_destination dpctl/include/syclinterface) + set(_include_destination ${CMAKE_INSTALL_PREFIX}/unused) else() set(_lib_destination ${CMAKE_INSTALL_PREFIX}/lib) set(_include_destination ${CMAKE_INSTALL_PREFIX}/include) From fd1d43c6c42fa9abd6f4d1212f09bf1679582b71 Mon Sep 17 00:00:00 2001 From: Oleksandr Pavlyk Date: Thu, 7 Mar 2024 18:02:03 -0600 Subject: [PATCH 2/2] Formatting changes only --- dpctl/CMakeLists.txt | 64 ++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/dpctl/CMakeLists.txt b/dpctl/CMakeLists.txt index 3125eae07d..30d98de5ea 100644 --- a/dpctl/CMakeLists.txt +++ b/dpctl/CMakeLists.txt @@ -91,7 +91,7 @@ foreach(hf ${_syclinterface_h}) add_custom_command(OUTPUT ${_target_header_file} COMMAND ${CMAKE_COMMAND} -E copy_if_different ${hf} ${_target_header_file} DEPENDS ${hf} _build_time_create_dpctl_include - VERBATIM + VERBATIM ) endforeach() @@ -144,19 +144,19 @@ function(build_dpctl_ext _trgt _src _dest) Python_add_library(${_trgt} MODULE WITH_SOABI ${_generated_src}) if (BUILD_DPCTL_EXT_SYCL) add_sycl_to_target(TARGET ${_trgt} SOURCES ${_generated_src}) - if(_dpctl_sycl_targets) - # make fat binary + if(_dpctl_sycl_targets) + # make fat binary target_compile_options( ${_trgt} PRIVATE -fsycl-targets=${_dpctl_sycl_targets} ) - target_link_options( - ${_trgt} - PRIVATE - -fsycl-targets=${_dpctl_sycl_targets} - ) - endif() + target_link_options( + ${_trgt} + PRIVATE + -fsycl-targets=${_dpctl_sycl_targets} + ) + endif() endif() target_include_directories(${_trgt} PRIVATE ${NumPy_INCLUDE_DIR} ${DPCTL_INCLUDE_DIR}) add_dependencies(${_trgt} _build_time_create_dpctl_include_copy ${_cythonize_trgt}) @@ -173,31 +173,31 @@ function(build_dpctl_ext _trgt _src _dest) set(_generated_api_h "${_generated_src_dir}/${_name_wle}_api.h") set(_copy_trgt "${_trgt}_copy_capi_include") add_custom_target( - ${_copy_trgt} ALL - COMMAND ${CMAKE_COMMAND} - -DSOURCE_FILE=${_generated_public_h} - -DDEST=${CMAKE_CURRENT_SOURCE_DIR} - -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_existing.cmake - DEPENDS ${_trgt} - VERBATIM - COMMENT "Copying Cython-generated headers to dpctl" + ${_copy_trgt} ALL + COMMAND ${CMAKE_COMMAND} + -DSOURCE_FILE=${_generated_public_h} + -DDEST=${CMAKE_CURRENT_SOURCE_DIR} + -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_existing.cmake + DEPENDS ${_trgt} + VERBATIM + 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" - ) + 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()