File: RunCMakeTest.cmake

package info (click to toggle)
cmake 4.2.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 152,344 kB
  • sloc: ansic: 403,894; cpp: 303,807; sh: 4,097; python: 3,582; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 108; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (47 lines) | stat: -rw-r--r-- 1,477 bytes parent folder | download | duplicates (3)
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
44
45
46
47
include(RunCMake)

# Isolate from caller's environment.
unset(ENV{CMAKE_OSX_ARCHITECTURES})
unset(ENV{CMAKE_OSX_DEPLOYMENT_TARGET})
unset(ENV{SDKROOT})

function(run_xcode_cc)
  set(RunCMake_TEST_VARIANT_DESCRIPTION "-xcode")
  if(EXISTS "/usr/include/AvailabilityMacros.h")
    run_cmake(SDK)
  else()
    run_cmake(NoSDK)
  endif()
endfunction()

if(RunCMake_GENERATOR STREQUAL "Xcode")
  run_xcode_cc()
else()
  set(system_cc "/usr/bin/cc")
  set(system_cxx "/usr/bin/c++")
  if(EXISTS "${system_cc}" AND EXISTS "${system_cxx}")
    set(ENV{CC} "${system_cc}")
    set(ENV{CXX} "${system_cxx}")
    set(ENV{OBJC} "${system_cc}")
    set(ENV{OBJCXX} "${system_cxx}")
    set(RunCMake_TEST_VARIANT_DESCRIPTION "-system")
    run_cmake(SDK)
  endif()

  execute_process(COMMAND xcrun --find cc OUTPUT_VARIABLE xcode_cc OUTPUT_STRIP_TRAILING_WHITESPACE)
  execute_process(COMMAND xcrun --find c++ OUTPUT_VARIABLE xcode_cxx OUTPUT_STRIP_TRAILING_WHITESPACE)
  execute_process(COMMAND xcrun --show-sdk-path OUTPUT_VARIABLE xcode_sdk OUTPUT_STRIP_TRAILING_WHITESPACE)
  if(EXISTS "${xcode_cc}" AND EXISTS "${xcode_cxx}")
    set(ENV{CC} "${xcode_cc}")
    set(ENV{CXX} "${xcode_cxx}")
    set(ENV{OBJC} "${xcode_cc}")
    set(ENV{OBJCXX} "${xcode_cxx}")
    run_xcode_cc()
    if(EXISTS "${xcode_sdk}")
      set(RunCMake_TEST_VARIANT_DESCRIPTION "-xcode-SDKROOT")
      set(ENV{SDKROOT} "${xcode_sdk}")
      run_cmake(SDK)
      unset(ENV{SDKROOT})
    endif()
  endif()
endif()