diff --git a/polly/CMakeLists.txt b/polly/CMakeLists.txt index 4ffb5e8c129f..e7bdda43507c 100644 --- a/polly/CMakeLists.txt +++ b/polly/CMakeLists.txt @@ -20,6 +20,11 @@ if (NOT DEFINED LLVM_MAIN_SRC_DIR) # Add the llvm header path. include_directories(${LLVM_INSTALL_ROOT}/include/) + # Get LLVM's own libraries. + execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --libs + OUTPUT_VARIABLE LLVM_LIBS + OUTPUT_STRIP_TRAILING_WHITESPACE) + # Get the system librarys that will link into LLVM. execute_process(COMMAND "${LLVM_INSTALL_ROOT}/bin/llvm-config" --system-libs OUTPUT_VARIABLE LLVM_SYSTEM_LIBS diff --git a/polly/unittests/CMakeLists.txt b/polly/unittests/CMakeLists.txt index 904a8f845ec7..1dfc3097cc86 100644 --- a/polly/unittests/CMakeLists.txt +++ b/polly/unittests/CMakeLists.txt @@ -7,27 +7,27 @@ set_target_properties(PollyUnitTests PROPERTIES FOLDER "Polly") function(add_polly_unittest test_name) if(COMMAND add_unittest) add_unittest(PollyUnitTests ${test_name} ${ARGN}) + target_link_libraries(${test_name} Polly) + + # The Polly target does not depend on its required libraries, except: + # - BUILD_SHARED_LIBS=ON + # in which case calling target_link_libraries again is redundant. + # - LLVM_LINK_LLVM_DYLIB=ON + # in which case it depends on libLLVM.so, so no additional libs needed. + # We are also not allowed to link against the plain LLVM* libraries, + # which would result in multiple instances of these to be loaded. + if (NOT LLVM_LINK_LLVM_DYLIB) + target_link_libraries(${test_name} LLVMCore LLVMSupport LLVMDemangle LLVMipo) + endif () else() add_executable(${test_name} EXCLUDE_FROM_ALL ${ARGN}) set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) - target_link_libraries(${test_name} gtest_main gtest) + target_link_libraries(${test_name} gtest_main gtest Polly ${LLVM_LIBS}) add_dependencies(PollyUnitTests ${test_name}) set_property(TARGET ${test_name} PROPERTY FOLDER "Polly") endif() - target_link_libraries(${test_name} Polly) - - # The Polly target does not depend on its required libraries, except: - # - BUILD_SHARED_LIBS=ON - # in which case calling target_link_libraries again is redundant. - # - LLVM_LINK_LLVM_DYLIB=ON - # in which case it depends on libLLVM.so, so no additional libs needed. - # We are also not allowed to link against the plain LLVM* libraries, - # which would result in multiple instances of these to be loaded. - if (NOT LLVM_LINK_LLVM_DYLIB) - target_link_libraries(${test_name} LLVMCore LLVMSupport LLVMDemangle LLVMipo) - endif () endfunction() add_subdirectory(Isl)