de7a5dde创建于 2025年12月31日历史提交
# build llvm-symbolizer
include(ExternalProject)
set(LLVM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm)

set(LINKER_FLAGS "-s -pie -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack")
set(CXX_FLAGS "${LINKER_FLAGS} -Wall -fPIC -fPIE -fstack-protector-all -D_FORTIFY_SOURCE=2 -ftrapv -fstack-check")

ExternalProject_Add(llvm_build
                    SOURCE_DIR  ${THIRD_PARTY_DIR}/llvm-project/llvm
                    CMAKE_ARGS
                                -DCMAKE_BUILD_TYPE=Release
                                -DLLVM_TARGETS_TO_BUILD=host
                                -DLLVM_BUILD_TOOLS=NO
                                -DLLVM_BUILD_LLVM_DYLIB=YES
                                -DCMAKE_INSTALL_PREFIX=llvm
                                -DCMAKE_CXX_FLAGS=${CXX_FLAGS}
                                -DCMAKE_SKIP_RPATH=TRUE
                                -DLLVM_ENABLE_ZSTD=OFF
                                -DCMAKE_CXX_COMPILER_LAUNCHER=${CMAKE_CXX_COMPILER_LAUNCHER}
                                -DCMAKE_C_COMPILER_LAUNCHER=${CMAKE_C_COMPILER_LAUNCHER}
                                -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
                    BUILD_COMMAND $(MAKE) llvm-symbolizer
                    BINARY_DIR ${LLVM_BINARY_DIR}
                    INSTALL_COMMAND ""
                    EXCLUDE_FROM_ALL FALSE
)
install(PROGRAMS ${LLVM_BINARY_DIR}/bin/llvm-symbolizer DESTINATION ${CMAKE_INSTALL_PREFIX}/bin/)