summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CompileFeatures/generate_feature_list.cmake
blob: 5c58052b810af7c153996712db4dc167e354d4ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

enable_language(C)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/c_features.txt"
  "${CMAKE_C_COMPILE_FEATURES}"
)

file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_features.txt"
  "${CMAKE_CXX_COMPILE_FEATURES}"
)

if(DEFINED CMAKE_C_STANDARD_DEFAULT)
  set(c_standard_default_code "set(C_STANDARD_DEFAULT \"${CMAKE_C_STANDARD_DEFAULT}\")\n")
else()
  set(c_standard_default_code "unset(C_STANDARD_DEFAULT)\n")
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/c_standard_default.cmake" "${c_standard_default_code}")

if(DEFINED CMAKE_CXX_STANDARD_DEFAULT)
  set(cxx_standard_default_code "set(CXX_STANDARD_DEFAULT \"${CMAKE_CXX_STANDARD_DEFAULT}\")\n")
else()
  set(cxx_standard_default_code "unset(CXX_STANDARD_DEFAULT)\n")
endif()
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_standard_default.cmake" "${cxx_standard_default_code}")

foreach(standard 98 11)
  set(CXX${standard}_FLAG NOTFOUND)
  if (DEFINED CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION)
    set(CXX${standard}_FLAG ${CMAKE_CXX${standard}_STANDARD_COMPILE_OPTION})
  endif()

  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}_flag.txt"
    "${CXX${standard}_FLAG}"
  )
  set(CXX${standard}EXT_FLAG NOTFOUND)
  if (DEFINED CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION)
    set(CXX${standard}EXT_FLAG ${CMAKE_CXX${standard}_EXTENSION_COMPILE_OPTION})
  endif()

  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx${standard}ext_flag.txt"
    "${CXX${standard}EXT_FLAG}"
  )
endforeach()