From c229c667cf4d67bc8a84b58eb6234f4bbfe5c9a6 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 17 Sep 2020 11:54:19 +0200 Subject: [PATCH] Unit test: Support qbs build with googletest submodule This is necessary to be able to build on Windows. Also add an include to fix building with clang 12. Change-Id: I9278a2c942a5e50c89c3aac19492f3a1ef3177b1 Reviewed-by: Christian Stenger --- tests/unit/unit.qbs | 1 + tests/unit/unittest/gtest-clang-printing.cpp | 1 + tests/unit/unittest/unittest.qbs | 1649 +++++++++--------- 3 files changed, 850 insertions(+), 801 deletions(-) diff --git a/tests/unit/unit.qbs b/tests/unit/unit.qbs index cf73b270363..cd81873834c 100644 --- a/tests/unit/unit.qbs +++ b/tests/unit/unit.qbs @@ -1,5 +1,6 @@ Project { name: "C++ unit tests" + condition: project.withAutotests references: [ "echoserver/echoserver.qbs", "unittest/unittest.qbs", diff --git a/tests/unit/unittest/gtest-clang-printing.cpp b/tests/unit/unittest/gtest-clang-printing.cpp index 217114ab9ed..bd351371915 100644 --- a/tests/unit/unittest/gtest-clang-printing.cpp +++ b/tests/unit/unittest/gtest-clang-printing.cpp @@ -27,6 +27,7 @@ #include "gtest-std-printing.h" #ifdef CLANG_UNIT_TESTS +#include #include #include diff --git a/tests/unit/unittest/unittest.qbs b/tests/unit/unittest/unittest.qbs index cf2f475540b..a25c2ee4f44 100644 --- a/tests/unit/unittest/unittest.qbs +++ b/tests/unit/unittest/unittest.qbs @@ -1,833 +1,880 @@ import qbs.File import qbs.FileInfo -QtcProduct { - condition: gtest.present && gmock.present - type: ["application", "autotest", "json_copy"] - consoleApplication: true - destinationDirectory: FileInfo.joinPaths(project.buildDirectory, - FileInfo.relativePath(project.ide_source_tree, sourceDirectory)) - install: false +Project { + name: "Unit test & helper products" - Depends { name: "echoserver" } - Depends { name: "pluginjson" } - Depends { name: "libclang"; required: false } - Depends { name: "clang_defines" } + Product { + name: "qtc_gtest_gmock" - Depends { name: "QmlDesigner" } + Export { + property bool useExternalLibs: preferExternalLibs && externalLibsPresent + property bool useRepo: !useExternalLibs && hasRepo + property bool preferExternalLibs: true + property bool externalLibsPresent: gtest.present && gmock.present + property string repoDir: FileInfo.joinPaths(path, "3rdparty", "googletest") + property string gtestDir: FileInfo.joinPaths(repoDir, "googletest") + property string gmockDir: FileInfo.joinPaths(repoDir, "googlemock") + property bool hasRepo: File.exists(gtestDir) - Depends { name: "sqlite_sources" } - Depends { name: "Core" } - Depends { name: "CPlusPlus" } - Depends { name: "yaml-cpp" } + Depends { name: "pkgconfig"; condition: preferExternalLibs; required: false } + Depends { name: "gtest"; condition: preferExternalLibs; required: false } + Depends { name: "gmock"; condition: preferExternalLibs; required: false } - Depends { name: "Qt"; submodules: ["network", "widgets", "testlib"] } + Depends { name: "cpp" } + Group { + name: "Files from repository" + condition: qtc_gtest_gmock.useRepo + cpp.includePaths: [ + qtc_gtest_gmock.gtestDir, + qtc_gtest_gmock.gmockDir, + FileInfo.joinPaths(qtc_gtest_gmock.gtestDir, "include"), + FileInfo.joinPaths(qtc_gtest_gmock.gmockDir, "include"), + ] + files: [ + FileInfo.joinPaths(qtc_gtest_gmock.gtestDir, "src", "gtest-all.cc"), + FileInfo.joinPaths(qtc_gtest_gmock.gmockDir, "src", "gmock-all.cc"), + ] + } - Depends { name: "pkgconfig"; required: false } - Depends { name: "benchmark"; required: false } - Depends { name: "gtest"; required: false } - Depends { name: "gmock"; required: false } - - pluginjson.useVcsData: false - sqlite_sources.buildSharedLib: false - - cpp.defines: { - var defines = [ - "QT_NO_CAST_TO_ASCII", - "QT_RESTRICTED_CAST_FROM_ASCII", - "QT_USE_FAST_OPERATOR_PLUS", - "QT_USE_FAST_CONCATENATION", - "CLANG_UNIT_TESTS", - "UNIT_TESTS", - "DONT_CHECK_MESSAGE_COUNTER", - 'QTC_RESOURCE_DIR="' + path + "/../../../share/qtcreator" + '"', - 'TESTDATA_DIR="' + FileInfo.joinPaths(sourceDirectory, "data") + '"', - 'ECHOSERVER="' + FileInfo.joinPaths(project.buildDirectory, "tests", "unit", - "echoserver", "echo") + '"', - 'RELATIVE_DATA_PATH="' + FileInfo.relativePath(destinationDirectory, - FileInfo.joinPaths(project.sourceDirectory, "share", "qtcreator")) + '"', - 'CPPTOOLS_JSON="' + FileInfo.joinPaths(destinationDirectory, "CppTools.json") + '"', - ]; - if (libclang.present && libclang.toolingEnabled) - defines = defines.concat(libclang.llvmToolingDefines); - return defines; - } - cpp.cxxFlags: { - var flags = []; - if (qbs.toolchain.contains("msvc")) - flags.push("-w34100", "/bigobj", "/wd4267", "/wd4141", "/wd4146"); - if (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")) - flags.push("-Wno-noexcept-type"); - if (qbs.toolchain.contains("clang")) { - flags.push("-Wno-inconsistent-missing-override", "-Wno-self-move", - "-Wno-self-assign-overloaded"); - flags.push("-Wno-unused-command-line-argument"); // gtest puts -lpthread on compiler command line - if (!qbs.hostOS.contains("darwin") - && Utilities.versionCompare(cpp.compilerVersion, "10") >= 0) { - flags.push("-Wno-deprecated-copy", "-Wno-constant-logical-operand"); + Properties { + condition: useRepo + cpp.includePaths: [ + FileInfo.joinPaths(gtestDir, "include"), + FileInfo.joinPaths(gmockDir, "include"), + ] } } - if (qbs.toolchain.contains("gcc")) - flags.push("-Wno-unused-parameter"); - if (libclang.present && libclang.toolingEnabled) - flags = flags.concat(libclang.llvmToolingCxxFlags); - return flags; } - cpp.cxxLanguageVersion: "c++17" - cpp.dynamicLibraries: { - var libs = []; - if (libclang.present) { - libs = libs.concat(libclang.llvmLibs); - if (libclang.toolingEnabled) - libs = libs.concat(libclang.llvmToolingLibs); - if (libclang.llvmFormattingLibs.length - && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches)) { - libs = libs.concat(libclang.llvmFormattingLibs); + + QtcProduct { + name: "Unit test" + condition: qtc_gtest_gmock.hasRepo || qtc_gtest_gmock.externalLibsPresent + type: ["application", "autotest", "json_copy"] + consoleApplication: true + destinationDirectory: FileInfo.joinPaths(project.buildDirectory, + FileInfo.relativePath(project.ide_source_tree, sourceDirectory)) + install: false + + Depends { name: "echoserver" } + Depends { name: "pluginjson" } + Depends { name: "libclang"; required: false } + Depends { name: "clang_defines" } + + Depends { name: "QmlDesigner" } + + Depends { name: "sqlite_sources" } + Depends { name: "Core" } + Depends { name: "CPlusPlus" } + Depends { name: "yaml-cpp" } + + Depends { name: "Qt"; submodules: ["network", "widgets", "testlib"] } + + Depends { name: "pkgconfig"; required: false } + Depends { name: "benchmark"; required: false } + + Depends { name: "qtc_gtest_gmock" } + + pluginjson.useVcsData: false + sqlite_sources.buildSharedLib: false + + cpp.defines: { + var defines = [ + "QT_NO_CAST_TO_ASCII", + "QT_RESTRICTED_CAST_FROM_ASCII", + "QT_USE_FAST_OPERATOR_PLUS", + "QT_USE_FAST_CONCATENATION", + "CLANG_UNIT_TESTS", + "CLANGPCHMANAGER_STATIC_LIB", + "CLANGSUPPORT_BUILD_STATIC_LIB", + "CLANGTOOLS_STATIC_LIBRARY", + "CPPTOOLS_STATIC_LIBRARY", + "DEBUGGER_STATIC_LIBRARY", + "PROJECTEXPLORER_STATIC_LIBRARY", + "UNIT_TESTS", + "DONT_CHECK_MESSAGE_COUNTER", + 'QTC_RESOURCE_DIR="' + path + "/../../../share/qtcreator" + '"', + 'TESTDATA_DIR="' + FileInfo.joinPaths(sourceDirectory, "data") + '"', + 'ECHOSERVER="' + FileInfo.joinPaths(project.buildDirectory, "tests", "unit", + "echoserver", "echo") + '"', + 'RELATIVE_DATA_PATH="' + FileInfo.relativePath(destinationDirectory, + FileInfo.joinPaths(project.sourceDirectory, "share", "qtcreator")) + '"', + 'CPPTOOLS_JSON="' + FileInfo.joinPaths(destinationDirectory, "CppTools.json") + '"', + ]; + if (libclang.present && libclang.toolingEnabled) + defines = defines.concat(libclang.llvmToolingDefines); + return defines; + } + cpp.cxxFlags: { + var flags = []; + if (qbs.toolchain.contains("msvc")) + flags.push("-w34100", "/bigobj", "/wd4267", "/wd4141", "/wd4146"); + if (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang")) + flags.push("-Wno-noexcept-type"); + if (qbs.toolchain.contains("clang")) { + flags.push("-Wno-inconsistent-missing-override", "-Wno-self-move", + "-Wno-self-assign-overloaded"); + flags.push("-Wno-unused-command-line-argument"); // gtest puts -lpthread on compiler command line + if (!qbs.hostOS.contains("darwin") + && Utilities.versionCompare(cpp.compilerVersion, "10") >= 0) { + flags.push("-Wno-deprecated-copy", "-Wno-constant-logical-operand"); + } } + if (qbs.toolchain.contains("gcc")) + flags.push("-Wno-unused-parameter"); + if (libclang.present && libclang.toolingEnabled) + flags = flags.concat(libclang.llvmToolingCxxFlags); + return flags; } - return libs; - } - cpp.includePaths: { - var paths = [ - ".", - "../mockup", - "../../../src/libs", - "../../../src/libs/3rdparty", - "../../../src/libs/clangsupport", - "../../../src/plugins", - "../../../src/plugins/clangcodemodel", - "../../../src/plugins/clangpchmanager", - "../../../src/plugins/clangrefactoring", - "../../../src/tools/clangbackend/source", - "../../../src/tools/clangpchmanagerbackend/source", - "../../../src/tools/clangrefactoringbackend/source", - "../../../share/qtcreator/qml/qmlpuppet/types", - ]; - if (libclang.present) { - paths.push(libclang.llvmIncludeDir); - if (libclang.toolingEnabled) - paths = paths.concat(libclang.llvmToolingIncludes); + cpp.cxxLanguageVersion: "c++17" + cpp.dynamicLibraries: { + var libs = []; + if (libclang.present) { + libs = libs.concat(libclang.llvmLibs); + if (libclang.toolingEnabled) + libs = libs.concat(libclang.llvmToolingLibs); + if (libclang.llvmFormattingLibs.length + && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches)) { + libs = libs.concat(libclang.llvmFormattingLibs); + } + } + return libs; + } + cpp.includePaths: { + var paths = [ + ".", + "../mockup", + "../../../src/libs", + "../../../src/libs/3rdparty", + "../../../src/libs/clangsupport", + "../../../src/plugins", + "../../../src/plugins/clangcodemodel", + "../../../src/plugins/clangpchmanager", + "../../../src/plugins/clangrefactoring", + "../../../src/tools/clangbackend/source", + "../../../src/tools/clangpchmanagerbackend/source", + "../../../src/tools/clangrefactoringbackend/source", + "../../../share/qtcreator/qml/qmlpuppet/types", + ]; + if (libclang.present) { + paths.push(libclang.llvmIncludeDir); + if (libclang.toolingEnabled) + paths = paths.concat(libclang.llvmToolingIncludes); + } + return paths; + } + cpp.libraryPaths: { + var paths = []; + if (libclang.present) + paths.push(libclang.llvmLibDir); + return paths; + } + cpp.rpaths: { + var paths = [ + FileInfo.joinPaths(project.buildDirectory, qtc.ide_library_path), + FileInfo.joinPaths(project.buildDirectory, qtc.ide_plugin_path) + ]; + if (libclang.present) + paths.push(libclang.llvmLibDir); + return paths; } - return paths; - } - cpp.libraryPaths: { - var paths = []; - if (libclang.present) - paths.push(libclang.llvmLibDir); - return paths; - } - cpp.rpaths: { - var paths = [ - FileInfo.joinPaths(project.buildDirectory, qtc.ide_library_path), - FileInfo.joinPaths(project.buildDirectory, qtc.ide_plugin_path) - ]; - if (libclang.present) - paths.push(libclang.llvmLibDir); - return paths; - } - files: [ - "builddependenciesprovider-test.cpp", - "builddependenciesstorage-test.cpp", - "clangindexingsettingsmanager-test.cpp", - "clangpathwatcher-test.cpp", - "clangqueryexamplehighlightmarker-test.cpp", - "clangqueryhighlightmarker-test.cpp", - "clientserverinprocess-test.cpp", - "clientserveroutsideprocess-test.cpp", - "commandlinebuilder-test.cpp", - "compare-operators.h", - "compilationdatabaseutils-test.cpp", - "compileroptionsbuilder-test.cpp", - "conditionally-disabled-tests.h", - "cppprojectfilecategorizer-test.cpp", - "cppprojectinfogenerator-test.cpp", - "cppprojectpartchooser-test.cpp", - "createtablesqlstatementbuilder-test.cpp", - "directorypathcompressor-test.cpp", - "dummyclangipcclient.h", - "dynamicastmatcherdiagnosticcontainer-matcher.h", - "eventspy.cpp", - "eventspy.h", - "fakeprocess.cpp", - "fakeprocess.h", - "filepath-test.cpp", - "filepathcache-test.cpp", - "filepathstorage-test.cpp", - "filepathstoragesqlitestatementfactory-test.cpp", - "filepathview-test.cpp", - "filestatuscache-test.cpp", - "filesystem-utilities.h", - "generatedfiles-test.cpp", - "google-using-declarations.h", - "googletest.h", - "gtest-creator-printing.cpp", - "gtest-creator-printing.h", - "gtest-llvm-printing.h", - "gtest-qt-printing.cpp", - "gtest-qt-printing.h", - "headerpathfilter-test.cpp", - "lineprefixer-test.cpp", - "locatorfilter-test.cpp", - "matchingtext-test.cpp", - "mimedatabase-utilities.cpp", - "mimedatabase-utilities.h", - "mockbuilddependenciesprovider.h", - "mockbuilddependenciesstorage.h", - "mockbuilddependencygenerator.h", - "mockclangcodemodelclient.h", - "mockclangcodemodelserver.h", - "mockclangpathwatcher.h", - "mockclangpathwatchernotifier.h", - "mockcppmodelmanager.h", - "mockeditormanager.h", - "mockfilepathcaching.h", - "mockfilepathstorage.h", - "mockfilesystem.h", - "mockfutureinterface.h", - "mockgeneratedfiles.h", - "mockmodifiedtimechecker.h", - "mockmutex.h", - "mockpchcreator.h", - "mockpchmanagerclient.h", - "mockpchmanagernotifier.h", - "mockpchmanagerserver.h", - "mockpchtaskgenerator.h", - "mockpchtaskqueue.h", - "mockpchtasksmerger.h", - "mockprecompiledheaderstorage.h", - "mockprocessor.h", - "mockprocessormanager.h", - "mockprogressmanager.h", - "mockprojectpartprovider.h", - "mockprojectpartqueue.h", - "mockprojectpartsmanager.h", - "mockprojectpartsstorage.h", - "mockqfilesystemwatcher.h", - "mockqueue.h", - "mocksearch.h", - "mocksearchhandle.h", - "mocksearchresult.h", - "mocksqlitedatabase.h", - "mocksqlitereadstatement.cpp", - "mocksqlitereadstatement.h", - "mocksqlitestatement.h", - "mocksqlitetransactionbackend.h", - "mocksqlitewritestatement.h", - "mocksymbolindexertaskqueue.h", - "mocksymbolindexing.h", - "mocksymbolquery.h", - "mocksymbolscollector.h", - "mocksymbolstorage.h", - "mocksyntaxhighligher.h", - "mocktaskscheduler.h", - "mocktimer.cpp", - "mocktimer.h", - "modifiedtimechecker-test.cpp", - "nativefilepath-test.cpp", - "nativefilepathview-test.cpp", - "pchmanagerclient-test.cpp", - "pchmanagerclientserverinprocess-test.cpp", - "pchmanagerserver-test.cpp", - "pchtaskgenerator-test.cpp", - "pchtaskqueue-test.cpp", - "pchtasksmerger-test.cpp", - "precompiledheaderstorage-test.cpp", - "preprocessormacrocollector-test.cpp", - "processcreator-test.cpp", - "processevents-utilities.cpp", - "processevents-utilities.h", - "processormanager-test.cpp", - "progresscounter-test.cpp", - "projectpartartefact-test.cpp", - "projectpartsmanager-test.cpp", - "projectpartsstorage-test.cpp", - "projectupdater-test.cpp", - "readandwritemessageblock-test.cpp", - "refactoringdatabaseinitializer-test.cpp", - "refactoringprojectupdater-test.cpp", - "rundocumentparse-utility.h", - "sizedarray-test.cpp", - "smallstring-test.cpp", - "sourcerangecontainer-matcher.h", - "sourcerangefilter-test.cpp", - "sourcesmanager-test.cpp", - "spydummy.cpp", - "spydummy.h", - "sqlitecolumn-test.cpp", - "sqlitedatabase-test.cpp", - "sqlitedatabasebackend-test.cpp", - "sqliteindex-test.cpp", - "sqlitestatement-test.cpp", - "sqlitetable-test.cpp", - "sqliteteststatement.h", - "sqlitetransaction-test.cpp", - "sqlitevalue-test.cpp", - "sqlstatementbuilder-test.cpp", - "stringcache-test.cpp", - "symbolindexer-test.cpp", - "symbolindexertaskqueue-test.cpp", - "symbolquery-test.cpp", - "symbolsfindfilter-test.cpp", - "symbolstorage-test.cpp", - "task.cpp", - "taskscheduler-test.cpp", - "testenvironment.h", - "toolchainargumentscache-test.cpp", - "unittest-utility-functions.h", - "unittests-main.cpp", - "usedmacrofilter-test.cpp", - "utf8-test.cpp", - ] - - Group { - name: "libclang tests" - condition: libclang.present files: [ - "activationsequencecontextprocessor-test.cpp", - "activationsequenceprocessor-test.cpp", - "chunksreportedmonitor.cpp", - "chunksreportedmonitor.h", - "clangasyncjob-base.cpp", - "clangasyncjob-base.h", - "clangcodecompleteresults-test.cpp", - "clangcodemodelserver-test.cpp", - "clangcompareoperators.h", - "clangcompletecodejob-test.cpp", - "clangcompletioncontextanalyzer-test.cpp", - "clangdiagnosticfilter-test.cpp", - "clangdocument-test.cpp", - "clangdocumentprocessor-test.cpp", - "clangdocumentprocessors-test.cpp", - "clangdocuments-test.cpp", - "clangfixitoperation-test.cpp", - "clangfollowsymbol-test.cpp", - "clangisdiagnosticrelatedtolocation-test.cpp", - "clangjobqueue-test.cpp", - "clangjobs-test.cpp", - "clangparsesupportivetranslationunitjob-test.cpp", - "clangrequestannotationsjob-test.cpp", - "clangrequestreferencesjob-test.cpp", - "clangresumedocumentjob-test.cpp", - "clangstring-test.cpp", - "clangsupportivetranslationunitinitializer-test.cpp", - "clangsuspenddocumentjob-test.cpp", - "clangtooltipinfo-test.cpp", - "clangtranslationunit-test.cpp", - "clangtranslationunits-test.cpp", - "clangupdateannotationsjob-test.cpp", - "codecompleter-test.cpp", - "codecompletionsextractor-test.cpp", - "completionchunkstotextconverter-test.cpp", - "cursor-test.cpp", - "diagnostic-test.cpp", - "diagnosticcontainer-matcher.h", - "diagnosticset-test.cpp", - "fixit-test.cpp", - "gtest-clang-printing.cpp", - "gtest-clang-printing.h", - "highlightingresultreporter-test.cpp", - "readexporteddiagnostics-test.cpp", - "senddocumenttracker-test.cpp", - "skippedsourceranges-test.cpp", - "sourcelocation-test.cpp", - "sourcerange-test.cpp", - "token-test.cpp", - "tokenprocessor-test.cpp", - "translationunitupdater-test.cpp", - "unsavedfile-test.cpp", - "unsavedfiles-test.cpp", - "utf8positionfromlinecolumn-test.cpp", - ] - } - - Group { - name: "clang tooling tests" - condition: libclang.present && libclang.toolingEnabled - files: [ - "builddependencycollector-test.cpp", - "clangdocumentsuspenderresumer-test.cpp", - "clangquery-test.cpp", - "clangquerygatherer-test.cpp", - "clangqueryprojectfindfilter-test.cpp", - "clangreferencescollector-test.cpp", - "gtest-llvm-printing.cpp", - "mockrefactoringclient.h", - "mockrefactoringserver.h", - "pchcreator-test.cpp", - "refactoringclient-test.cpp", - "refactoringclientserverinprocess-test.cpp", - "refactoringcompilationdatabase-test.cpp", - "refactoringengine-test.cpp", - "refactoringserver-test.cpp", - "sourcerangeextractor-test.cpp", - "symbolindexing-test.cpp", - "symbolscollector-test.cpp", - "testclangtool.cpp", - "testclangtool.h", - "usedmacrocollector-test.cpp", - ] - } - - Group { - name: "ClangFormat tests" - condition: libclang.present - && libclang.llvmFormattingLibs.length - && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches) - files: "clangformat-test.cpp" - } - - Group { - name: "benchmark test" - condition: benchmark.present - files: "smallstring-benchmark.cpp" - } - - Group { - name: "data" - files: [ - "data/*", - "data/include/*", - ] - fileTags: [] - } - - Group { - name: "json.in file" - files: "../../../src/plugins/cpptools/CppTools.json.in" - fileTags: "pluginJsonIn" - } - - Group { - name: "sources from pchmanager" - prefix: "../../../src/plugins/clangpchmanager/" - cpp.defines: outer.concat("CLANGPCHMANAGER_STATIC_LIB") - files: [ - "clangindexingprojectsettings.cpp", - "clangindexingprojectsettings.h", - "clangindexingsettingsmanager.cpp", - "clangindexingsettingsmanager.h", - "clangpchmanager_global.h", - "pchmanagerclient.cpp", - "pchmanagerclient.h", - "pchmanagerconnectionclient.cpp", - "pchmanagerconnectionclient.h", - "pchmanagernotifierinterface.cpp", - "pchmanagernotifierinterface.h", - "pchmanagerprojectupdater.cpp", - "pchmanagerprojectupdater.h", - "preprocessormacrocollector.cpp", - "preprocessormacrocollector.h", - "progressmanager.h", - "progressmanagerinterface.h", - "projectupdater.cpp", - "projectupdater.h", - ] - } - - Group { - name: "sources from pchmanager backend" - prefix: "../../../src/tools/clangpchmanagerbackend/source/" - files: [ - "builddependenciesprovider.cpp", - "builddependenciesprovider.h", - "builddependenciesproviderinterface.h", - "builddependenciesstorage.h", - "builddependenciesstorageinterface.h", - "builddependency.h", - "builddependencygeneratorinterface.h", - "clangpchmanagerbackend_global.h", - "generatepchactionfactory.h", - "pchcreatorinterface.h", - "pchmanagerserver.cpp", - "pchmanagerserver.h", - "pchnotcreatederror.h", - "pchtask.h", - "pchtaskgenerator.cpp", - "pchtaskgenerator.h", - "pchtaskgeneratorinterface.h", - "pchtaskqueue.cpp", - "pchtaskqueue.h", - "pchtaskqueueinterface.h", - "pchtasksmerger.cpp", - "pchtasksmerger.h", - "pchtasksmergerinterface.h", - "precompiledheaderstorage.h", - "precompiledheaderstorageinterface.h", - "processorinterface.h", - "processormanagerinterface.h", - "projectpartsmanager.cpp", - "projectpartsmanager.h", - "projectpartsmanagerinterface.h", - "queueinterface.h", - "taskscheduler.h", - "taskschedulerinterface.h", - "toolchainargumentscache.h", - "usedmacrofilter.h", + "builddependenciesprovider-test.cpp", + "builddependenciesstorage-test.cpp", + "clangindexingsettingsmanager-test.cpp", + "clangpathwatcher-test.cpp", + "clangqueryexamplehighlightmarker-test.cpp", + "clangqueryhighlightmarker-test.cpp", + "clientserverinprocess-test.cpp", + "clientserveroutsideprocess-test.cpp", + "commandlinebuilder-test.cpp", + "compare-operators.h", + "compilationdatabaseutils-test.cpp", + "compileroptionsbuilder-test.cpp", + "conditionally-disabled-tests.h", + "cppprojectfilecategorizer-test.cpp", + "cppprojectinfogenerator-test.cpp", + "cppprojectpartchooser-test.cpp", + "createtablesqlstatementbuilder-test.cpp", + "directorypathcompressor-test.cpp", + "dummyclangipcclient.h", + "dynamicastmatcherdiagnosticcontainer-matcher.h", + "eventspy.cpp", + "eventspy.h", + "fakeprocess.cpp", + "fakeprocess.h", + "filepath-test.cpp", + "filepathcache-test.cpp", + "filepathstorage-test.cpp", + "filepathstoragesqlitestatementfactory-test.cpp", + "filepathview-test.cpp", + "filestatuscache-test.cpp", + "filesystem-utilities.h", + "generatedfiles-test.cpp", + "google-using-declarations.h", + "googletest.h", + "gtest-creator-printing.cpp", + "gtest-creator-printing.h", + "gtest-llvm-printing.h", + "gtest-qt-printing.cpp", + "gtest-qt-printing.h", + "headerpathfilter-test.cpp", + "lineprefixer-test.cpp", + "locatorfilter-test.cpp", + "matchingtext-test.cpp", + "mimedatabase-utilities.cpp", + "mimedatabase-utilities.h", + "mockbuilddependenciesprovider.h", + "mockbuilddependenciesstorage.h", + "mockbuilddependencygenerator.h", + "mockclangcodemodelclient.h", + "mockclangcodemodelserver.h", + "mockclangpathwatcher.h", + "mockclangpathwatchernotifier.h", + "mockcppmodelmanager.h", + "mockeditormanager.h", + "mockfilepathcaching.h", + "mockfilepathstorage.h", + "mockfilesystem.h", + "mockfutureinterface.h", + "mockgeneratedfiles.h", + "mockmodifiedtimechecker.h", + "mockmutex.h", + "mockpchcreator.h", + "mockpchmanagerclient.h", + "mockpchmanagernotifier.h", + "mockpchmanagerserver.h", + "mockpchtaskgenerator.h", + "mockpchtaskqueue.h", + "mockpchtasksmerger.h", + "mockprecompiledheaderstorage.h", + "mockprocessor.h", + "mockprocessormanager.h", + "mockprogressmanager.h", + "mockprojectpartprovider.h", + "mockprojectpartqueue.h", + "mockprojectpartsmanager.h", + "mockprojectpartsstorage.h", + "mockqfilesystemwatcher.h", + "mockqueue.h", + "mocksearch.h", + "mocksearchhandle.h", + "mocksearchresult.h", + "mocksqlitedatabase.h", + "mocksqlitereadstatement.cpp", + "mocksqlitereadstatement.h", + "mocksqlitestatement.h", + "mocksqlitetransactionbackend.h", + "mocksqlitewritestatement.h", + "mocksymbolindexertaskqueue.h", + "mocksymbolindexing.h", + "mocksymbolquery.h", + "mocksymbolscollector.h", + "mocksymbolstorage.h", + "mocksyntaxhighligher.h", + "mocktaskscheduler.h", + "mocktimer.cpp", + "mocktimer.h", + "modifiedtimechecker-test.cpp", + "nativefilepath-test.cpp", + "nativefilepathview-test.cpp", + "pchmanagerclient-test.cpp", + "pchmanagerclientserverinprocess-test.cpp", + "pchmanagerserver-test.cpp", + "pchtaskgenerator-test.cpp", + "pchtaskqueue-test.cpp", + "pchtasksmerger-test.cpp", + "precompiledheaderstorage-test.cpp", + "preprocessormacrocollector-test.cpp", + "processcreator-test.cpp", + "processevents-utilities.cpp", + "processevents-utilities.h", + "processormanager-test.cpp", + "progresscounter-test.cpp", + "projectpartartefact-test.cpp", + "projectpartsmanager-test.cpp", + "projectpartsstorage-test.cpp", + "projectupdater-test.cpp", + "readandwritemessageblock-test.cpp", + "refactoringdatabaseinitializer-test.cpp", + "refactoringprojectupdater-test.cpp", + "rundocumentparse-utility.h", + "sizedarray-test.cpp", + "smallstring-test.cpp", + "sourcerangecontainer-matcher.h", + "sourcerangefilter-test.cpp", + "sourcesmanager-test.cpp", + "spydummy.cpp", + "spydummy.h", + "sqlitecolumn-test.cpp", + "sqlitedatabase-test.cpp", + "sqlitedatabasebackend-test.cpp", + "sqliteindex-test.cpp", + "sqlitestatement-test.cpp", + "sqlitetable-test.cpp", + "sqliteteststatement.h", + "sqlitetransaction-test.cpp", + "sqlitevalue-test.cpp", + "sqlstatementbuilder-test.cpp", + "stringcache-test.cpp", + "symbolindexer-test.cpp", + "symbolindexertaskqueue-test.cpp", + "symbolquery-test.cpp", + "symbolsfindfilter-test.cpp", + "symbolstorage-test.cpp", + "task.cpp", + "taskscheduler-test.cpp", + "testenvironment.h", + "toolchainargumentscache-test.cpp", + "unittest-utility-functions.h", + "unittests-main.cpp", + "usedmacrofilter-test.cpp", + "utf8-test.cpp", ] Group { - name: "tooling sources from pchmanager backend" - condition: libclang.toolingEnabled + name: "libclang tests" + condition: libclang.present files: [ - "builddependencycollector.cpp", - "builddependencycollector.h", - "collectbuilddependencyaction.h", - "collectbuilddependencypreprocessorcallbacks.h", - "collectbuilddependencytoolaction.h", - "collectusedmacroactionfactory.h", - "collectusedmacrosaction.h", - "collectusedmacrosandsourcespreprocessorcallbacks.h", - "pchcreator.cpp", - "pchcreator.h", - "processormanager.h", - "usedmacrosandsourcescollector.cpp", - "usedmacrosandsourcescollector.h", + "activationsequencecontextprocessor-test.cpp", + "activationsequenceprocessor-test.cpp", + "chunksreportedmonitor.cpp", + "chunksreportedmonitor.h", + "clangasyncjob-base.cpp", + "clangasyncjob-base.h", + "clangcodecompleteresults-test.cpp", + "clangcodemodelserver-test.cpp", + "clangcompareoperators.h", + "clangcompletecodejob-test.cpp", + "clangcompletioncontextanalyzer-test.cpp", + "clangdiagnosticfilter-test.cpp", + "clangdocument-test.cpp", + "clangdocumentprocessor-test.cpp", + "clangdocumentprocessors-test.cpp", + "clangdocuments-test.cpp", + "clangfixitoperation-test.cpp", + "clangfollowsymbol-test.cpp", + "clangisdiagnosticrelatedtolocation-test.cpp", + "clangjobqueue-test.cpp", + "clangjobs-test.cpp", + "clangparsesupportivetranslationunitjob-test.cpp", + "clangrequestannotationsjob-test.cpp", + "clangrequestreferencesjob-test.cpp", + "clangresumedocumentjob-test.cpp", + "clangstring-test.cpp", + "clangsupportivetranslationunitinitializer-test.cpp", + "clangsuspenddocumentjob-test.cpp", + "clangtooltipinfo-test.cpp", + "clangtranslationunit-test.cpp", + "clangtranslationunits-test.cpp", + "clangupdateannotationsjob-test.cpp", + "codecompleter-test.cpp", + "codecompletionsextractor-test.cpp", + "completionchunkstotextconverter-test.cpp", + "cursor-test.cpp", + "diagnostic-test.cpp", + "diagnosticcontainer-matcher.h", + "diagnosticset-test.cpp", + "fixit-test.cpp", + "gtest-clang-printing.cpp", + "gtest-clang-printing.h", + "highlightingresultreporter-test.cpp", + "readexporteddiagnostics-test.cpp", + "senddocumenttracker-test.cpp", + "skippedsourceranges-test.cpp", + "sourcelocation-test.cpp", + "sourcerange-test.cpp", + "token-test.cpp", + "tokenprocessor-test.cpp", + "translationunitupdater-test.cpp", + "unsavedfile-test.cpp", + "unsavedfiles-test.cpp", + "utf8positionfromlinecolumn-test.cpp", ] } - } - - Group { - name: "sources from clangrefactoring backend" - prefix: "../../../src/tools/clangrefactoringbackend/source/" - files: [ - "clangrefactoringbackend_global.h", - "collectmacrospreprocessorcallbacks.h", - "projectpartentry.h", - "sourcedependency.h", - "sourcelocationentry.h", - "sourcerangefilter.cpp", - "sourcerangefilter.h", - "sourcesmanager.h", - "symbolentry.h", - "symbolindexer.cpp", - "symbolindexer.h", - "symbolindexertask.h", - "symbolindexertaskqueue.h", - "symbolindexertaskqueueinterface.h", - "symbolindexing.h", - "symbolindexinginterface.h", - "symbolscollectorinterface.h", - "symbolstorage.h", - "symbolstorageinterface.h", - "usedmacro.h", - ] Group { - name: "tooling sources from clangrefactoring backend" - condition: libclang.toolingEnabled + name: "clang tooling tests" + condition: libclang.present && libclang.toolingEnabled files: [ - "clangquery.cpp", - "clangquery.h", - "clangquerygatherer.cpp", - "clangquerygatherer.h", - "clangtool.cpp", - "clangtool.h", - "collectmacrossourcefilecallbacks.cpp", - "collectmacrossourcefilecallbacks.h", - "collectsymbolsaction.cpp", - "collectsymbolsaction.h", - "indexdataconsumer.cpp", - "indexdataconsumer.h", - "locationsourcefilecallbacks.cpp", - "locationsourcefilecallbacks.h", - "macropreprocessorcallbacks.cpp", - "macropreprocessorcallbacks.h", - "refactoringcompilationdatabase.cpp", - "refactoringcompilationdatabase.h", - "refactoringserver.cpp", - "refactoringserver.h", - "sourcelocationsutils.h", - "sourcerangeextractor.cpp", - "sourcerangeextractor.h", - "symbolindexing.cpp", - "symbolscollector.cpp", - "symbolscollector.h", - "symbolsvisitorbase.h", + "builddependencycollector-test.cpp", + "clangdocumentsuspenderresumer-test.cpp", + "clangquery-test.cpp", + "clangquerygatherer-test.cpp", + "clangqueryprojectfindfilter-test.cpp", + "clangreferencescollector-test.cpp", + "gtest-llvm-printing.cpp", + "mockrefactoringclient.h", + "mockrefactoringserver.h", + "pchcreator-test.cpp", + "refactoringclient-test.cpp", + "refactoringclientserverinprocess-test.cpp", + "refactoringcompilationdatabase-test.cpp", + "refactoringengine-test.cpp", + "refactoringserver-test.cpp", + "sourcerangeextractor-test.cpp", + "symbolindexing-test.cpp", + "symbolscollector-test.cpp", + "testclangtool.cpp", + "testclangtool.h", + "usedmacrocollector-test.cpp", ] } - } - Group { - name: "sources from clangbackend" - condition: libclang.present - prefix: "../../../src/tools/clangbackend/source/" - files: [ - "clangasyncjob.h", - "clangbackend_global.h", - "clangclock.h", - "clangcodecompleteresults.cpp", - "clangcodecompleteresults.h", - "clangcodemodelserver.cpp", - "clangcodemodelserver.h", - "clangcompletecodejob.cpp", - "clangcompletecodejob.h", - "clangdocument.cpp", - "clangdocument.h", - "clangdocumentjob.h", - "clangdocumentprocessor.cpp", - "clangdocumentprocessor.h", - "clangdocumentprocessors.cpp", - "clangdocumentprocessors.h", - "clangdocuments.cpp", - "clangdocuments.h", - "clangdocumentsuspenderresumer.cpp", - "clangdocumentsuspenderresumer.h", - "clangexceptions.cpp", - "clangexceptions.h", - "clangfilepath.cpp", - "clangfilepath.h", - "clangfilesystemwatcher.cpp", - "clangfilesystemwatcher.h", - "clangfollowsymbol.cpp", - "clangfollowsymbol.h", - "clangfollowsymboljob.cpp", - "clangfollowsymboljob.h", - "clangiasyncjob.cpp", - "clangiasyncjob.h", - "clangjobcontext.cpp", - "clangjobcontext.h", - "clangjobqueue.cpp", - "clangjobqueue.h", - "clangjobrequest.cpp", - "clangjobrequest.h", - "clangjobs.cpp", - "clangjobs.h", - "clangparsesupportivetranslationunitjob.cpp", - "clangparsesupportivetranslationunitjob.h", - "clangreferencescollector.cpp", - "clangreferencescollector.h", - "clangrequestannotationsjob.cpp", - "clangrequestannotationsjob.h", - "clangrequestreferencesjob.cpp", - "clangrequestreferencesjob.h", - "clangrequesttooltipjob.cpp", - "clangrequesttooltipjob.h", - "clangresumedocumentjob.cpp", - "clangresumedocumentjob.h", - "clangstring.h", - "clangsupportivetranslationunitinitializer.cpp", - "clangsupportivetranslationunitinitializer.h", - "clangsuspenddocumentjob.cpp", - "clangsuspenddocumentjob.h", - "clangtooltipinfocollector.cpp", - "clangtooltipinfocollector.h", - "clangtranslationunit.cpp", - "clangtranslationunit.h", - "clangtranslationunits.cpp", - "clangtranslationunits.h", - "clangtranslationunitupdater.cpp", - "clangtranslationunitupdater.h", - "clangtype.cpp", - "clangtype.h", - "clangunsavedfilesshallowarguments.cpp", - "clangunsavedfilesshallowarguments.h", - "clangupdateannotationsjob.cpp", - "clangupdateannotationsjob.h", - "clangupdateextraannotationsjob.cpp", - "clangupdateextraannotationsjob.h", - "codecompleter.cpp", - "codecompleter.h", - "codecompletionchunkconverter.cpp", - "codecompletionchunkconverter.h", - "codecompletionsextractor.cpp", - "codecompletionsextractor.h", - "commandlinearguments.cpp", - "commandlinearguments.h", - "cursor.cpp", - "cursor.h", - "diagnostic.cpp", - "diagnostic.h", - "diagnosticset.cpp", - "diagnosticset.h", - "diagnosticsetiterator.h", - "fixit.cpp", - "fixit.h", - "fulltokeninfo.cpp", - "fulltokeninfo.h", - "skippedsourceranges.cpp", - "skippedsourceranges.h", - "sourcelocation.cpp", - "sourcelocation.h", - "sourcerange.cpp", - "sourcerange.h", - "token.cpp", - "token.h", - "tokeninfo.cpp", - "tokeninfo.h", - "tokenprocessor.h", - "tokenprocessoriterator.h", - "unsavedfile.cpp", - "unsavedfile.h", - "unsavedfiles.cpp", - "unsavedfiles.h", - "utf8positionfromlinecolumn.cpp", - "utf8positionfromlinecolumn.h", - ] - } - - Group { - name: "sources from clangsupport" - prefix: "../../../src/libs/clangsupport/" - cpp.defines: outer.concat("CLANGSUPPORT_STATIC_LIB") - files: [ - "*.cpp", - "*.h", - ] - } - - Group { - name: "sources from clangcodemodel" - prefix: "../../../src/plugins/clangcodemodel/" - files: [ - "clangactivationsequencecontextprocessor.cpp", - "clangactivationsequencecontextprocessor.h", - "clangactivationsequenceprocessor.cpp", - "clangactivationsequenceprocessor.h", - "clangcompletionchunkstotextconverter.cpp", - "clangcompletionchunkstotextconverter.h", - "clangcompletioncontextanalyzer.cpp", - "clangcompletioncontextanalyzer.h", - "clangdiagnosticfilter.cpp", - "clangdiagnosticfilter.h", - "clangfixitoperation.cpp", - "clangfixitoperation.h", - "clanghighlightingresultreporter.cpp", - "clanghighlightingresultreporter.h", - "clangisdiagnosticrelatedtolocation.h", - "clanguiheaderondiskmanager.cpp", - "clanguiheaderondiskmanager.h", - ] - } - - Group { - name: "sources from cpptools" - prefix: "../../../src/plugins/cpptools/" - cpp.defines: outer.concat("CPPTOOLS_STATIC_LIBRARY") - files: [ - "compileroptionsbuilder.cpp", - "compileroptionsbuilder.h", - "cppprojectfile.cpp", - "cppprojectfile.h", - "cppprojectfilecategorizer.cpp", - "cppprojectfilecategorizer.h", - "cppprojectinfogenerator.cpp", - "cppprojectpartchooser.cpp", - "cppprojectpartchooser.h", - "headerpathfilter.cpp", - "headerpathfilter.h", - "projectinfo.cpp", - "projectinfo.h", - "projectpart.cpp", - "projectpart.h", - "senddocumenttracker.cpp", - "senddocumenttracker.h", - ] - } - - Group { - name: "sources from clangtools" - condition: libclang.present - prefix: "../../../src/plugins/clangtools/" - cpp.defines: outer.concat("CLANGTOOLS_STATIC_LIBRARY") - files: [ - "clangtoolsdiagnostic.cpp", - "clangtoolsdiagnostic.h", - "clangtoolslogfilereader.cpp", - "clangtoolslogfilereader.h", - ] - } - - Group { - name: "sources from clangdbpm" - prefix: "../../../src/plugins/compilationdatabaseprojectmanager/" - files: [ - "compilationdatabaseutils.cpp", - "compilationdatabaseutils.h", - ] - } - - Group { - name: "sources from ProjectExplorer" - prefix: "../../../src/plugins/projectexplorer/" - cpp.defines: base.concat("PROJECTEXPLORER_STATIC_LIBRARY") - files: [ - "projectmacro.cpp", - "projectmacro.h", - ] - } - - Group { - name: "sources from ClangRefactoring" - prefix: "../../../src/plugins/clangrefactoring/" - files: [ - "clangqueryexamplehighlighter.cpp", - "clangqueryexamplehighlighter.h", - "clangqueryexamplehighlightmarker.h", - "clangqueryhighlighter.cpp", - "clangqueryhighlighter.h", - "clangqueryhighlightmarker.h", - "clangqueryprojectsfindfilter.cpp", - "clangqueryprojectsfindfilter.h", - "clangsymbolsfindfilter.cpp", - "clangsymbolsfindfilter.h", - "editormanagerinterface.h", - "locatorfilter.cpp", - "locatorfilter.h", - "projectpartproviderinterface.h", - "projectpartutilities.cpp", - "projectpartutilities.h", - "refactoringclient.cpp", - "refactoringclient.h", - "refactoringconnectionclient.cpp", - "refactoringconnectionclient.h", - "refactoringengine.cpp", - "refactoringengine.h", - "refactoringprojectupdater.cpp", - "refactoringprojectupdater.h", - "searchhandle.cpp", - "searchhandle.h", - "searchinterface.h", - "symbol.h", - "symbolqueryinterface.h", - ] - } - - Group { - name: "sources from ClangFormat" - prefix: "../../../src/plugins/clangformat/" - condition: libclang.present - && libclang.llvmFormattingLibs.length - && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches) - files: [ - "clangformatbaseindenter.cpp", - "clangformatbaseindenter.h", - "clangformatconstants.h", - ] - } - - Group { - name: "sources from Debugger" - prefix: "../../../src/plugins/debugger/analyzer/" - cpp.defines: outer.concat("DEBUGGER_STATIC_LIBRARY") - files: [ - "diagnosticlocation.cpp", - "diagnosticlocation.h", - ] - } - - Rule { - inputs: "qt_plugin_metadata" - Artifact { - filePath: FileInfo.joinPaths(product.destinationDirectory, "CppTools.json") - fileTags: "json_copy" + Group { + name: "ClangFormat tests" + condition: libclang.present + && libclang.llvmFormattingLibs.length + && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches) + files: "clangformat-test.cpp" } - prepare: { - var cmd = new JavaScriptCommand; - cmd.description = "copying " + input.fileName; - cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); }; - return cmd; + + Group { + name: "benchmark test" + condition: benchmark.present + files: "smallstring-benchmark.cpp" + } + + Group { + name: "data" + files: [ + "data/*", + "data/include/*", + ] + fileTags: [] + } + + Group { + name: "json.in file" + files: "../../../src/plugins/cpptools/CppTools.json.in" + fileTags: "pluginJsonIn" + } + + Group { + name: "sources from pchmanager" + prefix: "../../../src/plugins/clangpchmanager/" + files: [ + "clangindexingprojectsettings.cpp", + "clangindexingprojectsettings.h", + "clangindexingsettingsmanager.cpp", + "clangindexingsettingsmanager.h", + "clangpchmanager_global.h", + "pchmanagerclient.cpp", + "pchmanagerclient.h", + "pchmanagerconnectionclient.cpp", + "pchmanagerconnectionclient.h", + "pchmanagernotifierinterface.cpp", + "pchmanagernotifierinterface.h", + "pchmanagerprojectupdater.cpp", + "pchmanagerprojectupdater.h", + "preprocessormacrocollector.cpp", + "preprocessormacrocollector.h", + "progressmanager.h", + "progressmanagerinterface.h", + "projectupdater.cpp", + "projectupdater.h", + ] + } + + Group { + name: "sources from pchmanager backend" + prefix: "../../../src/tools/clangpchmanagerbackend/source/" + files: [ + "builddependenciesprovider.cpp", + "builddependenciesprovider.h", + "builddependenciesproviderinterface.h", + "builddependenciesstorage.h", + "builddependenciesstorageinterface.h", + "builddependency.h", + "builddependencygeneratorinterface.h", + "clangpchmanagerbackend_global.h", + "generatepchactionfactory.h", + "pchcreatorinterface.h", + "pchmanagerserver.cpp", + "pchmanagerserver.h", + "pchnotcreatederror.h", + "pchtask.h", + "pchtaskgenerator.cpp", + "pchtaskgenerator.h", + "pchtaskgeneratorinterface.h", + "pchtaskqueue.cpp", + "pchtaskqueue.h", + "pchtaskqueueinterface.h", + "pchtasksmerger.cpp", + "pchtasksmerger.h", + "pchtasksmergerinterface.h", + "precompiledheaderstorage.h", + "precompiledheaderstorageinterface.h", + "processorinterface.h", + "processormanagerinterface.h", + "projectpartsmanager.cpp", + "projectpartsmanager.h", + "projectpartsmanagerinterface.h", + "queueinterface.h", + "taskscheduler.h", + "taskschedulerinterface.h", + "toolchainargumentscache.h", + "usedmacrofilter.h", + ] + + Group { + name: "tooling sources from pchmanager backend" + condition: libclang.toolingEnabled + files: [ + "builddependencycollector.cpp", + "builddependencycollector.h", + "collectbuilddependencyaction.h", + "collectbuilddependencypreprocessorcallbacks.h", + "collectbuilddependencytoolaction.h", + "collectusedmacroactionfactory.h", + "collectusedmacrosaction.h", + "collectusedmacrosandsourcespreprocessorcallbacks.h", + "pchcreator.cpp", + "pchcreator.h", + "processormanager.h", + "usedmacrosandsourcescollector.cpp", + "usedmacrosandsourcescollector.h", + ] + } + } + + Group { + name: "sources from clangrefactoring backend" + prefix: "../../../src/tools/clangrefactoringbackend/source/" + files: [ + "clangrefactoringbackend_global.h", + "collectmacrospreprocessorcallbacks.h", + "projectpartentry.h", + "sourcedependency.h", + "sourcelocationentry.h", + "sourcerangefilter.cpp", + "sourcerangefilter.h", + "sourcesmanager.h", + "symbolentry.h", + "symbolindexer.cpp", + "symbolindexer.h", + "symbolindexertask.h", + "symbolindexertaskqueue.h", + "symbolindexertaskqueueinterface.h", + "symbolindexing.h", + "symbolindexinginterface.h", + "symbolscollectorinterface.h", + "symbolstorage.h", + "symbolstorageinterface.h", + "usedmacro.h", + ] + + Group { + name: "tooling sources from clangrefactoring backend" + condition: libclang.toolingEnabled + files: [ + "clangquery.cpp", + "clangquery.h", + "clangquerygatherer.cpp", + "clangquerygatherer.h", + "clangtool.cpp", + "clangtool.h", + "collectmacrossourcefilecallbacks.cpp", + "collectmacrossourcefilecallbacks.h", + "collectsymbolsaction.cpp", + "collectsymbolsaction.h", + "indexdataconsumer.cpp", + "indexdataconsumer.h", + "locationsourcefilecallbacks.cpp", + "locationsourcefilecallbacks.h", + "macropreprocessorcallbacks.cpp", + "macropreprocessorcallbacks.h", + "refactoringcompilationdatabase.cpp", + "refactoringcompilationdatabase.h", + "refactoringserver.cpp", + "refactoringserver.h", + "sourcelocationsutils.h", + "sourcerangeextractor.cpp", + "sourcerangeextractor.h", + "symbolindexing.cpp", + "symbolscollector.cpp", + "symbolscollector.h", + "symbolsvisitorbase.h", + ] + } + } + + Group { + name: "sources from clangbackend" + condition: libclang.present + prefix: "../../../src/tools/clangbackend/source/" + files: [ + "clangasyncjob.h", + "clangbackend_global.h", + "clangclock.h", + "clangcodecompleteresults.cpp", + "clangcodecompleteresults.h", + "clangcodemodelserver.cpp", + "clangcodemodelserver.h", + "clangcompletecodejob.cpp", + "clangcompletecodejob.h", + "clangdocument.cpp", + "clangdocument.h", + "clangdocumentjob.h", + "clangdocumentprocessor.cpp", + "clangdocumentprocessor.h", + "clangdocumentprocessors.cpp", + "clangdocumentprocessors.h", + "clangdocuments.cpp", + "clangdocuments.h", + "clangdocumentsuspenderresumer.cpp", + "clangdocumentsuspenderresumer.h", + "clangexceptions.cpp", + "clangexceptions.h", + "clangfilepath.cpp", + "clangfilepath.h", + "clangfilesystemwatcher.cpp", + "clangfilesystemwatcher.h", + "clangfollowsymbol.cpp", + "clangfollowsymbol.h", + "clangfollowsymboljob.cpp", + "clangfollowsymboljob.h", + "clangiasyncjob.cpp", + "clangiasyncjob.h", + "clangjobcontext.cpp", + "clangjobcontext.h", + "clangjobqueue.cpp", + "clangjobqueue.h", + "clangjobrequest.cpp", + "clangjobrequest.h", + "clangjobs.cpp", + "clangjobs.h", + "clangparsesupportivetranslationunitjob.cpp", + "clangparsesupportivetranslationunitjob.h", + "clangreferencescollector.cpp", + "clangreferencescollector.h", + "clangrequestannotationsjob.cpp", + "clangrequestannotationsjob.h", + "clangrequestreferencesjob.cpp", + "clangrequestreferencesjob.h", + "clangrequesttooltipjob.cpp", + "clangrequesttooltipjob.h", + "clangresumedocumentjob.cpp", + "clangresumedocumentjob.h", + "clangstring.h", + "clangsupportivetranslationunitinitializer.cpp", + "clangsupportivetranslationunitinitializer.h", + "clangsuspenddocumentjob.cpp", + "clangsuspenddocumentjob.h", + "clangtooltipinfocollector.cpp", + "clangtooltipinfocollector.h", + "clangtranslationunit.cpp", + "clangtranslationunit.h", + "clangtranslationunits.cpp", + "clangtranslationunits.h", + "clangtranslationunitupdater.cpp", + "clangtranslationunitupdater.h", + "clangtype.cpp", + "clangtype.h", + "clangunsavedfilesshallowarguments.cpp", + "clangunsavedfilesshallowarguments.h", + "clangupdateannotationsjob.cpp", + "clangupdateannotationsjob.h", + "clangupdateextraannotationsjob.cpp", + "clangupdateextraannotationsjob.h", + "codecompleter.cpp", + "codecompleter.h", + "codecompletionchunkconverter.cpp", + "codecompletionchunkconverter.h", + "codecompletionsextractor.cpp", + "codecompletionsextractor.h", + "commandlinearguments.cpp", + "commandlinearguments.h", + "cursor.cpp", + "cursor.h", + "diagnostic.cpp", + "diagnostic.h", + "diagnosticset.cpp", + "diagnosticset.h", + "diagnosticsetiterator.h", + "fixit.cpp", + "fixit.h", + "fulltokeninfo.cpp", + "fulltokeninfo.h", + "skippedsourceranges.cpp", + "skippedsourceranges.h", + "sourcelocation.cpp", + "sourcelocation.h", + "sourcerange.cpp", + "sourcerange.h", + "token.cpp", + "token.h", + "tokeninfo.cpp", + "tokeninfo.h", + "tokenprocessor.h", + "tokenprocessoriterator.h", + "unsavedfile.cpp", + "unsavedfile.h", + "unsavedfiles.cpp", + "unsavedfiles.h", + "utf8positionfromlinecolumn.cpp", + "utf8positionfromlinecolumn.h", + ] + } + + Group { + name: "sources from clangsupport" + prefix: "../../../src/libs/clangsupport/" + files: [ + "*.cpp", + "*.h", + ] + } + + Group { + name: "sources from clangcodemodel" + prefix: "../../../src/plugins/clangcodemodel/" + files: [ + "clangactivationsequencecontextprocessor.cpp", + "clangactivationsequencecontextprocessor.h", + "clangactivationsequenceprocessor.cpp", + "clangactivationsequenceprocessor.h", + "clangcompletionchunkstotextconverter.cpp", + "clangcompletionchunkstotextconverter.h", + "clangcompletioncontextanalyzer.cpp", + "clangcompletioncontextanalyzer.h", + "clangdiagnosticfilter.cpp", + "clangdiagnosticfilter.h", + "clangfixitoperation.cpp", + "clangfixitoperation.h", + "clanghighlightingresultreporter.cpp", + "clanghighlightingresultreporter.h", + "clangisdiagnosticrelatedtolocation.h", + "clanguiheaderondiskmanager.cpp", + "clanguiheaderondiskmanager.h", + ] + } + + Group { + name: "sources from cpptools" + prefix: "../../../src/plugins/cpptools/" + files: [ + "compileroptionsbuilder.cpp", + "compileroptionsbuilder.h", + "cppprojectfile.cpp", + "cppprojectfile.h", + "cppprojectfilecategorizer.cpp", + "cppprojectfilecategorizer.h", + "cppprojectinfogenerator.cpp", + "cppprojectpartchooser.cpp", + "cppprojectpartchooser.h", + "headerpathfilter.cpp", + "headerpathfilter.h", + "projectinfo.cpp", + "projectinfo.h", + "projectpart.cpp", + "projectpart.h", + "senddocumenttracker.cpp", + "senddocumenttracker.h", + ] + } + + Group { + name: "sources from clangtools" + condition: libclang.present + prefix: "../../../src/plugins/clangtools/" + files: [ + "clangtoolsdiagnostic.cpp", + "clangtoolsdiagnostic.h", + "clangtoolslogfilereader.cpp", + "clangtoolslogfilereader.h", + ] + } + + Group { + name: "sources from clangdbpm" + prefix: "../../../src/plugins/compilationdatabaseprojectmanager/" + files: [ + "compilationdatabaseutils.cpp", + "compilationdatabaseutils.h", + ] + } + + Group { + name: "sources from ProjectExplorer" + prefix: "../../../src/plugins/projectexplorer/" + files: [ + "projectmacro.cpp", + "projectmacro.h", + ] + } + + Group { + name: "sources from ClangRefactoring" + prefix: "../../../src/plugins/clangrefactoring/" + files: [ + "clangqueryexamplehighlighter.cpp", + "clangqueryexamplehighlighter.h", + "clangqueryexamplehighlightmarker.h", + "clangqueryhighlighter.cpp", + "clangqueryhighlighter.h", + "clangqueryhighlightmarker.h", + "clangqueryprojectsfindfilter.cpp", + "clangqueryprojectsfindfilter.h", + "clangsymbolsfindfilter.cpp", + "clangsymbolsfindfilter.h", + "editormanagerinterface.h", + "locatorfilter.cpp", + "locatorfilter.h", + "projectpartproviderinterface.h", + "projectpartutilities.cpp", + "projectpartutilities.h", + "refactoringclient.cpp", + "refactoringclient.h", + "refactoringconnectionclient.cpp", + "refactoringconnectionclient.h", + "refactoringengine.cpp", + "refactoringengine.h", + "refactoringprojectupdater.cpp", + "refactoringprojectupdater.h", + "searchhandle.cpp", + "searchhandle.h", + "searchinterface.h", + "symbol.h", + "symbolqueryinterface.h", + ] + } + + Group { + name: "sources from ClangFormat" + prefix: "../../../src/plugins/clangformat/" + condition: libclang.present + && libclang.llvmFormattingLibs.length + && (!qbs.targetOS.contains("windows") || libclang.llvmBuildModeMatches) + files: [ + "clangformatbaseindenter.cpp", + "clangformatbaseindenter.h", + "clangformatconstants.h", + ] + } + + Group { + name: "sources from Debugger" + prefix: "../../../src/plugins/debugger/analyzer/" + files: [ + "diagnosticlocation.cpp", + "diagnosticlocation.h", + ] + } + + Rule { + inputs: "qt_plugin_metadata" + Artifact { + filePath: FileInfo.joinPaths(product.destinationDirectory, "CppTools.json") + fileTags: "json_copy" + } + prepare: { + var cmd = new JavaScriptCommand; + cmd.description = "copying " + input.fileName; + cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); }; + return cmd; + } } } - }