| 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() |