diff options
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rw-r--r-- | lib/CMakeLists.txt | 4 | ||||
-rw-r--r-- | lib/profile/CMakeLists.txt | 13 |
3 files changed, 21 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 90062cd1..240572e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,10 +23,10 @@ string(REGEX MATCH "[0-9]+\\.[0-9]+(\\.[0-9]+)?" CLANG_VERSION # Setup the paths where compiler-rt runtimes and headers should be stored. set(LIBCLANG_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) string(TOLOWER ${CMAKE_SYSTEM_NAME} LIBCLANG_OS_DIR) -set(COMPILER_RT_LIBRARY_OUTPUT_DIR - ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}/lib/${LIBCLANG_OS_DIR}) +set(CLANG_RESOURCE_DIR ${LLVM_BINARY_DIR}/lib/clang/${CLANG_VERSION}) +set(COMPILER_RT_LIBRARY_OUTPUT_DIR ${CLANG_RESOURCE_DIR}/lib/${LIBCLANG_OS_DIR}) set(COMPILER_RT_LIBRARY_INSTALL_DIR - ${LIBCLANG_INSTALL_PATH}/lib/${LIBCLANG_OS_DIR}) + ${LIBCLANG_INSTALL_PATH}/lib/${LIBCLANG_OS_DIR}) # Add path for custom modules set(CMAKE_MODULE_PATH @@ -36,6 +36,9 @@ set(CMAKE_MODULE_PATH include(AddCompilerRT) set(COMPILER_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) +# Setup custom SDK sysroots. +set(COMPILER_RT_DARWIN_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/darwin) +set(COMPILER_RT_LINUX_SDK_SYSROOT ${COMPILER_RT_SOURCE_DIR}/SDKs/linux) # Detect whether the current target platform is 32-bit or 64-bit, and setup # the correct commandline flags needed to attempt to target 32-bit and 64-bit. diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 2538a4df..81726e03 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -15,10 +15,10 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT ANDROID) add_subdirectory(tsan) add_subdirectory(msan) add_subdirectory(msandr) + # FIXME: Add support for the profile library on OS X. + add_subdirectory(profile) endif() -# FIXME: Add support for the profile library. - # 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. diff --git a/lib/profile/CMakeLists.txt b/lib/profile/CMakeLists.txt new file mode 100644 index 00000000..70fc1750 --- /dev/null +++ b/lib/profile/CMakeLists.txt @@ -0,0 +1,13 @@ +set(PROFILE_SOURCES + GCDAProfiling.c) + +filter_available_targets(PROFILE_SUPPORTED_ARCH x86_64 i386) + +if(NOT APPLE) + # FIXME: Add support for profile.rt on Mac. + foreach(arch ${PROFILE_SUPPORTED_ARCH}) + add_compiler_rt_static_runtime(clang_rt.profile-${arch} ${arch} + SOURCES ${PROFILE_SOURCES} + CFLAGS --sysroot=${COMPILER_RT_LINUX_SDK_SYSROOT}) + endforeach() +endif() |