From c744638471044e388fc16fa102107c64e9b5aa92 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 31 Jan 2018 19:46:36 +0000 Subject: [PATCH] Check for LLVM 4.0 specifically - don't compile against 5.0 --- renderdoc/CMakeLists.txt | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt index 664ce8920..203ffd4ad 100644 --- a/renderdoc/CMakeLists.txt +++ b/renderdoc/CMakeLists.txt @@ -357,20 +357,27 @@ endif() find_package(LLVM CONFIG) +set(HAVE_INTERCEPTOR_LIB OFF) + # on Android, pull in interceptor-lib only if we have LLVM available if(ANDROID AND LLVM_FOUND) - message(STATUS "LLVM found - android hooking using interceptor-lib.") - add_subdirectory(3rdparty/interceptor-lib) - list(APPEND renderdoc_objects $) - link_directories(${LLVM_DIR}/../..) - set(RDOC_DEFINITIONS ${RDOC_DEFINITIONS} PRIVATE -DRENDERDOC_HAVE_INTERCEPTOR_LIB) + if(${LLVM_PACKAGE_VERSION} VERSION_LESS "4.0.0" OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER "4.0.1") + message(STATUS "LLVM ${LLVM_PACKAGE_VERSION} found - we require precisely 4.0.") + else() + message(STATUS "LLVM ${LLVM_PACKAGE_VERSION} found - enabling android hooking using interceptor-lib.") + set(HAVE_INTERCEPTOR_LIB ON) + add_subdirectory(3rdparty/interceptor-lib) + list(APPEND renderdoc_objects $) + link_directories(${LLVM_DIR}/../..) + set(RDOC_DEFINITIONS ${RDOC_DEFINITIONS} PRIVATE -DRENDERDOC_HAVE_INTERCEPTOR_LIB) - foreach(lib ${interceptor_libs}) - list(APPEND RDOC_LIBRARIES PRIVATE -l${lib}) - endforeach() + foreach(lib ${interceptor_libs}) + list(APPEND RDOC_LIBRARIES PRIVATE -l${lib}) + endforeach() + endif() endif() -if(ANDROID AND NOT LLVM_FOUND) +if(ANDROID AND NOT HAVE_INTERCEPTOR_LIB) message(STATUS "LLVM not found - android hooking will use sometimes less reliable PLT-interception method.") endif()