From 110ec72cff8a19c7125e6a69c691f1f67f755982 Mon Sep 17 00:00:00 2001 From: comex Date: Sun, 9 Aug 2015 02:55:36 -0400 Subject: [PATCH] Merge pull request #2816 from comex/huh-where-did-this-go Make the LLVM detect script verify that the dynamic library actually exists. --- CMakeTests/FindLLVM.cmake | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/CMakeTests/FindLLVM.cmake b/CMakeTests/FindLLVM.cmake index 7fe664f6ef..cfcfaedb92 100644 --- a/CMakeTests/FindLLVM.cmake +++ b/CMakeTests/FindLLVM.cmake @@ -1,6 +1,9 @@ # This file only exists because LLVM's cmake files are broken. # This affects both LLVM 3.4 and 3.5. # Hopefully when they fix their cmake system we don't need this garbage. + +include(CheckLibraryExists) + list(APPEND LLVM_CONFIG_EXECUTABLES "llvm-config") list(APPEND LLVM_CONFIG_EXECUTABLES "llvm-config-3.5") list(APPEND LLVM_CONFIG_EXECUTABLES "llvm-config-3.4") @@ -11,13 +14,16 @@ foreach(LLVM_CONFIG_NAME ${LLVM_CONFIG_EXECUTABLES}) execute_process(COMMAND ${LLVM_CONFIG_EXE} --version OUTPUT_VARIABLE LLVM_PACKAGE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE ) if (${LLVM_PACKAGE_VERSION} VERSION_GREATER "3.3") - set(LLVM_FOUND 1) execute_process(COMMAND ${LLVM_CONFIG_EXE} --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process(COMMAND ${LLVM_CONFIG_EXE} --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ) - set(LLVM_LIBRARIES "${LLVM_LDFLAGS} -lLLVM-${LLVM_PACKAGE_VERSION}") - break() + check_library_exists(LLVM-${LLVM_PACKAGE_VERSION} LLVMVerifyFunction "${LLVM_LDFLAGS}" HAVE_DYNAMIC_LLVM_${LLVM_PACKAGE_VERSION}) + if (HAVE_DYNAMIC_LLVM_${LLVM_PACKAGE_VERSION}) + set(LLVM_LIBRARIES "${LLVM_LDFLAGS} -lLLVM-${LLVM_PACKAGE_VERSION}") + set(LLVM_FOUND 1) + break() + endif() endif() endif() endforeach()