cmake: Set LINK_POLLY_INTO_TOOLS to ON (v2)
authorTobias Grosser <tobias@grosser.es>
Fri, 29 Apr 2016 15:07:22 +0000 (15:07 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 29 Apr 2016 15:07:22 +0000 (15:07 +0000)
This is the second try. This time we disable this feature if no Polly checkout
is available. For this to work we need to check if tools/polly is present
early enough that our decision is known before cmake generates Config/config.h.

With Polly checked into LLVM it was since a long time possible to compile
clang/opt/bugpoint with Polly support directly linked in, instead of only
providing Polly as a separate loadable module. This commit switches the
default from providing Polly as a module to linking Polly into tools, such
that it becomes unnecessary to load the Polly module when playing with Polly.
Such configuration has shown a lot more convenient for day-to-day Polly use.

This change does not impact the default behavior of any tool, if Polly is not
explicitly enabled when calling clang/opt/bugpoint Polly does not affect
compilation.

This change also does not impact normal LLVM/clang checkouts that do not
contain Polly.

Reviewers: jdoerfert, Meinersbur

Subscribers: pollydev, llvm-commits

Differential Revision: http://reviews.llvm.org/D19711

llvm-svn: 268048

llvm/CMakeLists.txt
llvm/tools/CMakeLists.txt

index 771bce1..fd6b817 100644 (file)
@@ -342,7 +342,7 @@ option(LLVM_USE_SPLIT_DWARF
   "Use -gsplit-dwarf when compiling llvm." OFF)
 
 option(WITH_POLLY "Build LLVM with Polly" ON)
-option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" OFF)
+option(LINK_POLLY_INTO_TOOLS "Static link Polly into tools" ON)
 
 # Define an option controlling whether we should build for 32-bit on 64-bit
 # platforms, where supported.
@@ -393,6 +393,16 @@ option (LLVM_ENABLE_SPHINX "Use Sphinx to generate llvm documentation." OFF)
 option (LLVM_BUILD_EXTERNAL_COMPILER_RT
   "Build compiler-rt as an external project." OFF)
 
+if(WITH_POLLY)
+  if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)
+    set(WITH_POLLY OFF)
+  endif()
+endif(WITH_POLLY)
+
+if (NOT WITH_POLLY)
+ set(LINK_POLLY_INTO_TOOLS OFF)
+endif (NOT WITH_POLLY)
+
 # You can configure which libraries from LLVM you want to include in the
 # shared library by setting LLVM_DYLIB_COMPONENTS to a semi-colon delimited
 # list of LLVM components. All component names handled by llvm-config are valid.
@@ -702,12 +712,6 @@ endforeach()
 
 add_subdirectory(projects)
 
-if(WITH_POLLY)
-  if(NOT EXISTS ${LLVM_MAIN_SRC_DIR}/tools/polly/CMakeLists.txt)
-    set(WITH_POLLY OFF)
-  endif()
-endif(WITH_POLLY)
-
 if( LLVM_INCLUDE_TOOLS )
   add_subdirectory(tools)
 endif()
index 8ca7bae..19178b3 100644 (file)
@@ -16,6 +16,10 @@ if(WITH_POLLY)
 else()
   set(LLVM_TOOL_POLLY_BUILD Off)
 endif()
+if(NOT LLVM_TOOL_POLL_BUILD)
+  MESSAGE(No polly)
+endif()
+
 
 if(NOT LLVM_BUILD_LLVM_DYLIB )
   set(LLVM_TOOL_LLVM_SHLIB_BUILD Off)