File: CMakeLists.txt

package info (click to toggle)
llvm-toolchain-15 1%3A15.0.6-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,554,644 kB
  • sloc: cpp: 5,922,452; ansic: 1,012,136; asm: 674,362; python: 191,568; objc: 73,855; f90: 42,327; lisp: 31,913; pascal: 11,973; javascript: 10,144; sh: 9,421; perl: 7,447; ml: 5,527; awk: 3,523; makefile: 2,520; xml: 885; cs: 573; fortran: 567
file content (63 lines) | stat: -rw-r--r-- 2,044 bytes parent folder | download
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
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
  cmake_minimum_required(VERSION 3.13.4)

  set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
  project(CompilerRTCRT C)
  set(COMPILER_RT_STANDALONE_BUILD TRUE)
  set(COMPILER_RT_CRT_STANDALONE_BUILD TRUE)

  set(COMPILER_RT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")

  set(LLVM_COMMON_CMAKE_UTILS "${COMPILER_RT_SOURCE_DIR}/../cmake")

  # Add path for custom modules
  list(INSERT CMAKE_MODULE_PATH 0
    "${COMPILER_RT_SOURCE_DIR}/cmake"
    "${COMPILER_RT_SOURCE_DIR}/cmake/Modules"
    "${LLVM_COMMON_CMAKE_UTILS}"
    "${LLVM_COMMON_CMAKE_UTILS}/Modules"
    )

  include(base-config-ix)
  include(CompilerRTUtils)

  load_llvm_config()
  construct_compiler_rt_default_triple()

  include(SetPlatformToolchainTools)
  include(AddCompilerRT)
endif()

include(crt-config-ix)

if(COMPILER_RT_HAS_CRT)
  add_compiler_rt_component(crt)

  include(CheckSectionExists)
  check_section_exists(".init_array" COMPILER_RT_HAS_INITFINI_ARRAY
    SOURCE "volatile int x;\n__attribute__((constructor)) void f(void) {x = 0;}\nint main(void) { return 0; }\n")

  append_list_if(COMPILER_RT_HAS_STD_C11_FLAG -std=c11 CRT_CFLAGS)
  append_list_if(COMPILER_RT_HAS_INITFINI_ARRAY -DCRT_HAS_INITFINI_ARRAY CRT_CFLAGS)
  append_list_if(COMPILER_RT_CRT_USE_EH_FRAME_REGISTRY -DEH_USE_FRAME_REGISTRY CRT_CFLAGS)
  append_list_if(COMPILER_RT_HAS_FPIC_FLAG -fPIC CRT_CFLAGS)
  append_list_if(COMPILER_RT_HAS_WNO_PEDANTIC -Wno-pedantic CRT_CFLAGS)
  if (COMPILER_RT_HAS_FCF_PROTECTION_FLAG)
    append_list_if(COMPILER_RT_ENABLE_CET -fcf-protection=full CRT_CFLAGS)
  endif()

  foreach(arch ${CRT_SUPPORTED_ARCH})
    add_compiler_rt_runtime(clang_rt.crtbegin
      OBJECT
      ARCHS ${arch}
      SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtbegin.c
      CFLAGS ${CRT_CFLAGS}
      PARENT_TARGET crt)
    add_compiler_rt_runtime(clang_rt.crtend
      OBJECT
      ARCHS ${arch}
      SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/crtend.c
      CFLAGS ${CRT_CFLAGS}
      PARENT_TARGET crt)
  endforeach()
endif()