File: C.cmake

package info (click to toggle)
cmake 3.25.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 121,376 kB
  • sloc: ansic: 361,053; cpp: 250,806; sh: 3,828; yacc: 3,243; python: 2,707; lex: 1,328; lisp: 382; asm: 371; f90: 314; java: 266; perl: 217; objc: 212; xml: 202; cs: 200; fortran: 131; makefile: 99; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (27 lines) | stat: -rw-r--r-- 930 bytes parent folder | download | duplicates (6)
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

enable_language(C)

function(check_language_feature_flags lang level)
  if(CMAKE_${lang}${level}_STANDARD_COMPILE_OPTION)
    #this property is an internal implementation detail of CMake
    get_property(known_features GLOBAL PROPERTY CMAKE_${lang}${level}_KNOWN_FEATURES)
    list(LENGTH known_features len)
    if(len LESS 1)
      message(FATAL_ERROR "unable to find known features of ${lang}${level}")
    endif()

    string(TOLOWER ${lang} lang_lower)
    set(known_name ${lang_lower}${level}_known_features)
    set(meta_name  ${lang_lower}${level}_meta_feature)

    add_library(${known_name} STATIC a.c)
    target_compile_features(${known_name} PUBLIC ${known_features})
    add_library(${meta_name} STATIC a.c)
    target_compile_features(${meta_name} PUBLIC ${lang_lower}_std_${level})
  endif()
endfunction()


check_language_feature_flags(C 90)
check_language_feature_flags(C 99)
check_language_feature_flags(C 11)