From 002144acfb7ee861c46b6c45f3848f2d2e977158 Mon Sep 17 00:00:00 2001 From: Alejandro Acosta Date: Mon, 5 Aug 2024 14:55:36 +0100 Subject: [PATCH] Use enable-global-offset only for nvidia backend --- cmake/FindDPCPP.cmake | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cmake/FindDPCPP.cmake b/cmake/FindDPCPP.cmake index 2954d259d6..6ed98d3e4b 100644 --- a/cmake/FindDPCPP.cmake +++ b/cmake/FindDPCPP.cmake @@ -39,31 +39,35 @@ find_library(DPCPP_LIB_DIR NAMES sycl sycl6 PATHS "${DPCPP_BIN_DIR}/../lib") add_library(DPCPP::DPCPP INTERFACE IMPORTED) set(DPCPP_FLAGS "-fsycl;") +set(DPCPP_COMPILE_ONLY_FLAGS "") + if(NOT "${DPCPP_SYCL_TARGET}" STREQUAL "") list(APPEND DPCPP_FLAGS "-fsycl-targets=${DPCPP_SYCL_TARGET};") endif() -list(APPEND DPCPP_FLAGS "${DPCPP_USER_FLAGS};") + +if(NOT "${DPCPP_USER_FLAGS}" STREQUAL "") + list(APPEND DPCPP_FLAGS "${DPCPP_USER_FLAGS};") +endif() if(NOT "${DPCPP_SYCL_ARCH}" STREQUAL "") if("${DPCPP_SYCL_TARGET}" STREQUAL "nvptx64-nvidia-cuda") list(APPEND DPCPP_FLAGS "-Xsycl-target-backend") list(APPEND DPCPP_FLAGS "--cuda-gpu-arch=${DPCPP_SYCL_ARCH}") + list(APPEND DPCPP_COMPILE_ONLY_FLAGS; "-mllvm;-enable-global-offset=false;") endif() endif() -set(DPCPP_COMPILE_FLAGS "${DPCPP_FLAGS};-mllvm;-enable-global-offset=false") - if(UNIX) set_target_properties(DPCPP::DPCPP PROPERTIES - INTERFACE_COMPILE_OPTIONS "${DPCPP_COMPILE_FLAGS}" + INTERFACE_COMPILE_OPTIONS "${DPCPP_FLAGS};${DPCPP_COMPILE_ONLY_FLAGS}" INTERFACE_LINK_OPTIONS "${DPCPP_FLAGS}" INTERFACE_LINK_LIBRARIES ${DPCPP_LIB_DIR} INTERFACE_INCLUDE_DIRECTORIES "${DPCPP_BIN_DIR}/../include/sycl;${DPCPP_BIN_DIR}/../include") message(STATUS "DPCPP INCLUDE DIR: ${DPCPP_BIN_DIR}/../include/sycl;${DPCPP_BIN_DIR}/../include") - message(STATUS "Using DPCPP flags: ${DPCPP_FLAGS}") + message(STATUS "Using DPCPP flags: ${DPCPP_FLAGS};${DPCPP_COMPILE_ONLY_FLAGS}") else() set_target_properties(DPCPP::DPCPP PROPERTIES - INTERFACE_COMPILE_OPTIONS "${DPCPP_COMPILE_FLAGS}" + INTERFACE_COMPILE_OPTIONS "${DPCPP_FLAGS};${DPCPP_COMPILE_ONLY_FLAGS}" INTERFACE_LINK_LIBRARIES ${DPCPP_LIB_DIR} INTERFACE_INCLUDE_DIRECTORIES "${DPCPP_BIN_DIR}/../include/sycl") endif()