Introduce a separate file for CMake macros
authorTobias Grosser <grosser@fim.uni-passau.de>
Sun, 21 Oct 2012 15:51:49 +0000 (15:51 +0000)
committerTobias Grosser <grosser@fim.uni-passau.de>
Sun, 21 Oct 2012 15:51:49 +0000 (15:51 +0000)
Contributed by:  Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com>

llvm-svn: 166394

polly/CMakeLists.txt
polly/cmake/polly_macros.cmake [new file with mode: 0644]

index 2af5636..21923dd 100644 (file)
@@ -59,6 +59,14 @@ endif(NOT DEFINED LLVM_MAIN_SRC_DIR)
 set(POLLY_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 set(POLLY_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
 
+# Add path for custom modules
+set(CMAKE_MODULE_PATH
+  ${CMAKE_MODULE_PATH}
+  "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
+  )
+
+include("polly_macros")
+
 # Add appropriate flags for GCC
 if (CMAKE_COMPILER_IS_GNUCXX)
   # FIXME: Turn off exceptions, RTTI:
@@ -116,76 +124,6 @@ if (SCOPLIB_FOUND)
   INCLUDE_DIRECTORIES( ${SCOPLIB_INCLUDE_DIR} )
 endif(SCOPLIB_FOUND)
 
-macro(add_polly_library name)
-  set(srcs ${ARGN})
-  if(MSVC_IDE OR XCODE)
-    file( GLOB_RECURSE headers *.h *.td *.def)
-    set(srcs ${srcs} ${headers})
-    string( REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR})
-    list( GET split_path -1 dir)
-    file( GLOB_RECURSE headers 
-      ../../include/polly${dir}/*.h)
-    set(srcs ${srcs} ${headers})
-  endif(MSVC_IDE OR XCODE)
-  if (MODULE)
-    set(libkind MODULE)
-  elseif (SHARED_LIBRARY)
-    set(libkind SHARED)
-  else()
-    set(libkind)
-  endif()
-  add_library( ${name} ${libkind} ${srcs} )
-  if( LLVM_COMMON_DEPENDS )
-    add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
-  endif( LLVM_COMMON_DEPENDS )
-  if( LLVM_USED_LIBS )
-    foreach(lib ${LLVM_USED_LIBS})
-      target_link_libraries( ${name} ${lib} )
-    endforeach(lib)
-  endif( LLVM_USED_LIBS )
-
-  target_link_libraries( ${name} ${ISL_LIBRARY} ${GMP_LIBRARY})
-
-  if (CLOOG_FOUND)
-    target_link_libraries( ${name} ${CLOOG_LIBRARY})
-  endif(CLOOG_FOUND)
-  if (OPENSCOP_FOUND)
-    target_link_libraries( ${name} ${OPENSCOP_LIBRARY})
-  endif(OPENSCOP_FOUND)
-  if (SCOPLIB_FOUND)
-    target_link_libraries( ${name} ${SCOPLIB_LIBRARY})
-  endif(SCOPLIB_FOUND)
-
-  if( LLVM_LINK_COMPONENTS )
-    llvm_config(${name} ${LLVM_LINK_COMPONENTS})
-  endif( LLVM_LINK_COMPONENTS )
-  get_system_libs(llvm_system_libs)
-  if( llvm_system_libs )
-    target_link_libraries(${name} ${llvm_system_libs})
-  endif( llvm_system_libs )
-  
-  if(MSVC)
-    get_target_property(cflag ${name} COMPILE_FLAGS)
-    if(NOT cflag)
-      set(cflag "")
-    endif(NOT cflag)
-    set(cflag "${cflag} /Za")
-    set_target_properties(${name} PROPERTIES COMPILE_FLAGS ${cflag})
-  endif(MSVC)
-  install(TARGETS ${name}
-    LIBRARY DESTINATION lib
-    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-endmacro(add_polly_library)
-
-macro(add_polly_loadable_module name)
-  set(srcs ${ARGN})
-  add_polly_library(${name} ${srcs})
-  if (APPLE)
-    # Darwin-specific linker flags for loadable modules.
-    set_target_properties(${name} PROPERTIES
-      LINK_FLAGS "-Wl,-flat_namespace -Wl,-undefined -Wl,suppress")
-  endif()
-endmacro(add_polly_loadable_module)
 
 include_directories(
   ${CMAKE_CURRENT_SOURCE_DIR}/include
diff --git a/polly/cmake/polly_macros.cmake b/polly/cmake/polly_macros.cmake
new file mode 100644 (file)
index 0000000..399a716
--- /dev/null
@@ -0,0 +1,72 @@
+
+macro(add_polly_library name)
+  set(srcs ${ARGN})
+  if(MSVC_IDE OR XCODE)
+    file( GLOB_RECURSE headers *.h *.td *.def)
+    set(srcs ${srcs} ${headers})
+    string( REGEX MATCHALL "/[^/]+" split_path ${CMAKE_CURRENT_SOURCE_DIR})
+    list( GET split_path -1 dir)
+    file( GLOB_RECURSE headers
+      ../../include/polly${dir}/*.h)
+    set(srcs ${srcs} ${headers})
+  endif(MSVC_IDE OR XCODE)
+  if (MODULE)
+    set(libkind MODULE)
+  elseif (SHARED_LIBRARY)
+    set(libkind SHARED)
+  else()
+    set(libkind)
+  endif()
+  add_library( ${name} ${libkind} ${srcs} )
+  if( LLVM_COMMON_DEPENDS )
+    add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
+  endif( LLVM_COMMON_DEPENDS )
+  if( LLVM_USED_LIBS )
+    foreach(lib ${LLVM_USED_LIBS})
+      target_link_libraries( ${name} ${lib} )
+    endforeach(lib)
+  endif( LLVM_USED_LIBS )
+
+  target_link_libraries( ${name} ${ISL_LIBRARY} ${GMP_LIBRARY})
+
+  if (CLOOG_FOUND)
+    target_link_libraries( ${name} ${CLOOG_LIBRARY})
+  endif(CLOOG_FOUND)
+
+  if (OPENSCOP_FOUND)
+    target_link_libraries( ${name} ${OPENSCOP_LIBRARY})
+  endif(OPENSCOP_FOUND)
+  if (SCOPLIB_FOUND)
+    target_link_libraries( ${name} ${SCOPLIB_LIBRARY})
+  endif(SCOPLIB_FOUND)
+
+  if( LLVM_LINK_COMPONENTS )
+    llvm_config(${name} ${LLVM_LINK_COMPONENTS})
+  endif( LLVM_LINK_COMPONENTS )
+  get_system_libs(llvm_system_libs)
+  if( llvm_system_libs )
+    target_link_libraries(${name} ${llvm_system_libs})
+  endif( llvm_system_libs )
+
+  if(MSVC)
+    get_target_property(cflag ${name} COMPILE_FLAGS)
+    if(NOT cflag)
+      set(cflag "")
+    endif(NOT cflag)
+    set(cflag "${cflag} /Za")
+    set_target_properties(${name} PROPERTIES COMPILE_FLAGS ${cflag})
+  endif(MSVC)
+  install(TARGETS ${name}
+    LIBRARY DESTINATION lib
+    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+endmacro(add_polly_library)
+
+macro(add_polly_loadable_module name)
+  set(srcs ${ARGN})
+  add_polly_library(${name} ${srcs})
+  if (APPLE)
+    # Darwin-specific linker flags for loadable modules.
+    set_target_properties(${name} PROPERTIES
+      LINK_FLAGS "-Wl,-flat_namespace -Wl,-undefined -Wl,suppress")
+  endif()
+endmacro(add_polly_loadable_module)