From 4f21c1358d17a0092f5980a20de74fac0dbd2693 Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Mon, 10 Nov 2008 01:47:07 +0000 Subject: [PATCH] CMake: Implement magic word `all' for selecting all targets. Check that specified targets are known. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58951 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ac7da6554d2..7f477ad143e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,15 +13,42 @@ set(LLVM_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) set(LLVM_TOOLS_BINARY_DIR ${LLVM_BINARY_DIR}/bin) set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples) +set(LLVM_ALL_TARGETS + Alpha + ARM + CBackend + CellSPU + CppBackend + IA64 + Mips + MSIL + PIC16 + PowerPC + Sparc + X86 + XCore + ) + if( MSVC ) set(LLVM_TARGETS_TO_BUILD X86 - CACHE STRING "Semicolon-separated list of targets to build") + CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") else( MSVC ) - set(LLVM_TARGETS_TO_BUILD - Alpha ARM CBackend CellSPU CppBackend IA64 Mips MSIL PIC16 PowerPC Sparc X86 XCore - CACHE STRING "Semicolon-separated list of targets to build") + set(LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} + CACHE STRING "Semicolon-separated list of targets to build, or \"all\".") endif( MSVC ) +if( LLVM_TARGETS_TO_BUILD STREQUAL "all" ) + set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} ) +endif() + +foreach(c ${LLVM_TARGETS_TO_BUILD}) + list(FIND LLVM_ALL_TARGETS ${c} idx) + if( idx LESS 0 ) + message(FATAL_ERROR "The target `${c}' does not exists. + It should be one of\n${LLVM_ALL_TARGETS}") + endif() +endforeach(c) + set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm) # Add path for custom modules