tamasmeszaros bbd1f3f8d8 WIP
2022-01-27 14:45:20 +01:00

49 lines
2.2 KiB
CMake

set(projectname LLVM)
set(_llvm_cmake_c_flags "-isystem ${DESTDIR}/usr/local/include -fsanitize=memory")
set(_llvm_cmake_cxx_flags "-nostdinc++ -isystem ${DESTDIR}/usr/local/include -isystem ${DESTDIR}/usr/local/include/c++/v1 -fsanitize=memory")
# TODO: Build LLVM statically and link with Mesa 3D.
ExternalProject_Add(dep_LLVM
URL https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.1/llvm-project-12.0.1.src.tar.xz
URL_HASH SHA256=129cb25cd13677aad951ce5c2deb0fe4afc1e9d98950f53b51bdcfb5a73afa0e
DEPENDS dep_Libcxx
EXCLUDE_FROM_ALL ON
INSTALL_DIR ${DESTDIR}/usr/local
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/LLVM
LIST_SEPARATOR | # Use the alternate list separator because by default all ; are replaced by space
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
-DCMAKE_MODULE_PATH:STRING=${PROJECT_SOURCE_DIR}/../cmake/modules
-DCMAKE_PREFIX_PATH:STRING=${DESTDIR}/usr/local
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DCMAKE_BUILD_RPATH=${DESTDIR}/usr/local/lib
-DCMAKE_BUILD_TYPE=Release
-DLLVM_USE_SANITIZER=MemoryWithOrigins
# -DLLVM_ENABLE_PROJECTS=clang|lld|llvm-config
-DLLVM_ENABLE_PROJECTS=LLVM|llvm-config
#-DLLVM_ENABLE_LIBCXX=ON
# This forces to make shared library.
-DLLVM_BUILD_LLVM_DYLIB=ON
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_DYLIB_COMPONENTS=all
# -DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_ENABLE_PIC=ON
-DCMAKE_C_FLAGS:STRING=${_llvm_cmake_c_flags}
-DCMAKE_CXX_FLAGS:STRING=${_llvm_cmake_cxx_flags}
-DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,-L${DESTDIR}/usr/local/lib,-lc++"
-DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,-L${DESTDIR}/usr/local/lib,-lc++"
SOURCE_SUBDIR llvm
BUILD_COMMAND ${CMAKE_COMMAND} --build . --target LLVM llvm-config -- ${_build_j}
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install-LLVM install-llvm-config install-llvm-headers
)