Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/llvm/llvm-project.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2012-10-21 19:51:49 +0400
committerTobias Grosser <grosser@fim.uni-passau.de>2012-10-21 19:51:49 +0400
commitbc822eb25fc3da50982b892a09352dc2f38a5836 (patch)
tree801d29b13b53dc6000c4567b71702391ced3c4a2 /polly/cmake
parentbaa063bd038478afd0bfdf6be4b90aa55cc84971 (diff)
Introduce a separate file for CMake macros
Contributed by: Sameer Sahasrabuddhe <sameer.sahasrabuddhe@amd.com> llvm-svn: 166394
Diffstat (limited to 'polly/cmake')
-rw-r--r--polly/cmake/polly_macros.cmake72
1 files changed, 72 insertions, 0 deletions
diff --git a/polly/cmake/polly_macros.cmake b/polly/cmake/polly_macros.cmake
new file mode 100644
index 000000000000..399a7165f740
--- /dev/null
+++ b/polly/cmake/polly_macros.cmake
@@ -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)