Remove check for standalone and shared library mode in libcxxabi to allow including tests in said mode. This check prevented running the tests in standalone mode with static libraries, which is the case for baremetal targets. Fix check-unwind target trying to use a non-existent llvm-lit executable in standalone mode. Copy the HandleOutOfTreeLLVM logic from libcxxabi to libunwind in order to make the tests work in standalone mode. Reviewed By: ldionne, #libc_abi, #libc Differential Revision: https://reviews.llvm.org/D86540
73 lines
2.3 KiB
CMake
73 lines
2.3 KiB
CMake
if (NOT DEFINED LLVM_PATH)
|
|
set(LLVM_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../llvm CACHE PATH "" FORCE)
|
|
endif()
|
|
|
|
if(NOT IS_DIRECTORY ${LLVM_PATH})
|
|
message(FATAL_ERROR
|
|
"The provided LLVM_PATH (${LLVM_PATH}) is not a valid directory. Note that "
|
|
"building libc++ outside of the monorepo is not supported anymore. Please "
|
|
"use a Standalone build against the monorepo, a Runtimes build or a classic "
|
|
"monorepo build.")
|
|
endif()
|
|
|
|
set(LLVM_INCLUDE_DIR ${LLVM_PATH}/include CACHE PATH "Path to llvm/include")
|
|
set(LLVM_PATH ${LLVM_PATH} CACHE PATH "Path to LLVM source tree")
|
|
set(LLVM_MAIN_SRC_DIR ${LLVM_PATH})
|
|
set(LLVM_CMAKE_PATH "${LLVM_PATH}/cmake/modules")
|
|
|
|
if (EXISTS "${LLVM_CMAKE_PATH}")
|
|
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_PATH}")
|
|
elseif (EXISTS "${LLVM_MAIN_SRC_DIR}/cmake/modules")
|
|
list(APPEND CMAKE_MODULE_PATH "${LLVM_MAIN_SRC_DIR}/cmake/modules")
|
|
else()
|
|
message(FATAL_ERROR "Neither ${LLVM_CMAKE_PATH} nor ${LLVM_MAIN_SRC_DIR}/cmake/modules found. "
|
|
"This is not a supported configuration.")
|
|
endif()
|
|
|
|
message(STATUS "Configuring for standalone build.")
|
|
|
|
# Add LLVM Functions --------------------------------------------------------
|
|
if (WIN32)
|
|
set(LLVM_ON_UNIX 0)
|
|
set(LLVM_ON_WIN32 1)
|
|
else()
|
|
set(LLVM_ON_UNIX 1)
|
|
set(LLVM_ON_WIN32 0)
|
|
endif()
|
|
|
|
include(AddLLVM OPTIONAL)
|
|
|
|
# LLVM Options --------------------------------------------------------------
|
|
if (NOT DEFINED LLVM_INCLUDE_TESTS)
|
|
set(LLVM_INCLUDE_TESTS ON)
|
|
endif()
|
|
if (NOT DEFINED LLVM_INCLUDE_DOCS)
|
|
set(LLVM_INCLUDE_DOCS ON)
|
|
endif()
|
|
if (NOT DEFINED LLVM_ENABLE_SPHINX)
|
|
set(LLVM_ENABLE_SPHINX OFF)
|
|
endif()
|
|
|
|
if (LLVM_INCLUDE_TESTS)
|
|
# Required LIT Configuration ------------------------------------------------
|
|
# Define the default arguments to use with 'lit', and an option for the user
|
|
# to override.
|
|
set(LLVM_DEFAULT_EXTERNAL_LIT "${LLVM_MAIN_SRC_DIR}/utils/lit/lit.py")
|
|
set(LIT_ARGS_DEFAULT "-sv --show-xfail --show-unsupported")
|
|
if (MSVC OR XCODE)
|
|
set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar")
|
|
endif()
|
|
set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")
|
|
endif()
|
|
|
|
# Required doc configuration
|
|
if (LLVM_ENABLE_SPHINX)
|
|
find_package(Sphinx REQUIRED)
|
|
endif()
|
|
|
|
if (LLVM_ON_UNIX AND NOT APPLE)
|
|
set(LLVM_HAVE_LINK_VERSION_SCRIPT 1)
|
|
else()
|
|
set(LLVM_HAVE_LINK_VERSION_SCRIPT 0)
|
|
endif()
|