aboutsummaryrefslogtreecommitdiff
path: root/final/cmake/DetectTestCompiler/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'final/cmake/DetectTestCompiler/CMakeLists.txt')
-rw-r--r--final/cmake/DetectTestCompiler/CMakeLists.txt39
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)