diff options
author | Alexey Samsonov <samsonov@google.com> | 2012-08-31 11:12:10 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2012-08-31 11:12:10 +0000 |
commit | 8790f0a7f39d61a806c7339abd45bb83c15ee042 (patch) | |
tree | 6db39401494c4349c6f847ff9bf6d6a1334d0fd9 /utils/llvm-symbolizer/CMakeLists.txt | |
parent | 2acf5562bfd787c1667297c593ddfc0e35b91489 (diff) |
[compiler-rt] Move draft code for llvm-symbolizer to compiler-rt/utils/llvm-symbolizer after chandlerc's suggestion
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@162988 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/llvm-symbolizer/CMakeLists.txt')
-rw-r--r-- | utils/llvm-symbolizer/CMakeLists.txt | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/utils/llvm-symbolizer/CMakeLists.txt b/utils/llvm-symbolizer/CMakeLists.txt new file mode 100644 index 000000000..d1f0acd88 --- /dev/null +++ b/utils/llvm-symbolizer/CMakeLists.txt @@ -0,0 +1,67 @@ +# Build llvm-symbolizer binary, which will be used as an external symbolizer +# by sanitizer tools. Later it can probably become another LLVM tool. + +set(SYMBOLIZER_SOURCES + llvm-symbolizer.cc + ) + +# Append sources of LLVM libs we use. +append_llvm_sources(SYMBOLIZER_SOURCES + LLVMDebugInfo + LLVMSupport + LLVMObject + ) + +set(SYMBOLIZER_CFLAGS + -I${LLVM_MAIN_SRC_DIR}/include + -I${LLVM_BINARY_DIR}/include + -fPIC + -fomit-frame-pointer + -O3 + ) + +set(SYMBOLIZER_DEFINITIONS +# __STDC_CONSTANT_MACROS=1 +# __STDC_LIMIT_MACROS=1 + ) + +# FIXME: Generalize the following ugly piece in sanitizer_common, symbolizer +# and asan folders. +set(SYMBOLIZER_BINARIES) +if (APPLE) + # Build universal binary on Apple. + add_executable(llvm-symbolizer.osx ${SYMBOLIZER_SOURCES}) + set_target_compile_flags(llvm-symbolizer.osx ${SYMBOLIZER_CFLAGS}) + filter_available_targets(SYMBOLIZER_TARGETS x86_64 i386) + set_target_properties(llvm-symbolizer.osx PROPERTIES + OSX_ARCHITECTURES "${SYMBOLIZER_TARGETS}") + list(APPEND SYMBOLIZER_BINARIES llvm-symbolizer.osx) +elseif(UNIX) + # Assume Linux + if(CAN_TARGET_X86_64) + add_executable(llvm-symbolizer-x86_64 ${SYMBOLIZER_SOURCES}) + set_target_compile_flags(llvm-symbolizer-x86_64 + ${SYMBOLIZER_CFLAGS} ${TARGET_X86_64_CFLAGS}) + set_property(TARGET llvm-symbolizer-x86_64 APPEND_STRING PROPERTY + LINK_FLAGS " ${TARGET_X86_64_CFLAGS}") + list(APPEND SYMBOLIZER_BINARIES llvm-symbolizer-x86_64) + endif() + if(CAN_TARGET_I386) + add_executable(llvm-symbolizer-i386 ${SYMBOLIZER_SOURCES}) + set_target_compile_flags(llvm-symbolizer-i386 + ${SYMBOLIZER_CFLAGS} ${TARGET_I386_CFLAGS}) + set_property(TARGET llvm-symbolizer-i386 APPEND_STRING PROPERTY + LINK_FLAGS " ${TARGET_I386_CFLAGS}") + list(APPEND SYMBOLIZER_BINARIES llvm-symbolizer-i386) + endif() + # Linux-specific linker flags. + set_property(TARGET ${SYMBOLIZER_BINARIES} APPEND_STRING PROPERTY + LINK_FLAGS " -lpthread -ldl") +endif() + +set_property(TARGET ${SYMBOLIZER_BINARIES} APPEND PROPERTY + COMPILE_DEFINITIONS ${SYMBOLIZER_DEFINITIONS} + ) +# FIXME: Setup sane output directories for ${SYMBOLIZER_BINARIES} +set_target_properties(${SYMBOLIZER_BINARIES} PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) |