diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -116,8 +116,12 @@ set(LLVM_KNOWN_PROJECTS "${LLVM_ALL_PROJECTS};${LLVM_EXTRA_PROJECTS}") set(LLVM_ENABLE_PROJECTS "" CACHE STRING "Semicolon-separated list of projects to build (${LLVM_KNOWN_PROJECTS}), or \"all\".") +# Make sure expansion happens first to not handle "all" in rest of the checks. +if( LLVM_ENABLE_PROJECTS STREQUAL "all" ) + set( LLVM_ENABLE_PROJECTS ${LLVM_ALL_PROJECTS}) +endif() foreach(proj ${LLVM_ENABLE_PROJECTS}) - if (NOT proj STREQUAL "all" AND NOT proj STREQUAL "llvm" AND NOT "${proj}" IN_LIST LLVM_KNOWN_PROJECTS) + if (NOT proj STREQUAL "llvm" AND NOT "${proj}" IN_LIST LLVM_KNOWN_PROJECTS) MESSAGE(FATAL_ERROR "${proj} isn't a known project: ${LLVM_KNOWN_PROJECTS}") endif() endforeach() @@ -131,10 +135,6 @@ endif() endforeach() -if( LLVM_ENABLE_PROJECTS STREQUAL "all" ) - set( LLVM_ENABLE_PROJECTS ${LLVM_ALL_PROJECTS}) -endif() - if ("flang" IN_LIST LLVM_ENABLE_PROJECTS) if (NOT "mlir" IN_LIST LLVM_ENABLE_PROJECTS) message(STATUS "Enabling MLIR as a dependency to flang")