mirror of
https://github.com/Kitware/CMake.git
synced 2026-11-06 05:16:58 +00:00
46 files changed
+185
-71
No files matched your search
@@ -121,7 +121,8 @@ When activated, this experimental feature provides the following:
|
||||
SYCL for C++ sources that can reach it.
|
||||
|
||||
The SYCL language is supported by Makefile, Ninja, FASTBuild, and Visual Studio
|
||||
generators with AdaptiveCpp, SYCL-capable Clang, or IntelLLVM compiler drivers.
|
||||
generators with AdaptiveCpp, SYCL-capable Clang, DPClang, or IntelLLVM compiler
|
||||
drivers.
|
||||
|
||||
:prop_tgt:`SYCL_SEPARABLE_COMPILATION` controls separate compilation of device
|
||||
code. :prop_tgt:`SYCL_RESOLVE_DEVICE_SYMBOLS` controls device linking, including
|
||||
|
||||
@@ -13,8 +13,8 @@ SYCL compiler:
|
||||
such as ``generic``, ``omp.accelerated``,
|
||||
``cuda.explicit-multipass:sm_80,sm_86``, and
|
||||
``hip.explicit-multipass:gfx90a``.
|
||||
* IntelLLVM accepts SYCL target triples or architecture aliases, such as
|
||||
``spir64`` and ``intel_gpu_pvc``.
|
||||
* IntelLLVM and DPClang accept SYCL target triples or architecture aliases, such
|
||||
as ``spir64`` and ``intel_gpu_pvc``.
|
||||
* Clang accepts offload target triples, such as ``spirv64-unknown-unknown``.
|
||||
|
||||
The compiler installation must support the requested targets. These values
|
||||
@@ -32,7 +32,7 @@ For example:
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "AdaptiveCpp")
|
||||
set_property(TARGET app PROPERTY SYCL_DEVICE_TARGETS
|
||||
cuda.explicit-multipass:sm_80)
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
elseif(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
set_property(TARGET app PROPERTY SYCL_DEVICE_TARGETS intel_gpu_pvc)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -103,6 +103,15 @@ Languages
|
||||
* ``import std`` is now available for all C++ 20 and later code with
|
||||
:prop_tgt:`CXX_SCAN_FOR_MODULES` enabled.
|
||||
|
||||
Compilers
|
||||
---------
|
||||
|
||||
* The `open-source DPC++ compiler`_, version 7.0 and newer, is now supported
|
||||
with :variable:`compiler id <CMAKE_<LANG>_COMPILER_ID>` ``DPClang`` for
|
||||
languages ``C`` and ``CXX``.
|
||||
|
||||
.. _`open-source DPC++ compiler`: https://github.com/intel/llvm
|
||||
|
||||
Command-Line
|
||||
------------
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ Value Name
|
||||
``Cray`` Cray Compiler
|
||||
``CrayClang`` Cray Clang-based Compiler
|
||||
``Diab`` `Wind River Systems Diab Compiler`_
|
||||
``DPClang`` `Open-source DPC++ Compiler`_
|
||||
``Embarcadero``, ``Borland`` `Embarcadero`_
|
||||
``Flang`` `Classic Flang Fortran Compiler`_
|
||||
``LLVMFlang`` `LLVM Flang Fortran Compiler`_
|
||||
@@ -69,8 +70,10 @@ languages.
|
||||
.. note::
|
||||
SYCL support is experimental and gated by ``CMAKE_EXPERIMENTAL_SYCL``.
|
||||
|
||||
.. _LLVM Clang: https://clang.llvm.org
|
||||
.. _AdaptiveCpp: https://adaptivecpp.github.io/
|
||||
.. _LLVM Clang: https://clang.llvm.org
|
||||
.. _Wind River Systems Diab Compiler: https://www.windriver.com/resource/wind-river-diab-compiler-product-overview
|
||||
.. _Open-source DPC++ Compiler: https://github.com/intel/llvm
|
||||
.. _Embarcadero: https://www.embarcadero.com
|
||||
.. _Classic Flang Fortran Compiler: https://github.com/flang-compiler/flang
|
||||
.. _LLVM Flang Fortran Compiler: https://github.com/llvm/llvm-project/tree/main/flang
|
||||
@@ -86,7 +89,6 @@ languages.
|
||||
.. _Pelles C: https://pellesc.se
|
||||
.. _Renesas Compiler: https://www.renesas.com
|
||||
.. _Small Device C Compiler: https://sdcc.sourceforge.net
|
||||
.. _Tiny C Compiler: https://bellard.org/tcc
|
||||
.. _Tasking Compiler Toolsets: https://www.tasking.com
|
||||
.. _Texas Instruments Clang-based Compilers: https://www.ti.com/tool/download/ARM-CGT-CLANG
|
||||
.. _Wind River Systems Diab Compiler: https://www.windriver.com/resource/wind-river-diab-compiler-product-overview
|
||||
.. _Tiny C Compiler: https://bellard.org/tcc
|
||||
@@ -45,6 +45,7 @@ function(compiler_id_detection outvar lang)
|
||||
list(APPEND ordered_compilers
|
||||
Intel
|
||||
IntelLLVM
|
||||
DPClang
|
||||
PathScale
|
||||
Embarcadero
|
||||
Borland
|
||||
|
||||
@@ -58,7 +58,7 @@ else()
|
||||
|
||||
# finally list compilers to try
|
||||
if(NOT CMAKE_C_COMPILER_INIT)
|
||||
set(CMAKE_C_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc icx clang)
|
||||
set(CMAKE_C_COMPILER_LIST ${_CMAKE_TOOLCHAIN_PREFIX}cc ${_CMAKE_TOOLCHAIN_PREFIX}gcc cl bcc xlc icx clang dpclang)
|
||||
endif()
|
||||
|
||||
_cmake_find_compiler(C)
|
||||
@@ -134,6 +134,7 @@ else()
|
||||
# They pre-date our support for the GNU-like variant targeting the
|
||||
# MSVC ABI so we do not consider that here.
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "Clang"
|
||||
OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xDPClang"
|
||||
OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xIntelLLVM")
|
||||
if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC")
|
||||
@@ -161,7 +162,7 @@ if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang|g?cc)(-cl)?(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(dpclang|clang|g?cc)(-cl)?(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
set(_CMAKE_TOOLCHAIN_SUFFIX ${CMAKE_MATCH_4})
|
||||
set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_6})
|
||||
|
||||
@@ -63,7 +63,7 @@ else()
|
||||
# on Windows, first introduced by Intel oneAPI 2023.0.
|
||||
list(APPEND CMAKE_CXX_COMPILER_LIST icpx)
|
||||
endif()
|
||||
list(APPEND CMAKE_CXX_COMPILER_LIST icx clang++)
|
||||
list(APPEND CMAKE_CXX_COMPILER_LIST icx clang++ dpclang++)
|
||||
endif()
|
||||
|
||||
_cmake_find_compiler(CXX)
|
||||
@@ -137,6 +137,7 @@ else()
|
||||
# They pre-date our support for the GNU-like variant targeting the
|
||||
# MSVC ABI so we do not consider that here.
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
|
||||
OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xDPClang"
|
||||
OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xIntelLLVM")
|
||||
if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "MSVC")
|
||||
@@ -166,7 +167,7 @@ if (NOT _CMAKE_TOOLCHAIN_PREFIX)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|QCC|LCC")
|
||||
get_filename_component(COMPILER_BASENAME "${CMAKE_CXX_COMPILER}" NAME)
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(clang\\+\\+|[gc]\\+\\+|clang-cl)(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
if (COMPILER_BASENAME MATCHES "^(.+-)?(dpclang\\+\\+|dpclang-cl|clang\\+\\+|[gc]\\+\\+|clang-cl)(-?[0-9]+(\\.[0-9]+)*)?(-[^.]+)?(\\.exe)?$")
|
||||
set(_CMAKE_TOOLCHAIN_PREFIX ${CMAKE_MATCH_1})
|
||||
set(_CMAKE_TOOLCHAIN_SUFFIX ${CMAKE_MATCH_3})
|
||||
set(_CMAKE_COMPILER_SUFFIX ${CMAKE_MATCH_5})
|
||||
|
||||
@@ -331,6 +331,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
|
||||
set(_variant "")
|
||||
if("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang"
|
||||
OR "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xDPClang"
|
||||
OR "x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xIntelLLVM")
|
||||
if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
@@ -374,7 +375,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
# for C++ and the GNU-frontend variant.
|
||||
set(CMAKE_${lang}_COMPILER_CLANG_RESOURCE_DIR "")
|
||||
if ("x${lang}" STREQUAL "xCXX" AND
|
||||
"x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang" AND
|
||||
CMAKE_${lang}_COMPILER_ID MATCHES "^(Clang|DPClang)$" AND
|
||||
"x${CMAKE_${lang}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_${lang}_COMPILER}"
|
||||
@@ -398,6 +399,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
if ("x${lang}" STREQUAL "xCXX" AND
|
||||
EXISTS "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/${lang}-DetectStdlib.h" AND
|
||||
("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xClang") OR
|
||||
("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xDPClang") OR
|
||||
("x${CMAKE_${lang}_COMPILER_ID}" STREQUAL "xGNU"))
|
||||
# See #20851 for a proper abstraction for this.
|
||||
|
||||
@@ -419,7 +421,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
|
||||
# Locate the standard library headers selected by Clang, including toolsets
|
||||
# discovered by the driver without a developer command prompt environment.
|
||||
set(_stdlib_trace_flags)
|
||||
if (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang")
|
||||
if (CMAKE_${lang}_COMPILER_ID MATCHES "^(Clang|DPClang)$")
|
||||
if (CMAKE_${lang}_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
list(APPEND _stdlib_trace_flags -clang:-H)
|
||||
else ()
|
||||
|
||||
@@ -184,6 +184,7 @@ if(NOT CMAKE_SYCL_COMPILER_ID_RUN)
|
||||
else()
|
||||
if(NOT DEFINED CMAKE_SYCL_COMPILER_FRONTEND_VARIANT)
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "Clang" OR
|
||||
"x${CMAKE_SYCL_COMPILER_ID}" STREQUAL "xDPClang" OR
|
||||
"x${CMAKE_SYCL_COMPILER_ID}" STREQUAL "xIntelLLVM")
|
||||
if("x${CMAKE_SYCL_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT "MSVC")
|
||||
|
||||
@@ -69,7 +69,7 @@ set(_CMAKE_TOOL_VARS "")
|
||||
# if it's the MS C/CXX compiler, search for link
|
||||
if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
|
||||
("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
|
||||
OR NOT "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang"))
|
||||
OR NOT "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|DPClang)$"))
|
||||
OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"
|
||||
OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xPGI")
|
||||
OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xNVIDIA")
|
||||
@@ -83,10 +83,12 @@ if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
|
||||
set(_CMAKE_MT_NAMES "mt")
|
||||
|
||||
# Prepend toolchain-specific names.
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|LLVMFlang)$")
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|DPClang|LLVMFlang)$")
|
||||
set(_CMAKE_NM_NAMES "llvm-nm" "nm")
|
||||
list(PREPEND _CMAKE_AR_NAMES "llvm-lib")
|
||||
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2)
|
||||
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2 OR
|
||||
(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID STREQUAL "DPClang" AND
|
||||
CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION_INTERNAL VERSION_GREATER_EQUAL 14.0.2))
|
||||
list(PREPEND _CMAKE_MT_NAMES "llvm-mt")
|
||||
endif()
|
||||
list(PREPEND _CMAKE_LINKER_NAMES "lld-link")
|
||||
@@ -191,7 +193,7 @@ else()
|
||||
set(_CMAKE_TAPI_NAMES "tapi")
|
||||
|
||||
# Prepend toolchain-specific names.
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|IntelLLVM|LLVMFlang)$")
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|DPClang|IntelLLVM|LLVMFlang)$")
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
list(PREPEND _CMAKE_LINKER_NAMES "lld-link")
|
||||
elseif(NOT APPLE)
|
||||
|
||||
@@ -35,7 +35,11 @@ function (_cmake_cxx_find_modules_json)
|
||||
set(CMAKE_CXX_STDLIB_MODULES_JSON "${CMAKE_CXX_STDLIB_MODULES_JSON}" PARENT_SCOPE)
|
||||
endif ()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "18.1.2" AND
|
||||
set(_clang_version "${CMAKE_CXX_COMPILER_VERSION}")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "DPClang")
|
||||
set(_clang_version "${CMAKE_CXX_COMPILER_VERSION_INTERNAL}")
|
||||
endif()
|
||||
if (_clang_version VERSION_LESS "18.1.2" AND
|
||||
CMAKE_CXX_STANDARD_LIBRARY STREQUAL "libc++")
|
||||
# The original PR had a key spelling mismatch internally. Do not support it
|
||||
# and instead require a release known to have the fix.
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
include(Compiler/Clang-C-FeatureTests)
|
||||
@@ -0,0 +1,2 @@
|
||||
include(Compiler/DPClang)
|
||||
__compiler_dpclang(C)
|
||||
@@ -0,0 +1 @@
|
||||
include(Compiler/Clang-CXX-CXXImportStd)
|
||||
@@ -0,0 +1 @@
|
||||
include(Compiler/Clang-CXX-FeatureTests)
|
||||
@@ -0,0 +1,2 @@
|
||||
include(Compiler/DPClang)
|
||||
__compiler_dpclang(CXX)
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
set(_compiler_id_pp_test "defined(__clang__) && defined(__DPCPP__) && defined(__dpcpp_major__) && __dpcpp_major__ >= 7 && defined(__dpcpp_minor__) && defined(__dpcpp_patchlevel__) && !defined(__INTEL_CLANG_COMPILER) && !defined(__INTEL_LLVM_COMPILER)")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@(__dpcpp_major__)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(__dpcpp_minor__)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__dpcpp_patchlevel__)
|
||||
# define @PREFIX@COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
#if defined(_MSC_VER)
|
||||
# define @PREFIX@SIMULATE_VERSION_MAJOR @MACRO_DEC@(_MSC_VER / 100)
|
||||
# define @PREFIX@SIMULATE_VERSION_MINOR @MACRO_DEC@(_MSC_VER % 100)
|
||||
#endif")
|
||||
|
||||
set(_compiler_id_simulate "
|
||||
#if defined(_MSC_VER)
|
||||
# define @PREFIX@SIMULATE_ID \"MSVC\"
|
||||
#endif")
|
||||
@@ -0,0 +1,6 @@
|
||||
set(_dpclang_version "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}")
|
||||
set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION_INTERNAL}")
|
||||
include(Compiler/Clang-FindBinUtils)
|
||||
set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION "${_dpclang_version}")
|
||||
unset(_dpclang_version)
|
||||
@@ -0,0 +1,12 @@
|
||||
include(Compiler/DPClang)
|
||||
__compiler_dpclang(SYCL)
|
||||
|
||||
include(Compiler/IntelLLVM-SYCL-DeviceLink)
|
||||
|
||||
if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_ON "-clang:-fgpu-rdc")
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_OFF "-clang:-fno-gpu-rdc")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS "-fsycl;-clang:-fsycl-link")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_WHOLE_ARCHIVE "-clang:-Wl,--whole-archive")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_NO_WHOLE_ARCHIVE "-clang:-Wl,--no-whole-archive")
|
||||
endif()
|
||||
@@ -0,0 +1,14 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file LICENSE.rst or https://cmake.org/licensing for details.
|
||||
|
||||
include_guard()
|
||||
|
||||
# DPClang's public version describes DPC++, not the underlying Clang. Use the
|
||||
# latter for Clang's feature thresholds while preserving the public version.
|
||||
macro(__compiler_dpclang lang)
|
||||
set(_dpclang_${lang}_version "${CMAKE_${lang}_COMPILER_VERSION}")
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}")
|
||||
include(Compiler/Clang-${lang})
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${_dpclang_${lang}_version}")
|
||||
unset(_dpclang_${lang}_version)
|
||||
endmacro()
|
||||
@@ -0,0 +1,20 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file LICENSE.rst or https://cmake.org/licensing for details.
|
||||
|
||||
# Standalone device linking for the IntelLLVM and DPClang DPC++ drivers.
|
||||
set(CMAKE_SYCL_COMPILER_HAS_DEVICE_LINK_PHASE TRUE)
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_ON "-fgpu-rdc")
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_OFF "-fno-gpu-rdc")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS "-fsycl;-fsycl-link")
|
||||
if(NOT CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_PIC "-shared")
|
||||
endif()
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_WHOLE_ARCHIVE "-Wl,--whole-archive")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_NO_WHOLE_ARCHIVE "-Wl,--no-whole-archive")
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_WHOLE_ARCHIVE
|
||||
"-Qoption,link,--whole-archive")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_NO_WHOLE_ARCHIVE
|
||||
"-Qoption,link,--no-whole-archive")
|
||||
endif()
|
||||
@@ -4,21 +4,7 @@ __compiler_intel_llvm(SYCL)
|
||||
set(_CMAKE_SYCL_REQUIRED_FLAG "-fsycl")
|
||||
|
||||
if(CMAKE_SYCL_COMPILER_VERSION VERSION_GREATER_EQUAL 2026.0)
|
||||
set(CMAKE_SYCL_COMPILER_HAS_DEVICE_LINK_PHASE TRUE)
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_ON "-fgpu-rdc")
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_OFF "-fno-gpu-rdc")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS
|
||||
"-fsycl;-fsycl-link")
|
||||
if(NOT CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_PIC "-shared")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_WHOLE_ARCHIVE "-Wl,--whole-archive")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_NO_WHOLE_ARCHIVE "-Wl,--no-whole-archive")
|
||||
else()
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_WHOLE_ARCHIVE
|
||||
"-Qoption,link,--whole-archive")
|
||||
set(CMAKE_SYCL_DEVICE_LINK_OPTIONS_NO_WHOLE_ARCHIVE
|
||||
"-Qoption,link,--no-whole-archive")
|
||||
endif()
|
||||
include(Compiler/IntelLLVM-SYCL-DeviceLink)
|
||||
endif()
|
||||
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN
|
||||
|
||||
@@ -202,6 +202,7 @@ function(_OPENMP_FLAG_CANDIDATES LANG)
|
||||
set(OMP_FLAG_GNU "-fopenmp")
|
||||
set(OMP_FLAG_LCC "-fopenmp")
|
||||
set(OMP_FLAG_Clang "-fopenmp=libomp" "-fopenmp=libiomp5" "-fopenmp" "-Xclang -fopenmp")
|
||||
set(OMP_FLAG_DPClang "${OMP_FLAG_Clang}")
|
||||
set(OMP_FLAG_AppleClang "-Xclang -fopenmp")
|
||||
set(OMP_FLAG_HP "+Oopenmp")
|
||||
if(WIN32)
|
||||
@@ -340,7 +341,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
||||
)
|
||||
|
||||
if(OpenMP_COMPILE_RESULT_${FLAG_MODE}_${OPENMP_PLAIN_FLAG} AND
|
||||
NOT "${CMAKE_${LANG}_COMPILER_ID};${CMAKE_${LANG}_SIMULATE_ID}" STREQUAL "Clang;MSVC")
|
||||
NOT "${CMAKE_${LANG}_COMPILER_ID};${CMAKE_${LANG}_SIMULATE_ID}" MATCHES "^(Clang|DPClang);MSVC$")
|
||||
set("${OPENMP_FLAG_VAR}" "${OPENMP_FLAG}" PARENT_SCOPE)
|
||||
|
||||
if(CMAKE_${LANG}_VERBOSE_FLAG)
|
||||
@@ -421,7 +422,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
||||
break()
|
||||
elseif((CMAKE_${LANG}_COMPILER_ID STREQUAL "AppleClang"
|
||||
AND CMAKE_${LANG}_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0") OR
|
||||
(CMAKE_${LANG}_COMPILER_ID STREQUAL "Clang" AND APPLE))
|
||||
(CMAKE_${LANG}_COMPILER_ID MATCHES "^(Clang|DPClang)$" AND APPLE))
|
||||
|
||||
# Check for separate OpenMP library on AppleClang 7+
|
||||
find_library(OpenMP_libomp_LIBRARY
|
||||
@@ -497,7 +498,7 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR)
|
||||
break()
|
||||
endif()
|
||||
endif()
|
||||
elseif(CMAKE_${LANG}_COMPILER_ID STREQUAL "Clang" AND WIN32)
|
||||
elseif(CMAKE_${LANG}_COMPILER_ID MATCHES "^(Clang|DPClang)$" AND WIN32)
|
||||
# Check for separate OpenMP library for Clang on Windows
|
||||
find_library(OpenMP_libomp_LIBRARY
|
||||
NAMES libomp libgomp libiomp5
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
macro(cmake_sycl_filter_implicit_libs variable)
|
||||
foreach(library IN LISTS ${variable})
|
||||
if(library MATCHES "^sycl([0-9]+d?|-devicelib-host)?([.]lib)?$")
|
||||
get_filename_component(library_name "${library}" NAME)
|
||||
if(library_name MATCHES "^(lib)?sycl([0-9]+d?|-devicelib-host)?([.]lib|[.]a|[.]so([.][0-9]+)*|[.]dylib)?$")
|
||||
list(APPEND CMAKE_SYCL_RUNTIME_LIBRARY_LINK_OPTIONS_DEFAULT "${library}")
|
||||
list(REMOVE_ITEM ${variable} "${library}")
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
include(Platform/Linux-Clang-C)
|
||||
@@ -0,0 +1 @@
|
||||
include(Platform/Linux-Clang-CXX)
|
||||
@@ -7,7 +7,7 @@ __windows_compiler_clang(SYCL)
|
||||
if(CMAKE_SYCL_COMPILER_FRONTEND_VARIANT STREQUAL "GNU" AND
|
||||
CMAKE_SYCL_SIMULATE_ID STREQUAL "MSVC")
|
||||
unset(CMAKE_INCLUDE_SYSTEM_FLAG_SYCL_WARNING)
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(Clang|IntelLLVM)$")
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(Clang|DPClang|IntelLLVM)$")
|
||||
# Let the driver apply CRT defines to the host compilation only and select
|
||||
# the matching libsycl dependency, including the debug runtime.
|
||||
set(CMAKE_SYCL_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded -fms-runtime-lib=static)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
include(Platform/Windows-DPClang)
|
||||
__windows_compiler_dpclang(C)
|
||||
@@ -0,0 +1,2 @@
|
||||
include(Platform/Windows-DPClang)
|
||||
__windows_compiler_dpclang(CXX)
|
||||
@@ -0,0 +1,2 @@
|
||||
include(Platform/Windows-DPClang)
|
||||
__windows_compiler_dpclang(SYCL)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file LICENSE.rst or https://cmake.org/licensing for details.
|
||||
|
||||
include_guard()
|
||||
|
||||
macro(__windows_compiler_dpclang lang)
|
||||
set(_dpclang_${lang}_version "${CMAKE_${lang}_COMPILER_VERSION}")
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION_INTERNAL}")
|
||||
include(Platform/Windows-Clang-${lang})
|
||||
set(CMAKE_${lang}_COMPILER_VERSION "${_dpclang_${lang}_version}")
|
||||
unset(_dpclang_${lang}_version)
|
||||
endmacro()
|
||||
@@ -317,9 +317,12 @@ bool cmFastbuildNormalTargetGenerator::DetectBaseLinkerCommand(
|
||||
linkFlags += cmJoin({ rpath, frameworkPath, linkPath }, " ");
|
||||
|
||||
cm::TargetType const targetType = this->GeneratorTarget->GetType();
|
||||
// Add OS X version flags, if any.
|
||||
std::string languageCompileFlags;
|
||||
if (targetType == cm::TargetType::SHARED_LIBRARY ||
|
||||
targetType == cm::TargetType::MODULE_LIBRARY) {
|
||||
this->LocalCommonGenerator->AddLanguageFlagsForLinking(
|
||||
languageCompileFlags, this->GeneratorTarget, linkLanguage, Config);
|
||||
// Add OS X version flags, if any.
|
||||
this->AppendOSXVerFlag(linkFlags, linkLanguage, "COMPATIBILITY", true);
|
||||
this->AppendOSXVerFlag(linkFlags, linkLanguage, "CURRENT", false);
|
||||
}
|
||||
@@ -394,7 +397,7 @@ bool cmFastbuildNormalTargetGenerator::DetectBaseLinkerCommand(
|
||||
FASTBUILD_DOLLAR_TAG "CompileDefineFlags" FASTBUILD_DOLLAR_TAG;
|
||||
vars.Flags = targetFlags.c_str();
|
||||
vars.LinkFlags = linkFlags.c_str();
|
||||
vars.LanguageCompileFlags = "";
|
||||
vars.LanguageCompileFlags = languageCompileFlags.c_str();
|
||||
std::string const linker = this->GeneratorTarget->GetLinkerTool(Config);
|
||||
vars.Linker = linker.c_str();
|
||||
std::string const targetSupportPath = this->ConvertToFastbuildPath(
|
||||
|
||||
@@ -2776,11 +2776,11 @@ void cmGeneratorTarget::AddSYCLDeviceTargetFlags(cmBuildStep compileOrLink,
|
||||
if (!targets.empty() && !cmIsOff(targets)) {
|
||||
std::string option;
|
||||
if (acpp) {
|
||||
option = "--acpp-targets=" + targets;
|
||||
} else if (compiler == "IntelLLVM") {
|
||||
option = "-fsycl-targets=" + cmJoin(cmList{ targets }, ",");
|
||||
option = cmStrCat("--acpp-targets=", targets);
|
||||
} else if (compiler == "IntelLLVM" || compiler == "DPClang") {
|
||||
option = cmStrCat("-fsycl-targets=", cmJoin(cmList{ targets }, ","));
|
||||
} else if (compiler == "Clang") {
|
||||
option = "--offload-targets=" + cmJoin(cmList{ targets }, ",");
|
||||
option = cmStrCat("--offload-targets=", cmJoin(cmList{ targets }, ","));
|
||||
} else {
|
||||
this->LocalGenerator->IssueMessage(
|
||||
MessageType::FATAL_ERROR,
|
||||
|
||||
@@ -87,8 +87,9 @@ constexpr auto FASTBUILD_FORCE_RESPONSE_FILE =
|
||||
constexpr auto FASTBUILD_IDE_ARGS = "CMAKE_FASTBUILD_IDE_ARGS";
|
||||
|
||||
static std::map<std::string, std::string> const compilerIdToFastbuildFamily = {
|
||||
{ "MSVC", "msvc" }, { "Clang", "clang" }, { "AppleClang", "clang" },
|
||||
{ "GNU", "gcc" }, { "NVIDIA", "cuda-nvcc" }, { "Clang-cl", "clang-cl" },
|
||||
{ "DPClang", "clang" }, { "MSVC", "msvc" }, { "Clang", "clang" },
|
||||
{ "AppleClang", "clang" }, { "GNU", "gcc" }, { "NVIDIA", "cuda-nvcc" },
|
||||
{ "Clang-cl", "clang-cl" },
|
||||
};
|
||||
|
||||
static std::set<std::string> const supportedLanguages = { "C", "CXX", "CUDA",
|
||||
@@ -999,7 +1000,8 @@ void cmGlobalFastbuildGenerator::AddCompiler(std::string const& language,
|
||||
compilerDef.Executable = compilerLocation;
|
||||
compilerDef.CmakeCompilerID =
|
||||
mf->GetSafeDefinition(cmStrCat("CMAKE_", language, "_COMPILER_ID"));
|
||||
if (compilerDef.CmakeCompilerID == "Clang" &&
|
||||
if ((compilerDef.CmakeCompilerID == "Clang" ||
|
||||
compilerDef.CmakeCompilerID == "DPClang") &&
|
||||
mf->GetSafeDefinition(cmStrCat(
|
||||
"CMAKE_", language, "_COMPILER_FRONTEND_VARIANT")) == "MSVC") {
|
||||
compilerDef.CmakeCompilerID = "Clang-cl";
|
||||
|
||||
@@ -76,7 +76,8 @@ namespace {
|
||||
bool DetectGCCOnWindows(cm::string_view compilerId, cm::string_view simulateId,
|
||||
cm::string_view compilerFrontendVariant)
|
||||
{
|
||||
return ((compilerId == "Clang"_s && compilerFrontendVariant == "GNU"_s) ||
|
||||
return (((compilerId == "Clang"_s || compilerId == "DPClang"_s) &&
|
||||
compilerFrontendVariant == "GNU"_s) ||
|
||||
(simulateId != "MSVC"_s &&
|
||||
(compilerId == "GNU"_s || compilerId == "QCC"_s ||
|
||||
cmHasLiteralSuffix(compilerId, "Clang"))));
|
||||
|
||||
@@ -2346,7 +2346,7 @@ void cmLocalGenerator::AddLanguageFlags(std::string& flags,
|
||||
}
|
||||
|
||||
// Add VFS Overlay for Clang compilers
|
||||
if (compilerId == "Clang") {
|
||||
if (compilerId == "Clang" || compilerId == "DPClang") {
|
||||
if (cmValue vfsOverlay =
|
||||
this->Makefile->GetDefinition("CMAKE_CLANG_VFS_OVERLAY")) {
|
||||
if (compilerSimulateId == "MSVC") {
|
||||
|
||||
@@ -10,11 +10,11 @@ add_executable(target_compile_options
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/main.cpp"
|
||||
)
|
||||
target_compile_options(target_compile_options
|
||||
PRIVATE $<$<CXX_COMPILER_ID:AppleClang,IBMClang,CrayClang,Clang,GNU,LCC>:-DMY_PRIVATE_DEFINE>
|
||||
PRIVATE $<$<CXX_COMPILER_ID:AppleClang,IBMClang,CrayClang,Clang,DPClang,GNU,LCC>:-DMY_PRIVATE_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC>:-DMY_PUBLIC_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>
|
||||
PUBLIC $<$<COMPILE_LANG_AND_ID:CXX,GNU,LCC,Clang,DPClang,AppleClang,CrayClang,IBMClang>:-DMY_MUTLI_COMP_PUBLIC_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC>:-DMY_INTERFACE_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>
|
||||
INTERFACE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,DPClang,AppleClang,CrayClang,IBMClang>:-DMY_MULTI_COMP_INTERFACE_DEFINE>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
@@ -50,7 +50,7 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio")
|
||||
endif()
|
||||
|
||||
target_compile_options(consumer
|
||||
PRIVATE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,AppleClang,CrayClang,IBMClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>
|
||||
PRIVATE $<$<CXX_COMPILER_ID:GNU,LCC,Clang,DPClang,AppleClang,CrayClang,IBMClang>:$<TARGET_PROPERTY:target_compile_options,INTERFACE_COMPILE_OPTIONS>>
|
||||
)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|LCC")
|
||||
|
||||
@@ -55,7 +55,7 @@ endmacro()
|
||||
# detailed features tables, not just meta-features
|
||||
|
||||
if (CMAKE_C_COMPILE_FEATURES)
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "^(LCC|Cray|CrayClang|PGI|NVHPC|XL|XLClang|IBMClang|IntelLLVM|Fujitsu|FujitsuClang|OrangeC)$")
|
||||
if (NOT CMAKE_C_COMPILER_ID MATCHES "^(LCC|Cray|CrayClang|PGI|NVHPC|XL|XLClang|IBMClang|IntelLLVM|DPClang|Fujitsu|FujitsuClang|OrangeC)$")
|
||||
set(C_expected_features ${CMAKE_C_COMPILE_FEATURES})
|
||||
list(FILTER C_expected_features EXCLUDE REGEX "^c_std_[0-9][0-9]")
|
||||
endif()
|
||||
@@ -98,7 +98,7 @@ if (C_expected_features)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILE_FEATURES)
|
||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "^(LCC|Cray|CrayClang|PGI|NVHPC|XL|XLClang|IBMClang|IntelLLVM|Fujitsu|FujitsuClang|OrangeC)$")
|
||||
if (NOT CMAKE_CXX_COMPILER_ID MATCHES "^(LCC|Cray|CrayClang|PGI|NVHPC|XL|XLClang|IBMClang|IntelLLVM|DPClang|Fujitsu|FujitsuClang|OrangeC)$")
|
||||
set(CXX_expected_features ${CMAKE_CXX_COMPILE_FEATURES})
|
||||
list(FILTER CXX_expected_features EXCLUDE REGEX "^cxx_std_[0-9][0-9]")
|
||||
endif()
|
||||
|
||||
@@ -1133,7 +1133,7 @@ def gen_check_build_system_targets(c, g, inSource):
|
||||
e["compileGroups"] = apple_exe_framework["compileGroups"]
|
||||
e["link"] = apple_exe_framework["link"]
|
||||
|
||||
if args.cxx_compiler_id in ['Clang', 'AppleClang', 'LCC', 'GNU', 'Intel', 'IntelLLVM', 'MSVC', 'Embarcadero', 'CrayClang', 'IBMClang'] and g["name"] != "Xcode":
|
||||
if args.cxx_compiler_id in ['Clang', 'AppleClang', 'LCC', 'GNU', 'Intel', 'IntelLLVM', 'DPClang', 'MSVC', 'Embarcadero', 'CrayClang', 'IBMClang'] and g["name"] != "Xcode":
|
||||
for e in expected:
|
||||
if e["name"] == "cxx_exe":
|
||||
if matches(g["name"], "^(Visual Studio |Ninja Multi-Config)"):
|
||||
|
||||
@@ -17,7 +17,7 @@ foreach(i RANGE 0 ${last})
|
||||
include("${RunCMake_TEST_BINARY_DIR}/targets.cmake")
|
||||
if(compiler STREQUAL "AdaptiveCpp")
|
||||
set(option "--acpp-targets=${expected_targets}")
|
||||
elseif(compiler STREQUAL "IntelLLVM")
|
||||
elseif(compiler MATCHES "^(DPClang|IntelLLVM)$")
|
||||
string(REPLACE ";" "," value "${expected_targets}")
|
||||
set(option "-fsycl-targets=${value}")
|
||||
else()
|
||||
|
||||
@@ -7,7 +7,7 @@ set(CMAKE_BUILD_TYPE Debug)
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "Clang")
|
||||
set(device_targets_selected spirv64-unknown-unknown)
|
||||
set(device_targets_baseline spirv32-unknown-unknown)
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
elseif(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
set(device_targets_selected "spir64;intel_gpu_pvc")
|
||||
set(device_targets_baseline spir64)
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "AdaptiveCpp")
|
||||
|
||||
@@ -2,7 +2,7 @@ set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
|
||||
enable_language(SYCL)
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "Clang")
|
||||
set(CMAKE_SYCL_DEVICE_TARGETS spirv64-unknown-unknown)
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
elseif(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
set(CMAKE_SYCL_DEVICE_TARGETS spir64)
|
||||
elseif(CMAKE_SYCL_COMPILER_ID STREQUAL "AdaptiveCpp")
|
||||
set(CMAKE_SYCL_DEVICE_TARGETS omp.accelerated)
|
||||
|
||||
@@ -3,9 +3,9 @@ set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
|
||||
project(Complex CXX SYCL)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
include(Test.cmake)
|
||||
# Remove gate when IntelLLVM -fsycl-link bug is fixed
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
sycl_not_supported("IntelLLVM -fsycl-link cannot produce a single device-link output")
|
||||
# Remove gate when DPC++ archive device finalization is fixed.
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
sycl_not_supported("${CMAKE_SYCL_COMPILER_ID} -fsycl-link cannot finalize SYCL archives")
|
||||
return()
|
||||
endif()
|
||||
if(NOT CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_ON)
|
||||
|
||||
@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 4.4)
|
||||
set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
|
||||
project(CircularLinkLine SYCL CXX)
|
||||
include(../utils/Test.cmake)
|
||||
# Remove gate when IntelLLVM -fsycl-link bug is fixed
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
sycl_not_supported("IntelLLVM -fsycl-link cannot produce a single device-link output")
|
||||
# Remove gate when DPC++ archive device finalization is fixed.
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
sycl_not_supported("${CMAKE_SYCL_COMPILER_ID} -fsycl-link cannot finalize SYCL archives")
|
||||
return()
|
||||
endif()
|
||||
if(NOT CMAKE_SYCL_COMPILE_OPTIONS_SEPARABLE_COMPILATION_ON OR
|
||||
|
||||
@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 4.4)
|
||||
set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
|
||||
project(ResolveDeviceSymbols CXX SYCL)
|
||||
include(../utils/Test.cmake)
|
||||
# Remove gate when IntelLLVM -fsycl-link bug is fixed
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
sycl_not_supported("IntelLLVM -fsycl-link cannot produce a single device-link output")
|
||||
# Remove gate when DPC++ archive device finalization is fixed.
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
sycl_not_supported("${CMAKE_SYCL_COMPILER_ID} -fsycl-link cannot finalize SYCL archives")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 4.4)
|
||||
set(CMAKE_EXPERIMENTAL_SYCL "c0d1fb10-2ece-420e-9d29-7d7f2b300f25")
|
||||
project(SeparateCompilation SYCL)
|
||||
include(../utils/Test.cmake)
|
||||
# Remove gate when IntelLLVM -fsycl-link bug is fixed
|
||||
if(CMAKE_SYCL_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
sycl_not_supported("IntelLLVM -fsycl-link cannot produce a single device-link output")
|
||||
# Remove gate when DPC++ archive device finalization is fixed.
|
||||
if(CMAKE_SYCL_COMPILER_ID MATCHES "^(DPClang|IntelLLVM)$")
|
||||
sycl_not_supported("${CMAKE_SYCL_COMPILER_ID} -fsycl-link cannot finalize SYCL archives")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
||||
Reference in new issue
Block a user