diff --git a/qbs/modules/libclang/functions.js b/qbs/modules/libclang/functions.js index beca112787c..85334992600 100644 --- a/qbs/modules/libclang/functions.js +++ b/qbs/modules/libclang/functions.js @@ -89,6 +89,31 @@ function libraries(targetOS) return targetOS.contains("windows") ? ["libclang.lib", "advapi32.lib", "shell32.lib"] : ["clang"] } +function extraLibraries(llvmConfig, targetOS) +{ + var libs = [] + if (targetOS.contains("windows")) + libs.push("version"); + var dynamicList = readListOutput(llvmConfig, ["--libs"]) + .concat(readListOutput(llvmConfig, ["--system-libs"])); + return libs.concat(dynamicList.map(function(s) { + return s.startsWith("-l") ? s.slice(2) : s; + })); +} + +function formattingLibs(llvmConfig, targetOS) +{ + var fixedList = [ + "clangFormat", + "clangToolingCore", + "clangRewrite", + "clangLex", + "clangBasic", + ]; + + return fixedList.concat(extraLibraries(llvmConfig, targetOS)); +} + function toolingLibs(llvmConfig, targetOS) { var fixedList = [ @@ -108,13 +133,8 @@ function toolingLibs(llvmConfig, targetOS) "clangLex", "clangBasic", ]; - if (targetOS.contains("windows")) - fixedList.push("version"); - var dynamicList = readListOutput(llvmConfig, ["--libs"]) - .concat(readListOutput(llvmConfig, ["--system-libs"])); - return fixedList.concat(dynamicList.map(function(s) { - return s.startsWith("-l") ? s.slice(2) : s; - })); + + return fixedList.concat(extraLibraries(llvmConfig, targetOS)); } function toolingParameters(llvmConfig) diff --git a/qbs/modules/libclang/libclang.qbs b/qbs/modules/libclang/libclang.qbs index 435b8b786a2..1d695a2c8d5 100644 --- a/qbs/modules/libclang/libclang.qbs +++ b/qbs/modules/libclang/libclang.qbs @@ -22,6 +22,7 @@ Module { property stringList llvmToolingDefines property stringList llvmToolingIncludes property stringList llvmToolingCxxFlags + property stringList llvmFormattingLibs property string llvmBuildMode configure: { @@ -37,6 +38,7 @@ Module { llvmToolingDefines = toolingParams.defines; llvmToolingIncludes = toolingParams.includes; llvmToolingCxxFlags = toolingParams.cxxFlags; + llvmFormattingLibs = ClangFunctions.formattingLibs(llvmConfig, targetOS); found = llvmConfig && File.exists(llvmIncludeDir.concat("/clang-c/Index.h")); } } @@ -48,6 +50,7 @@ Module { property string llvmBinDir: clangProbe.llvmBinDir property stringList llvmLibs: clangProbe.llvmLibs property stringList llvmToolingLibs: clangProbe.llvmToolingLibs + property stringList llvmFormattingLibs: clangProbe.llvmFormattingLibs property string llvmBuildMode: clangProbe.llvmBuildMode property bool llvmBuildModeMatches: qbs.buildVariant === llvmBuildMode.toLowerCase() property stringList llvmToolingDefines: clangProbe.llvmToolingDefines diff --git a/src/plugins/clangformat/clangformat.qbs b/src/plugins/clangformat/clangformat.qbs index 3d4c0f8b041..9b575fc73ca 100644 --- a/src/plugins/clangformat/clangformat.qbs +++ b/src/plugins/clangformat/clangformat.qbs @@ -7,6 +7,7 @@ QtcPlugin { Depends { name: "Core" } Depends { name: "TextEditor" } Depends { name: "CppTools" } + Depends { name: "ProjectExplorer" } Depends { name: "ExtensionSystem" } Depends { name: "Utils" } @@ -21,12 +22,13 @@ QtcPlugin { cpp.defines: base.concat("CLANGPCHMANAGER_LIB") cpp.includePaths: base.concat(libclang.llvmIncludeDir) cpp.libraryPaths: base.concat(libclang.llvmLibDir) - cpp.dynamicLibraries: base.concat(libclang.llvmLibs) + cpp.dynamicLibraries: base.concat(libclang.llvmFormattingLibs) cpp.rpaths: base.concat(libclang.llvmLibDir) files: [ "clangformatconfigwidget.cpp", "clangformatconfigwidget.h", + "clangformatconfigwidget.ui", "clangformatindenter.cpp", "clangformatindenter.h", "clangformatplugin.cpp",