From a940c73d81bf137c7839c6a641ae4291f39fc5cb Mon Sep 17 00:00:00 2001 From: Sergey Shambir <sergey.shambir.auto@gmail.com> Date: Sat, 15 Feb 2014 20:50:21 +0400 Subject: [PATCH] ClangCodeModel: fixed build on windows for newer LLVM installs Latest LLVM release has Windows installer which installs it to Program Files. Change-Id: I55d7e43d1333f3a7280020e0ebcb1e095acca9d0 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> --- .../clangcodemodel/clang_installation.pri | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/plugins/clangcodemodel/clang_installation.pri b/src/plugins/clangcodemodel/clang_installation.pri index 043e307d14..d1235f8337 100644 --- a/src/plugins/clangcodemodel/clang_installation.pri +++ b/src/plugins/clangcodemodel/clang_installation.pri @@ -36,22 +36,27 @@ defineReplace(findLLVMConfig) { return(llvm-config) } -win32 { - LLVM_INCLUDEPATH = $$LLVM_INSTALL_DIR/include - exists ($${LLVM_INSTALL_DIR}/lib/clang.*) { - CLANG_LIB = clang - } else { - exists ($${LLVM_INSTALL_DIR}/lib/libclang.*) { - CLANG_LIB = libclang - } else { - error("Cannot find Clang shared library!") +defineReplace(findClangOnWindows) { + FILE_EXTS = a dll + win32-msvc*: FILE_EXTS = lib dll + for (suffix, $$list(lib bin)) { + for (libname, $$list(clang libclang)) { + for (ext, FILE_EXTS) { + exists("$${LLVM_INSTALL_DIR}/$${suffix}/$${libname}.$${ext}") + return($${LLVM_INSTALL_DIR}/$${suffix}/) + } } } - LLVM_LIBDIR = $$LLVM_INSTALL_DIR/lib - LLVM_LIBS = \ - -L$$LLVM_INSTALL_DIR/bin \ - -L$$LLVM_LIBDIR \ - -l$${CLANG_LIB} + error("Cannot find clang shared library at $${LLVM_INSTALL_DIR}") +} + +win32 { + LLVM_INCLUDEPATH = "$$LLVM_INSTALL_DIR/include" + CLANG_LIB_PATH = $$findClangOnWindows() + CLANG_LIB = clang + !exists("$${CLANG_LIB_PATH}/clang.*"):CLANG_LIB = libclang + + LLVM_LIBS = -L"$${CLANG_LIB_PATH}" -l$${CLANG_LIB} LLVM_LIBS += -ladvapi32 -lshell32 LLVM_VERSION = 3.4 } -- GitLab