[llvm-commits] PATCH: Add LLVM_ENABLE_STAGING option to CMake

Tom Stellard thomas.stellard at amd.com
Mon Jul 30 11:10:42 PDT 2012


Hi,

The attached patched adds the LLVM_ENABLE_STAGING flag to CMake.  This
flag is disabled by default and must be enabled to build staging
targets.  There are no staging targets at the moment, so the flag
doesn't actually do anything yet.

The idea for this patch comes from the LLVM staging area discussion thread[1]
on LLVM dev.

Please Review.

Thanks,
Tom

[1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-July/052146.html
-------------- next part --------------
diff --git CMakeLists.txt CMakeLists.txt
index bb64db9..e5359a3 100644
--- CMakeLists.txt
+++ CMakeLists.txt
@@ -73,7 +73,7 @@ set(LLVM_TOOLS_BINARY_DIR ${LLVM_BINARY_DIR}/bin)
 set(LLVM_EXAMPLES_BINARY_DIR ${LLVM_BINARY_DIR}/examples)
 set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
 
-set(LLVM_ALL_TARGETS
+set(LLVM_DEFAULT_TARGETS
   ARM
   CellSPU
   CppBackend
@@ -91,6 +91,14 @@ set(LLVM_ALL_TARGETS
 # List of targets with JIT support:
 set(LLVM_TARGETS_WITH_JIT X86 PowerPC ARM Mips)
 
+# List of staged targets.  These are not built by default.
+set (LLVM_STAGING_TARGETS )
+
+set (LLVM_ALL_TARGETS
+  ${LLVM_DEFAULT_TARGETS}
+  ${LLVM_STAGING_TARGETS}
+  )
+
 if( MSVC )
   set(LLVM_TARGETS_TO_BUILD X86
     CACHE STRING "Semicolon-separated list of targets to build, or \"all\".")
@@ -122,9 +130,11 @@ set(LLVM_TARGET_ARCH "host"
 option(LLVM_ENABLE_THREADS "Use threads if available." ON)
 
 if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )
-  set( LLVM_TARGETS_TO_BUILD ${LLVM_ALL_TARGETS} )
+  set( LLVM_TARGETS_TO_BUILD ${LLVM_DEFAULT_TARGETS} )
 endif()
 
+option (LLVM_ENABLE_STAGING "Build staged backends" OFF)
+
 set(LLVM_ENUM_TARGETS "")
 foreach(c ${LLVM_TARGETS_TO_BUILD})
   list(FIND LLVM_ALL_TARGETS ${c} idx)
@@ -132,7 +142,13 @@ foreach(c ${LLVM_TARGETS_TO_BUILD})
     message(FATAL_ERROR "The target `${c}' does not exist.
     It should be one of\n${LLVM_ALL_TARGETS}")
   else()
-    set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${c})\n")
+    # Check if the target is a staged target
+    list (FIND LLVM_STAGING_TARGETS ${c} idx)
+    if ( idx GREATER -1 AND NOT LLVM_ENABLE_STAGING )
+      message(FATAL_ERROR "You must set LLVM_ENABLE_STAGING to build ${c}")
+    else()
+      set(LLVM_ENUM_TARGETS "${LLVM_ENUM_TARGETS}LLVM_TARGET(${c})\n")
+    endif()
   endif()
 endforeach(c)
 


More information about the llvm-commits mailing list