| # 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. |