文本文件  |  29行  |  1.1 KB

# The top-level lib directory contains a large amount of C code which provides
# generic implementations of the core runtime library along with optimized
# architecture-specific code in various subdirectories.

file(GLOB GENERIC_SOURCES . "*.c")

# FIXME: We don't currently support building an atomic library, and as it must
# be a separate library from the runtime library, we need to remove its source
# code from the glob.
file(GLOB ATOMIC . "atomic.c")
list(REMOVE_ITEM GENERIC_SOURCES ${ATOMIC})

if(CAN_TARGET_X86_64)
  file(GLOB X86_64_SOURCES . "*.c" "*.S")
  add_library(clang_rt.x86_64 STATIC ${X86_64_SOURCES} ${GENERIC_SOURCES})
  set_target_properties(clang_rt.x86_64 PROPERTIES COMPILE_FLAGS "${TARGET_X86_64_CFLAGS}")
endif()
if(CAN_TARGET_I386)
  file(GLOB I386_SOURCES . "*.c" "*.S")
  add_library(clang_rt.i386 STATIC ${I386_SOURCES} ${GENERIC_SOURCES})
  set_target_properties(clang_rt.i386 PROPERTIES COMPILE_FLAGS "${TARGET_I386_CFLAGS}")
endif()

# Also support building feature-based runtime libraries in their various
# subdircetories.
add_subdirectory(asan)

# FIXME: Add support for the profile library.