configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeCLCCompiler.cmake.in ${CMAKE_PLATFORM_INFO_DIR}/CMakeCLCCompiler.cmake @ONLY) include(${CMAKE_PLATFORM_INFO_DIR}/CMakeCLCCompiler.cmake) if(CMAKE_CLC_COMPILER_FORCED) set(CMAKE_CLC_COMPILER_WORKS TRUE) return() endif() set(_test_file "${CMAKE_CURRENT_LIST_DIR}/CMakeCLCCompilerTest.cl") set(_test_dir "${CMAKE_PLATFORM_INFO_DIR}/CMakeTmp") set(_test_out "${_test_dir}/test_clc.o") file(MAKE_DIRECTORY "${_test_dir}") message(STATUS "Check for working CLC compiler: ${CMAKE_CLC_COMPILER}") execute_process( COMMAND "${CMAKE_CLC_COMPILER}" --target=spirv64-unknown-unknown -x cl -c -flto -disable-llvm-passes -o "${_test_out}" "${_test_file}" RESULT_VARIABLE _clc_result ERROR_VARIABLE _clc_error ) if(_clc_result EQUAL 0) set(CMAKE_CLC_COMPILER_WORKS TRUE) message(STATUS "Check for working CLC compiler: ${CMAKE_CLC_COMPILER} - works") file(REMOVE "${_test_out}") else() message(FATAL_ERROR "The CLC compiler\n" " ${CMAKE_CLC_COMPILER}\n" "is not able to compile a simple OpenCL test program.\n" "Output:\n${_clc_error}") endif()