diff options
author | Tobias Grosser <grosser@fim.uni-passau.de> | 2012-10-21 19:51:49 +0400 |
---|---|---|
committer | Tobias Grosser <grosser@fim.uni-passau.de> | 2012-10-21 19:51:49 +0400 |
commit | bc822eb25fc3da50982b892a09352dc2f38a5836 (patch) | |
tree | 801d29b13b53dc6000c4567b71702391ced3c4a2 /polly/cmake | |
parent | baa063bd038478afd0bfdf6be4b90aa55cc84971 (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.cmake | 72 |
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) |