[llvm] fea1596 - [llvm][cmake] Do not emit error on `libc`'s use of project + runtime build (#110038)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 25 14:32:33 PDT 2024
Author: Joseph Huber
Date: 2024-09-25T14:32:29-07:00
New Revision: fea159671ae189fd25f0b01f35160ca31a07f962
URL: https://github.com/llvm/llvm-project/commit/fea159671ae189fd25f0b01f35160ca31a07f962
DIFF: https://github.com/llvm/llvm-project/commit/fea159671ae189fd25f0b01f35160ca31a07f962.diff
LOG: [llvm][cmake] Do not emit error on `libc`'s use of project + runtime build (#110038)
Summary:
The `libc` project automatically adds `libc` to the projects list if
it's in the runtimes list. This then causes it to enter the projects
directory to bootstrap a handful of utilities, This usage conflicts
with a new error message with effectively stopped us from doing this.
This patch weakens the error message to permit this single case.
Added:
Modified:
llvm/CMakeLists.txt
Removed:
################################################################################
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 330db65e85cabb..0044c38f566a78 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -161,12 +161,6 @@ foreach(proj IN LISTS LLVM_ENABLE_RUNTIMES)
endif()
endforeach()
-foreach(proj IN LISTS LLVM_ENABLE_RUNTIMES)
- if ("${proj}" IN_LIST LLVM_ENABLE_PROJECTS)
- message(FATAL_ERROR "Runtime project \"${proj}\" found in LLVM_ENABLE_PROJECTS and LLVM_ENABLE_RUNTIMES. It must only appear in one of them and that one should almost always be LLVM_ENABLE_RUNTIMES.")
- endif()
-endforeach()
-
# Set a shorthand option to enable the GPU build of the 'libc' project.
option(LIBC_GPU_BUILD "Enable the 'libc' project targeting the GPU" OFF)
if(LIBC_GPU_BUILD)
@@ -204,6 +198,16 @@ if(NEED_LIBC_HDRGEN)
list(APPEND LLVM_ENABLE_PROJECTS "libc")
endif()
endif()
+
+foreach(proj IN LISTS LLVM_ENABLE_RUNTIMES)
+ if("${proj}" IN_LIST LLVM_ENABLE_PROJECTS)
+ # The 'libc' project bootstraps a few executables via the project build and
+ # should not emit an error currently.
+ if(NOT (NEED_LIBC_HDRGEN AND "${proj}" STREQUAL "libc"))
+ message(FATAL_ERROR "Runtime project \"${proj}\" found in LLVM_ENABLE_PROJECTS and LLVM_ENABLE_RUNTIMES. It must only appear in one of them and that one should almost always be LLVM_ENABLE_RUNTIMES.")
+ endif()
+ endif()
+endforeach()
unset(NEED_LIBC_HDRGEN)
# LLVM_ENABLE_PROJECTS_USED is `ON` if the user has ever used the
More information about the llvm-commits
mailing list