[cmake] Remove obsolete files, docs and CMake variables related to the standalone build (#112741)
The runtimes used to support a build mode called the "Standalone build", which isn't supported anymore (and hasn't been for a few years). However, various places in the code still contained stuff whose only purpose was to support that build mode, and some outdated documentation. This patch cleans that up (although I probably missed some). - Remove HandleOutOfTreeLLVM.cmake which isn't referenced anymore - Remove the LLVM_PATH CMake variable which isn't used anymore - Update some outdated documentation referencing standalone builds
This commit is contained in:
parent
97b7474970
commit
6127724786
@ -1,80 +0,0 @@
|
||||
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_DIR "${LLVM_PATH}/cmake/modules")
|
||||
set(LLVM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
set(LLVM_LIBRARY_OUTPUT_INTDIR "${CMAKE_CURRENT_BINARY_DIR}/lib")
|
||||
|
||||
if (EXISTS "${LLVM_CMAKE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
|
||||
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_DIR} nor ${LLVM_MAIN_SRC_DIR}/cmake/modules found. "
|
||||
"This is not a supported configuration.")
|
||||
endif()
|
||||
|
||||
message(STATUS "Configuring for standalone build.")
|
||||
|
||||
# By default, we target the host, but this can be overridden at CMake invocation time.
|
||||
include(GetHostTriple)
|
||||
get_host_triple(LLVM_INFERRED_HOST_TRIPLE)
|
||||
set(LLVM_HOST_TRIPLE "${LLVM_INFERRED_HOST_TRIPLE}" CACHE STRING "Host on which LLVM binaries will run")
|
||||
set(LLVM_DEFAULT_TARGET_TRIPLE "${LLVM_HOST_TRIPLE}" CACHE STRING "Target triple used by default.")
|
||||
|
||||
# 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()
|
@ -690,7 +690,6 @@ macro(add_custom_libcxx name prefix)
|
||||
-DCMAKE_CXX_FLAGS=${LIBCXX_CXX_FLAGS}
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
-DCMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY
|
||||
-DLLVM_PATH=${LLVM_MAIN_SRC_DIR}
|
||||
-DLLVM_ENABLE_RUNTIMES=libcxx|libcxxabi
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF
|
||||
-DLIBCXXABI_ENABLE_SHARED=OFF
|
||||
|
@ -16,7 +16,7 @@ On Mac OS, the easiest way to get this library is to link with -lSystem.
|
||||
However if you want to build tip-of-trunk from here (getting the bleeding
|
||||
edge), read on.
|
||||
|
||||
The basic steps needed to build libc++ are:
|
||||
The basic steps needed to build libunwind are:
|
||||
|
||||
#. Checkout LLVM, libunwind, and related projects:
|
||||
|
||||
@ -50,23 +50,6 @@ The basic steps needed to build libc++ are:
|
||||
* ``make install-unwind`` --- Will install the libraries and the headers
|
||||
|
||||
|
||||
It is sometimes beneficial to build outside of the LLVM tree. An out-of-tree
|
||||
build would look like this:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ cd where-you-want-libunwind-to-live
|
||||
$ # Check out llvm, and libunwind
|
||||
$ ``svn co https://llvm.org/svn/llvm-project/llvm/trunk llvm``
|
||||
$ ``svn co https://llvm.org/svn/llvm-project/libunwind/trunk libunwind``
|
||||
$ cd where-you-want-to-build
|
||||
$ mkdir build && cd build
|
||||
$ export CC=clang CXX=clang++
|
||||
$ cmake -DLLVM_PATH=path/to/llvm \
|
||||
path/to/libunwind
|
||||
$ make
|
||||
|
||||
|
||||
.. _CMake Options:
|
||||
|
||||
CMake Options
|
||||
|
@ -73,19 +73,11 @@ The procedure is:
|
||||
|
||||
It is also possible to cross-compile from Linux.
|
||||
|
||||
One method of building the libraries in step 2. is to build them "stand-alone".
|
||||
A stand-alone build doesn't involve the rest of the LLVM tree. The steps are:
|
||||
To build the libraries in step 2, refer to the `libc++ documentation <https://libcxx.llvm.org/VendorDocumentation.html#the-default-build>`_.
|
||||
|
||||
* ``cd build-dir``
|
||||
* ``cmake -DLLVM_PATH=<path to llvm checkout e.g. /llvm-project/> -DCMAKE_INSTALL_PREFIX=<install path> <other options> <path to project e.g. /llvm-project/libcxxabi>``
|
||||
* ``<make program e.g. ninja>``
|
||||
* ``<make program> install``
|
||||
|
||||
More information on standalone builds can be found in the build documentation for
|
||||
the respective libraries. The next section discuss the salient options and modifications
|
||||
required for building and installing the libraries using standalone builds. This assumes
|
||||
that we are building libunwind and ibc++ as DLLs and statically linking libc++abi into
|
||||
libc++. Other build configurations are possible, but they are not discussed here.
|
||||
The next section discuss the salient options and modifications required for building and installing the
|
||||
libraries. This assumes that we are building libunwind and libc++ as DLLs and statically linking libc++abi
|
||||
into libc++. Other build configurations are possible, but they are not discussed here.
|
||||
|
||||
Common CMake configuration options:
|
||||
-----------------------------------
|
||||
|
@ -75,9 +75,6 @@ set(LLVM_RUNTIME_OUTPUT_INTDIR ${LLVM_TOOLS_BINARY_DIR})
|
||||
set(LLVM_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../llvm)
|
||||
set(LLVM_CMAKE_DIR ${LLVM_MAIN_SRC_DIR}/cmake/modules)
|
||||
|
||||
# This variable is used by individual runtimes to locate LLVM files.
|
||||
set(LLVM_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../llvm)
|
||||
|
||||
include(CheckLibraryExists)
|
||||
include(LLVMCheckCompilerLinkerFlag)
|
||||
include(CheckCCompilerFlag)
|
||||
|
Loading…
x
Reference in New Issue
Block a user