File: RunCMakeTest.cmake

package info (click to toggle)
cmake 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 158,704 kB
  • sloc: ansic: 406,077; cpp: 309,512; sh: 4,233; python: 3,696; yacc: 3,109; lex: 1,279; f90: 538; asm: 471; lisp: 375; java: 310; cs: 270; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 110; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22; sed: 2
file content (76 lines) | stat: -rw-r--r-- 3,133 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
include(RunCMake)

macro(run_cmake_target test subtest)
  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${test}-build)
  set(RunCMake_TEST_NO_CLEAN 1)
  run_cmake_command(${test}-${subtest}
    ${CMAKE_COMMAND} --build .
    --target LinkFlags_${subtest}
    --verbose
    ${ARGN}
  )

  unset(RunCMake_TEST_BINARY_DIR)
  unset(RunCMake_TEST_NO_CLEAN)
endmacro()

if (NOT CMAKE_C_COMPILER_ID STREQUAL "Intel")
  # Intel compiler does not reject bad flags or objects!
  set(RunCMake_TEST_OUTPUT_MERGE TRUE)
  if (NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
    set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Release)
  endif()

  run_cmake(LINK_FLAGS)
  run_cmake_target(LINK_FLAGS shared)
  run_cmake_target(LINK_FLAGS mod)
  run_cmake_target(LINK_FLAGS exe)

  run_cmake(LINK_FLAGS_CONFIG)
  run_cmake_target(LINK_FLAGS_CONFIG shared --config Release)
  run_cmake_target(LINK_FLAGS_CONFIG mod --config Release)
  run_cmake_target(LINK_FLAGS_CONFIG exe --config Release)

  run_cmake(CMAKE_LINKER_FLAGS)
  run_cmake_target(CMAKE_LINKER_FLAGS shared)
  run_cmake_target(CMAKE_LINKER_FLAGS mod)
  run_cmake_target(CMAKE_LINKER_FLAGS exe)

  run_cmake(CMAKE_LINKER_FLAGS_CONFIG)
  run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG shared --config Release)
  run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG mod --config Release)
  run_cmake_target(CMAKE_LINKER_FLAGS_CONFIG exe --config Release)

  run_cmake(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW shared_C)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW mod_C)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW exe_C)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW shared_CXX)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW mod_CXX)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-NEW exe_CXX)

  run_cmake(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW shared_C --config Release)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW mod_C --config Release)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW exe_C --config Release)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW shared_CXX --config Release)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW mod_CXX --config Release)
  run_cmake_target(CMAKE_LANG_LINK_FLAGS_CONFIG-CMP0210-NEW exe_CXX --config Release)

  if (NOT RunCMake_GENERATOR MATCHES "Visual Studio")
    # CMP0210's OLD behavior never applied to the Visual Studio generators.
    run_cmake(CMAKE_LANG_LINK_FLAGS-CMP0210-OLD)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-OLD shared)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-OLD mod)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-OLD exe)

    run_cmake(CMAKE_LANG_LINK_FLAGS-CMP0210-WARN)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-WARN shared_C)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-WARN exe_C)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-WARN shared_CXX)
    run_cmake_target(CMAKE_LANG_LINK_FLAGS-CMP0210-WARN exe_CXX)
  endif()

  unset(RunCMake_TEST_OPTIONS)
  unset(RunCMake_TEST_OUTPUT_MERGE)
endif()