[llvm] fe846bc - Escape LLVM_TARGETS_TO_BUILD while checking against LLVM_ALL_TARGETS and LLVM_EXPERIMENTAL_TARGETS_TO_BUILD (#70885)

via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 31 23:34:27 PDT 2023


Author: Natschz
Date: 2023-10-31T23:34:23-07:00
New Revision: fe846bc9bd164ed89cef1caefb681e0aee3d4dec

URL: https://github.com/llvm/llvm-project/commit/fe846bc9bd164ed89cef1caefb681e0aee3d4dec
DIFF: https://github.com/llvm/llvm-project/commit/fe846bc9bd164ed89cef1caefb681e0aee3d4dec.diff

LOG: Escape LLVM_TARGETS_TO_BUILD while checking against LLVM_ALL_TARGETS and LLVM_EXPERIMENTAL_TARGETS_TO_BUILD (#70885)

Targeting X86 while building LLVM with the Android NDK, currently fails
with "The target `X86' is not a core tier target. It may be experimental,
if so it must be passed via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD."

This is happening because the Android NDK defines a variable named X86,
which will lead to a "fun" CMake feature. For further details reference
[this post](https://discourse.llvm.org/t/the-target-x86-is-not-a-core-tier-target/73784).

To fix this, the LLVM_TARGETS_TO_BUILD need to be escaped while checking
agains LLVM_ALL_TARGETS and LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.

Added: 
    

Modified: 
    llvm/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index 82d4beea91e346e..292efa3316df748 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -942,8 +942,8 @@ foreach(t ${LLVM_TARGETS_TO_BUILD})
   # LLVM_EXPERIMENTAL_TARGETS_TO_BUILD, not LLVM_TARGETS_TO_BUILD.
   # We allow experimental targets that are not in LLVM_ALL_EXPERIMENTAL_TARGETS,
   # as long as they are passed via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.
-  if ( NOT ${t} IN_LIST LLVM_ALL_TARGETS AND NOT ${t} IN_LIST LLVM_EXPERIMENTAL_TARGETS_TO_BUILD )
-    if( ${t} IN_LIST LLVM_ALL_EXPERIMENTAL_TARGETS )
+  if ( NOT "${t}" IN_LIST LLVM_ALL_TARGETS AND NOT "${t}" IN_LIST LLVM_EXPERIMENTAL_TARGETS_TO_BUILD )
+    if( "${t}" IN_LIST LLVM_ALL_EXPERIMENTAL_TARGETS )
       message(FATAL_ERROR "The target `${t}' is experimental and must be passed "
         "via LLVM_EXPERIMENTAL_TARGETS_TO_BUILD.")
     else()


        


More information about the llvm-commits mailing list