|  | cmake_minimum_required(VERSION 2.8) | 
|  | project(DetectTestCompiler C CXX) | 
|  |  | 
|  | include(CheckCCompilerFlag) | 
|  | include(CheckCXXCompilerFlag) | 
|  |  | 
|  | function(write_compiler_information lang) | 
|  | set(information "${CMAKE_${lang}_COMPILER}") | 
|  | set(information "${information}\\;${CMAKE_${lang}_COMPILER_ID}") | 
|  | set(information "${information}\\;${CMAKE_${lang}_COMPILER_VERSION}") | 
|  | set(information "${information}\\;${${lang}_FLAGS}") | 
|  | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${lang}CompilerInformation.txt ${information}) | 
|  | endfunction(write_compiler_information) | 
|  |  | 
|  | find_package(OpenMP) | 
|  | if (NOT OpenMP_Found) | 
|  | set(OpenMP_C_FLAGS "-fopenmp") | 
|  | set(OpenMP_CXX_FLAGS "-fopenmp") | 
|  | endif() | 
|  |  | 
|  | set(C_FLAGS ${flags} ${OpenMP_C_FLAGS}) | 
|  | set(CXX_FLAGS ${flags} ${OpenMP_CXX_FLAGS}) | 
|  |  | 
|  | # TODO: Implement blockaddress in GlobalISel and remove this flag! | 
|  | if (CMAKE_C_COMPILER_ID STREQUAL "Clang") | 
|  | check_c_compiler_flag("-fno-experimental-isel" C_HAS_EXPERIMENTAL_ISEL_FLAG) | 
|  | check_cxx_compiler_flag("-fno-experimental-isel" CXX_HAS_EXPERIMENTAL_ISEL_FLAG) | 
|  | macro(add_experimental_isel_flag lang) | 
|  | if (${lang}_HAS_EXPERIMENTAL_ISEL_FLAG) | 
|  | set(${lang}_FLAGS "-fno-experimental-isel ${${lang}_FLAGS}") | 
|  | endif() | 
|  | endmacro(add_experimental_isel_flag) | 
|  |  | 
|  | add_experimental_isel_flag(C) | 
|  | add_experimental_isel_flag(CXX) | 
|  | endif() | 
|  |  | 
|  | write_compiler_information(C) | 
|  | write_compiler_information(CXX) |