From 6127724786d581d2653df7420d1f28709288a107 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Mon, 4 Nov 2024 17:53:38 -0500 Subject: [PATCH] [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 --- cmake/Modules/HandleOutOfTreeLLVM.cmake | 80 ------------------- compiler-rt/cmake/Modules/AddCompilerRT.cmake | 1 - libunwind/docs/BuildingLibunwind.rst | 19 +---- .../docs/HowToBuildWindowsItaniumPrograms.rst | 18 ++--- runtimes/CMakeLists.txt | 3 - 5 files changed, 6 insertions(+), 115 deletions(-) delete mode 100644 cmake/Modules/HandleOutOfTreeLLVM.cmake diff --git a/cmake/Modules/HandleOutOfTreeLLVM.cmake b/cmake/Modules/HandleOutOfTreeLLVM.cmake deleted file mode 100644 index edffe572e091e..0000000000000 --- a/cmake/Modules/HandleOutOfTreeLLVM.cmake +++ /dev/null @@ -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() diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake index e3d81d241b105..bfa1834229baa 100644 --- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake +++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake @@ -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 diff --git a/libunwind/docs/BuildingLibunwind.rst b/libunwind/docs/BuildingLibunwind.rst index 79166b4769c61..8b4f1207d4ba9 100644 --- a/libunwind/docs/BuildingLibunwind.rst +++ b/libunwind/docs/BuildingLibunwind.rst @@ -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 diff --git a/llvm/docs/HowToBuildWindowsItaniumPrograms.rst b/llvm/docs/HowToBuildWindowsItaniumPrograms.rst index 883c1868b753a..48ca7b25b11ef 100644 --- a/llvm/docs/HowToBuildWindowsItaniumPrograms.rst +++ b/llvm/docs/HowToBuildWindowsItaniumPrograms.rst @@ -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: - -* ``cd build-dir`` -* ``cmake -DLLVM_PATH= -DCMAKE_INSTALL_PREFIX= `` -* ```` -* `` 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. +To build the libraries in step 2, refer to the `libc++ documentation `_. + +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: ----------------------------------- diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt index 830165c799c2a..832a7d0c19359 100644 --- a/runtimes/CMakeLists.txt +++ b/runtimes/CMakeLists.txt @@ -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)