[runtimes][NFC] Colocate handling of LLVM_ENABLE_PROJECTS and LLVM_ENABLE_RUNTIMES
This will make the following patches to migrate projects off of the LLVM_ENABLE_PROJECTS build onto the LLVM_ENABLE_RUNTIMES build much easier to comprehend. This patch should be a NFC since it keeps the same set of runtimes being built by default. Differential Revision: https://reviews.llvm.org/D132478
This commit is contained in:
parent
849ca4626e
commit
a8cd9396c7
|
@ -143,6 +143,20 @@ if ("flang" IN_LIST LLVM_ENABLE_PROJECTS)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
# Select the runtimes to build
|
||||
set(LLVM_DEFAULT_RUNTIMES "compiler-rt;libc;libcxx;libcxxabi;libunwind;openmp")
|
||||
set(LLVM_SUPPORTED_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp;llvm-libgcc")
|
||||
set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
|
||||
"Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
|
||||
if(LLVM_ENABLE_RUNTIMES STREQUAL "all")
|
||||
set(LLVM_ENABLE_RUNTIMES ${LLVM_DEFAULT_RUNTIMES})
|
||||
endif()
|
||||
foreach(proj IN LISTS LLVM_ENABLE_RUNTIMES)
|
||||
if (NOT "${proj}" IN_LIST LLVM_SUPPORTED_RUNTIMES)
|
||||
message(FATAL_ERROR "Runtime ${proj} is not a supported runtime. Supported runtimes are: ${LLVM_SUPPORTED_RUNTIMES}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# LLVM_ENABLE_PROJECTS_USED is `ON` if the user has ever used the
|
||||
# `LLVM_ENABLE_PROJECTS` CMake cache variable. This exists for
|
||||
# several reasons:
|
||||
|
|
|
@ -3,16 +3,6 @@
|
|||
# similar although simpler functionality. We should figure out how to merge
|
||||
# the two files.
|
||||
|
||||
# TODO: Selecting runtimes should be always performed inside the runtimes
|
||||
# build, see runtimes/CMakeLists.txt, except that we currently check whether
|
||||
# compiler-rt is being built to determine whether to first build builtins
|
||||
# or not so we need that information in this file as well.
|
||||
set(LLVM_ALL_RUNTIMES "compiler-rt;libc;libcxx;libcxxabi;libunwind;openmp")
|
||||
set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
|
||||
"Semicolon-separated list of runtimes to build (${LLVM_ALL_RUNTIMES}), or \"all\".")
|
||||
if(LLVM_ENABLE_RUNTIMES STREQUAL "all" )
|
||||
set(LLVM_ENABLE_RUNTIMES ${LLVM_ALL_RUNTIMES})
|
||||
endif()
|
||||
set(COMMON_CMAKE_ARGS "-DHAVE_LLVM_LIT=ON")
|
||||
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
||||
set(proj_dir "${CMAKE_CURRENT_SOURCE_DIR}/../../${proj}")
|
||||
|
|
|
@ -16,14 +16,14 @@ list(INSERT CMAKE_MODULE_PATH 0
|
|||
# We order libraries to mirror roughly how they are layered, except that compiler-rt can depend
|
||||
# on libc++, so we put it after.
|
||||
set(LLVM_DEFAULT_RUNTIMES "libc;libunwind;libcxxabi;pstl;libcxx;compiler-rt;openmp")
|
||||
set(LLVM_ALL_RUNTIMES "${LLVM_DEFAULT_RUNTIMES};llvm-libgcc")
|
||||
set(LLVM_SUPPORTED_RUNTIMES "${LLVM_DEFAULT_RUNTIMES};llvm-libgcc")
|
||||
set(LLVM_ENABLE_RUNTIMES "" CACHE STRING
|
||||
"Semicolon-separated list of runtimes to build (${LLVM_ALL_RUNTIMES}), or \"all\".")
|
||||
"Semicolon-separated list of runtimes to build, or \"all\" (${LLVM_DEFAULT_RUNTIMES}). Supported runtimes are ${LLVM_SUPPORTED_RUNTIMES}.")
|
||||
if(LLVM_ENABLE_RUNTIMES STREQUAL "all" )
|
||||
set(LLVM_ENABLE_RUNTIMES ${LLVM_DEFAULT_RUNTIMES})
|
||||
endif()
|
||||
include(SortSubset)
|
||||
sort_subset("${LLVM_ALL_RUNTIMES}" "${LLVM_ENABLE_RUNTIMES}" LLVM_ENABLE_RUNTIMES)
|
||||
sort_subset("${LLVM_SUPPORTED_RUNTIMES}" "${LLVM_ENABLE_RUNTIMES}" LLVM_ENABLE_RUNTIMES)
|
||||
|
||||
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
||||
set(proj_dir "${CMAKE_CURRENT_SOURCE_DIR}/../${proj}")
|
||||
|
|
Loading…
Reference in New Issue