diff options
Diffstat (limited to 'final/cmake/DetectTestCompiler/CMakeLists.txt')
-rw-r--r-- | final/cmake/DetectTestCompiler/CMakeLists.txt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/final/cmake/DetectTestCompiler/CMakeLists.txt b/final/cmake/DetectTestCompiler/CMakeLists.txt new file mode 100644 index 0000000..c2f408c --- /dev/null +++ b/final/cmake/DetectTestCompiler/CMakeLists.txt @@ -0,0 +1,39 @@ +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) |