aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/unittest/unittest.qbs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/unittest/unittest.qbs')
-rw-r--r--tests/unit/unittest/unittest.qbs831
1 files changed, 831 insertions, 0 deletions
diff --git a/tests/unit/unittest/unittest.qbs b/tests/unit/unittest/unittest.qbs
new file mode 100644
index 0000000000..de84177ba1
--- /dev/null
+++ b/tests/unit/unittest/unittest.qbs
@@ -0,0 +1,831 @@
+import qbs.File
+import qbs.FileInfo
+
+CppApplication {
+ condition: gtest.present && gmock.present
+ type: base.concat(["autotest", "json_copy"])
+ consoleApplication: true
+ destinationDirectory: FileInfo.joinPaths(project.buildDirectory,
+ FileInfo.relativePath(project.ide_source_tree, sourceDirectory))
+
+ 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: "gtest"; required: false }
+ Depends { name: "gmock"; required: 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");
+ }
+ }
+ 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++14"
+ 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;
+ }
+
+ 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",
+ "highlightingresultreporter-test.cpp",
+ "readexporteddiagnostics-test.cpp",
+ "senddocumenttracker-test.cpp",
+ "skippedsourceranges-test.cpp",
+ "sourcelocation-test.cpp",
+ "sourcerange-test.cpp",
+ "token-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-clang-printing.cpp",
+ "gtest-clang-printing.h",
+ "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",
+ "tokenprocessor-test.cpp",
+ "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",
+ ]
+
+ 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/"
+ 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"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand;
+ cmd.description = "copying " + input.fileName;
+ cmd.sourceCode = function() { File.copy(input.filePath, output.filePath); };
+ return cmd;
+ }
+ }
+
+}