summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2016-06-10 17:51:22 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2016-06-15 12:35:55 +0000
commite1e203598dd876337e7c91e1d4da87f7dab7acf0 (patch)
treebb56bb035a00d0943ccbf28920bda7ac5597c77f
parent96a3d49b07fa0119d11ed4f76d9f1fd5e86686ef (diff)
downloadqt-creator-e1e203598dd876337e7c91e1d4da87f7dab7acf0.tar.gz
qbs build: Final steps to support building plugins "out of source".
- Use the entire Export block when creating a module, not just the Depends items. Adapt references to the product source directory and the "share" directory so that they point to the respective locations in the install tree. - Install dev headers for some more plugins. - Bug fixes & polishing. Create a "dev installation" like this: $ qbs qtc.make_dev_package:true qbs.installRoot:<install root> Then build your plugin against it like this: $ qbs qtc.make_dev_package:true qbs.installRoot:<install root> project.qbsSearchPaths:<install root>/qbs-resources (Using qbs from 1.5 branch; 1.5.1 requires a trivial wrapper project.) That's all. Successfully tested with all commercial plugins on Linux. Change-Id: Ie39c4717dafcd431c533421a15f2f898783d8521 Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
-rw-r--r--qbs/imports/QtcDevHeaders.qbs4
-rw-r--r--qbs/imports/QtcProduct.qbs2
-rw-r--r--qbs/modules/qtc/qtc.js86
-rw-r--r--qbs/modules/qtc/qtc.qbs10
-rw-r--r--src/libs/cplusplus/cplusplus.qbs256
-rw-r--r--src/libs/languageutils/languageutils.qbs29
-rw-r--r--src/libs/qmljs/qmljs.qbs150
-rw-r--r--src/plugins/cpptools/cpptools.qbs236
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.qbs19
9 files changed, 404 insertions, 388 deletions
diff --git a/qbs/imports/QtcDevHeaders.qbs b/qbs/imports/QtcDevHeaders.qbs
index 3ca4730834..819983f27d 100644
--- a/qbs/imports/QtcDevHeaders.qbs
+++ b/qbs/imports/QtcDevHeaders.qbs
@@ -3,13 +3,15 @@ import qbs.FileInfo
Product {
property string productName: project.name
+ property string baseDir: sourceDirectory
name: productName + " dev headers"
condition: qtc.make_dev_package
Depends { name: "qtc" }
Group {
+ prefix: baseDir + '/'
files: ["**/*.h"]
qbs.install: true
qbs.installDir: qtc.ide_include_path + '/' + FileInfo.fileName(product.sourceDirectory)
- qbs.installSourceBase: product.sourceDirectory
+ qbs.installSourceBase: baseDir
}
}
diff --git a/qbs/imports/QtcProduct.qbs b/qbs/imports/QtcProduct.qbs
index 0e17a4145f..3c789ed3de 100644
--- a/qbs/imports/QtcProduct.qbs
+++ b/qbs/imports/QtcProduct.qbs
@@ -1,4 +1,5 @@
import qbs 1.0
+import qbs.FileInfo
import QtcFunctions
Product {
@@ -7,6 +8,7 @@ Product {
property bool install: true
property string installDir
property stringList installTags: type
+ property string fileName: FileInfo.fileName(sourceDirectory) + ".qbs"
Depends { name: "cpp" }
Depends { name: "qtc" }
diff --git a/qbs/modules/qtc/qtc.js b/qbs/modules/qtc/qtc.js
index ebaa063a7e..6220f6dc9d 100644
--- a/qbs/modules/qtc/qtc.js
+++ b/qbs/modules/qtc/qtc.js
@@ -14,77 +14,67 @@ function getExportBlock(productFile)
}
if (line.indexOf('}') === exportIndex)
break;
- exportBlock += line + '\n';
+ exportBlock += " " + line.trim() + '\n';
}
return exportBlock;
}
-function getDependsItemsFromExportBlock(exportBlock)
+function insertOrAddToProperty(product, content, propertyName, value)
{
- var lines = exportBlock.split('\n');
- var dependsItems = ["Depends { name: 'cpp' }"];
- var dependsIndex = -1;
- var currentDependsItem;
- for (var i = 0; i < lines.length; ++i) {
- var line = lines[i];
- if (dependsIndex !== -1) {
- currentDependsItem += line;
- if (line.indexOf('}') === dependsIndex) {
- dependsItems.push(currentDependsItem);
- dependsIndex = -1;
- }
- continue;
- }
- dependsIndex = line.indexOf("Depends {");
- if (dependsIndex === -1)
- continue;
- if (line.contains('}')) {
- if (!dependsItems.contains("cpp"))
- dependsItems.push(line);
- dependsIndex = -1;
- } else {
- currentDependsItem = line;
- }
+ var valueAsList = '[' + value + ']';
+ var propertyNameIndex = content.indexOf(propertyName + ':');
+ if (propertyNameIndex !== -1) {
+ var endListIndex = content.indexOf(']', propertyNameIndex);
+ if (endListIndex === -1)
+ throw "Failed to parse Export item of product '" + product.name + "'";
+ var contentStart = content.slice(0, endListIndex + 1);
+ var contentEnd = content.slice(endListIndex + 1);
+ return contentStart + ".concat(" + valueAsList + ')' + contentEnd;
}
- return dependsItems;
+ return content + '\n' + propertyName + ": " + valueAsList;
}
-function getDependsItems(product)
+function transformedExportBlock(product, input, output)
{
- var productFilePath = FileInfo.joinPaths(product.sourceDirectory,
- FileInfo.fileName(product.sourceDirectory) + ".qbs");
+ var productFilePath = FileInfo.joinPaths(product.sourceDirectory, product.fileName);
var productFile = new TextFile(productFilePath, TextFile.ReadOnly);
try {
var exportBlock = getExportBlock(productFile);
- return getDependsItemsFromExportBlock(exportBlock);
+ exportBlock = " Depends { name: 'cpp' }\n" + exportBlock;
+ var modulePath = FileInfo.joinPaths("/",
+ product.moduleProperty("qtc", "ide_qbs_modules_path"), product.name);
+ var includePath = FileInfo.joinPaths("/",
+ product.moduleProperty("qtc", "ide_include_path"));
+ var relPathToIncludes = FileInfo.relativePath(modulePath, includePath);
+ var absPathToIncludes = "path + '/" + relPathToIncludes + "'";
+ exportBlock = exportBlock.replace(/product.sourceDirectory/g, absPathToIncludes + " + '/"
+ + FileInfo.fileName(product.sourceDirectory) + "'");
+ var dataPath = FileInfo.joinPaths("/", product.moduleProperty("qtc", "ide_data_path"));
+ var relPathToData = FileInfo.relativePath(modulePath, dataPath);
+ exportBlock = exportBlock.replace(/qtc.export_data_base/g, "path + '/"
+ + relPathToData + "'");
+ exportBlock = insertOrAddToProperty(product, exportBlock, "cpp.includePaths",
+ absPathToIncludes);
+ var libInstallPath = FileInfo.joinPaths("/", input.moduleProperty("qbs", "installDir"));
+ var relPathToLibrary = FileInfo.relativePath(modulePath, libInstallPath);
+ var fullPathToLibrary = "path + '/" + relPathToLibrary + "/" + input.fileName + "'";
+ var libType = input.fileTags.contains("dynamiclibrary") ? "dynamic" : "static";
+ exportBlock = insertOrAddToProperty(product, exportBlock, "cpp." + libType + "Libraries",
+ fullPathToLibrary);
+ return exportBlock;
} finally {
productFile.close();
}
}
-function writeModuleFile(product, input, output, dependsItems)
+function writeModuleFile(output, content)
{
var moduleFile = new TextFile(output.filePath, TextFile.WriteOnly);
try {
moduleFile.writeLine("import qbs");
moduleFile.writeLine("");
moduleFile.writeLine("Module {")
- for (var i = 0; i < dependsItems.length; ++i) {
- moduleFile.writeLine(" " + dependsItems[i].trim());
- moduleFile.writeLine("");
- }
- var includePath = FileInfo.joinPaths("/",
- product.moduleProperty("qtc", "ide_include_path"));
- var modulePath = FileInfo.joinPaths("/",
- product.moduleProperty("qtc", "ide_qbs_modules_path"), product.name);
- var relPathToIncludes = FileInfo.relativePath(modulePath, includePath);
- moduleFile.writeLine(" cpp.includePaths: [path + '/" + relPathToIncludes + "']");
- var libInstallPath = FileInfo.joinPaths("/", input.moduleProperty("qbs", "installPrefix"),
- input.moduleProperty("qbs", "installDir"));
- var relPathToLibrary = FileInfo.relativePath(modulePath, libInstallPath);
- var libType = input.fileTags.contains("dynamiclibrary") ? "dynamic" : "static";
- moduleFile.writeLine(" cpp." + libType + "Libraries: [path + '/"
- + relPathToLibrary + "/" + input.fileName + "']");
+ moduleFile.writeLine(content);
moduleFile.writeLine("}");
} finally {
moduleFile.close();
diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs
index 1e1b8f90f2..42f61b981b 100644
--- a/qbs/modules/qtc/qtc.qbs
+++ b/qbs/modules/qtc/qtc.qbs
@@ -54,6 +54,9 @@ Module {
property bool make_dev_package: false
+ // Will be replaced when creating modules from products
+ property string export_data_base: project.ide_source_tree + "/share/qtcreator"
+
property bool testsEnabled: Environment.getEnv("TEST") || qbs.buildVariant === "debug"
property stringList generalDefines: [
"QT_CREATOR",
@@ -65,6 +68,7 @@ Module {
Rule {
condition: make_dev_package
inputs: [product.type.contains("dynamiclibrary") ? "dynamiclibrary" : "staticlibrary"]
+ explicitlyDependsOn: ["qbs"]
Artifact {
filePath: product.name + "-module.qbs"
fileTags: ["qtc.dev-module"]
@@ -73,8 +77,10 @@ Module {
var cmd = new JavaScriptCommand();
cmd.description = "Creating " + output.fileName;
cmd.sourceCode = function() {
- var dependsItems = HelperFunctions.getDependsItems(product);
- HelperFunctions.writeModuleFile(product, input, output, dependsItems);
+ var transformedExportBlock = HelperFunctions.transformedExportBlock(product, input,
+ output);
+ HelperFunctions.writeModuleFile(output, transformedExportBlock);
+
};
return [cmd];
}
diff --git a/src/libs/cplusplus/cplusplus.qbs b/src/libs/cplusplus/cplusplus.qbs
index 8d7c38c883..c9aae72b3e 100644
--- a/src/libs/cplusplus/cplusplus.qbs
+++ b/src/libs/cplusplus/cplusplus.qbs
@@ -1,134 +1,142 @@
import qbs 1.0
-QtcLibrary {
+Project {
name: "CPlusPlus"
- cpp.includePaths: base.concat("../3rdparty")
- cpp.defines: base.concat([
- "NDEBUG",
- "CPLUSPLUS_BUILD_LIB"
- ])
- cpp.optimization: "fast"
+ QtcDevHeaders { }
+ QtcDevHeaders {
+ productName: "cplusplus (3rd party)"
+ baseDir: sourceDirectory + "/../3rdparty/cplusplus"
+ }
- Depends { name: "Qt.widgets" }
- Depends { name: "Utils" }
+ QtcLibrary {
+ cpp.includePaths: base.concat("../3rdparty")
+ cpp.defines: base.concat([
+ "NDEBUG",
+ "CPLUSPLUS_BUILD_LIB"
+ ])
+ cpp.optimization: "fast"
- Group {
- name: "ThirdPartyCPlusPlus"
- prefix: "../3rdparty/cplusplus/"
- files: [
- "AST.cpp",
- "AST.h",
- "ASTClone.cpp",
- "ASTMatch0.cpp",
- "ASTMatcher.cpp",
- "ASTMatcher.h",
- "ASTPatternBuilder.cpp",
- "ASTPatternBuilder.h",
- "ASTVisit.cpp",
- "ASTVisitor.cpp",
- "ASTVisitor.h",
- "ASTfwd.h",
- "Bind.cpp",
- "Bind.h",
- "CPlusPlus.h",
- "Control.cpp",
- "Control.h",
- "CoreTypes.cpp",
- "CoreTypes.h",
- "DiagnosticClient.cpp",
- "DiagnosticClient.h",
- "FullySpecifiedType.cpp",
- "FullySpecifiedType.h",
- "Keywords.cpp",
- "Lexer.cpp",
- "Lexer.h",
- "LiteralTable.h",
- "Literals.cpp",
- "Literals.h",
- "Matcher.cpp",
- "Matcher.h",
- "MemoryPool.cpp",
- "MemoryPool.h",
- "Name.cpp",
- "Name.h",
- "NameVisitor.cpp",
- "NameVisitor.h",
- "Names.cpp",
- "Names.h",
- "ObjectiveCAtKeywords.cpp",
- "ObjectiveCTypeQualifiers.cpp",
- "ObjectiveCTypeQualifiers.h",
- "Parser.cpp",
- "Parser.h",
- "QtContextKeywords.cpp",
- "QtContextKeywords.h",
- "SafeMatcher.cpp",
- "SafeMatcher.h",
- "Scope.cpp",
- "Scope.h",
- "Symbol.cpp",
- "Symbol.h",
- "SymbolVisitor.h",
- "Symbols.cpp",
- "Symbols.h",
- "Templates.cpp",
- "Templates.h",
- "Token.cpp",
- "Token.h",
- "TranslationUnit.cpp",
- "TranslationUnit.h",
- "Type.cpp",
- "Type.h",
- "TypeVisitor.cpp",
- "TypeVisitor.h",
- ]
- }
+ Depends { name: "Qt.widgets" }
+ Depends { name: "Utils" }
- Group {
- name: "General"
- files: [
- "AlreadyConsideredClassContainer.h",
- "ASTParent.cpp", "ASTParent.h",
- "ASTPath.cpp", "ASTPath.h",
- "BackwardsScanner.cpp", "BackwardsScanner.h",
- "CppDocument.cpp", "CppDocument.h",
- "CppRewriter.cpp", "CppRewriter.h",
- "cppmodelmanagerbase.cpp", "cppmodelmanagerbase.h",
- "DependencyTable.cpp", "DependencyTable.h",
- "DeprecatedGenTemplateInstance.cpp", "DeprecatedGenTemplateInstance.h",
- "ExpressionUnderCursor.cpp", "ExpressionUnderCursor.h",
- "FastPreprocessor.cpp", "FastPreprocessor.h",
- "FindUsages.cpp", "FindUsages.h",
- "Icons.cpp", "Icons.h",
- "LookupContext.cpp", "LookupContext.h",
- "LookupItem.cpp", "LookupItem.h",
- "Macro.cpp", "Macro.h",
- "MatchingText.cpp", "MatchingText.h",
- "NamePrettyPrinter.cpp", "NamePrettyPrinter.h",
- "Overview.cpp", "Overview.h",
- "OverviewModel.cpp", "OverviewModel.h",
- "PPToken.cpp", "PPToken.h",
- "PreprocessorClient.cpp", "PreprocessorClient.h",
- "PreprocessorEnvironment.cpp", "PreprocessorEnvironment.h",
- "ResolveExpression.cpp", "ResolveExpression.h",
- "SimpleLexer.cpp", "SimpleLexer.h",
- "SnapshotSymbolVisitor.cpp", "SnapshotSymbolVisitor.h",
- "SymbolNameVisitor.cpp", "SymbolNameVisitor.h",
- "TypeOfExpression.cpp", "TypeOfExpression.h",
- "TypePrettyPrinter.cpp", "TypePrettyPrinter.h",
- "cplusplus.qrc",
- "findcdbbreakpoint.cpp", "findcdbbreakpoint.h",
- "pp-cctype.h",
- "pp-engine.cpp", "pp-engine.h",
- "pp-scanner.cpp", "pp-scanner.h",
- "pp.h",
- ]
- }
+ Group {
+ name: "ThirdPartyCPlusPlus"
+ prefix: "../3rdparty/cplusplus/"
+ files: [
+ "AST.cpp",
+ "AST.h",
+ "ASTClone.cpp",
+ "ASTMatch0.cpp",
+ "ASTMatcher.cpp",
+ "ASTMatcher.h",
+ "ASTPatternBuilder.cpp",
+ "ASTPatternBuilder.h",
+ "ASTVisit.cpp",
+ "ASTVisitor.cpp",
+ "ASTVisitor.h",
+ "ASTfwd.h",
+ "Bind.cpp",
+ "Bind.h",
+ "CPlusPlus.h",
+ "Control.cpp",
+ "Control.h",
+ "CoreTypes.cpp",
+ "CoreTypes.h",
+ "DiagnosticClient.cpp",
+ "DiagnosticClient.h",
+ "FullySpecifiedType.cpp",
+ "FullySpecifiedType.h",
+ "Keywords.cpp",
+ "Lexer.cpp",
+ "Lexer.h",
+ "LiteralTable.h",
+ "Literals.cpp",
+ "Literals.h",
+ "Matcher.cpp",
+ "Matcher.h",
+ "MemoryPool.cpp",
+ "MemoryPool.h",
+ "Name.cpp",
+ "Name.h",
+ "NameVisitor.cpp",
+ "NameVisitor.h",
+ "Names.cpp",
+ "Names.h",
+ "ObjectiveCAtKeywords.cpp",
+ "ObjectiveCTypeQualifiers.cpp",
+ "ObjectiveCTypeQualifiers.h",
+ "Parser.cpp",
+ "Parser.h",
+ "QtContextKeywords.cpp",
+ "QtContextKeywords.h",
+ "SafeMatcher.cpp",
+ "SafeMatcher.h",
+ "Scope.cpp",
+ "Scope.h",
+ "Symbol.cpp",
+ "Symbol.h",
+ "SymbolVisitor.h",
+ "Symbols.cpp",
+ "Symbols.h",
+ "Templates.cpp",
+ "Templates.h",
+ "Token.cpp",
+ "Token.h",
+ "TranslationUnit.cpp",
+ "TranslationUnit.h",
+ "Type.cpp",
+ "Type.h",
+ "TypeVisitor.cpp",
+ "TypeVisitor.h",
+ ]
+ }
+
+ Group {
+ name: "General"
+ files: [
+ "AlreadyConsideredClassContainer.h",
+ "ASTParent.cpp", "ASTParent.h",
+ "ASTPath.cpp", "ASTPath.h",
+ "BackwardsScanner.cpp", "BackwardsScanner.h",
+ "CppDocument.cpp", "CppDocument.h",
+ "CppRewriter.cpp", "CppRewriter.h",
+ "cppmodelmanagerbase.cpp", "cppmodelmanagerbase.h",
+ "DependencyTable.cpp", "DependencyTable.h",
+ "DeprecatedGenTemplateInstance.cpp", "DeprecatedGenTemplateInstance.h",
+ "ExpressionUnderCursor.cpp", "ExpressionUnderCursor.h",
+ "FastPreprocessor.cpp", "FastPreprocessor.h",
+ "FindUsages.cpp", "FindUsages.h",
+ "Icons.cpp", "Icons.h",
+ "LookupContext.cpp", "LookupContext.h",
+ "LookupItem.cpp", "LookupItem.h",
+ "Macro.cpp", "Macro.h",
+ "MatchingText.cpp", "MatchingText.h",
+ "NamePrettyPrinter.cpp", "NamePrettyPrinter.h",
+ "Overview.cpp", "Overview.h",
+ "OverviewModel.cpp", "OverviewModel.h",
+ "PPToken.cpp", "PPToken.h",
+ "PreprocessorClient.cpp", "PreprocessorClient.h",
+ "PreprocessorEnvironment.cpp", "PreprocessorEnvironment.h",
+ "ResolveExpression.cpp", "ResolveExpression.h",
+ "SimpleLexer.cpp", "SimpleLexer.h",
+ "SnapshotSymbolVisitor.cpp", "SnapshotSymbolVisitor.h",
+ "SymbolNameVisitor.cpp", "SymbolNameVisitor.h",
+ "TypeOfExpression.cpp", "TypeOfExpression.h",
+ "TypePrettyPrinter.cpp", "TypePrettyPrinter.h",
+ "cplusplus.qrc",
+ "findcdbbreakpoint.cpp", "findcdbbreakpoint.h",
+ "pp-cctype.h",
+ "pp-engine.cpp", "pp-engine.h",
+ "pp-scanner.cpp", "pp-scanner.h",
+ "pp.h",
+ ]
+ }
- Export {
- cpp.includePaths: [
- "../3rdparty"
- ]
+ Export {
+ cpp.includePaths: [
+ product.sourceDirectory + "/../3rdparty"
+ ]
+ }
}
}
diff --git a/src/libs/languageutils/languageutils.qbs b/src/libs/languageutils/languageutils.qbs
index 244b41d8fc..e91491c17b 100644
--- a/src/libs/languageutils/languageutils.qbs
+++ b/src/libs/languageutils/languageutils.qbs
@@ -1,21 +1,22 @@
import qbs 1.0
-QtcLibrary {
+Project {
name: "LanguageUtils"
- cpp.defines: base.concat([
- "LANGUAGEUTILS_BUILD_DIR"
- ])
- cpp.optimization: "fast"
+ QtcDevHeaders { }
- Depends { name: "Qt.core" }
+ QtcLibrary {
+ cpp.defines: base.concat(["LANGUAGEUTILS_BUILD_DIR"])
+ cpp.optimization: "fast"
- files: [
- "componentversion.cpp",
- "componentversion.h",
- "fakemetaobject.cpp",
- "fakemetaobject.h",
- "languageutils_global.h",
- ]
-}
+ Depends { name: "Qt.core" }
+ files: [
+ "componentversion.cpp",
+ "componentversion.h",
+ "fakemetaobject.cpp",
+ "fakemetaobject.h",
+ "languageutils_global.h",
+ ]
+ }
+}
diff --git a/src/libs/qmljs/qmljs.qbs b/src/libs/qmljs/qmljs.qbs
index f5a08d95e7..1ac94d06e5 100644
--- a/src/libs/qmljs/qmljs.qbs
+++ b/src/libs/qmljs/qmljs.qbs
@@ -1,84 +1,86 @@
import qbs 1.0
-QtcLibrary {
+Project {
name: "QmlJS"
- cpp.defines: base.concat([
- "QMLJS_BUILD_DIR"
- ])
- cpp.optimization: "fast"
+ QtcDevHeaders { }
- Depends { name: "ExtensionSystem" }
- Depends { name: "Utils" }
- Depends { name: "LanguageUtils" }
- Depends { name: "CPlusPlus" }
- Depends { name: "Qt"; submodules: ["widgets", "xml"] }
+ QtcLibrary {
+ cpp.defines: base.concat(["QMLJS_BUILD_DIR"])
+ cpp.optimization: "fast"
- Group {
- name: "General"
- files: [
- "jsoncheck.cpp", "jsoncheck.h",
- "persistenttrie.cpp", "persistenttrie.h",
- "qmljs_global.h",
- "qmljsbind.cpp", "qmljsbind.h",
- "qmljsbundle.cpp", "qmljsbundle.h",
- "qmljscheck.cpp", "qmljscheck.h",
- "qmljscodeformatter.cpp", "qmljscodeformatter.h",
- "qmljscompletioncontextfinder.cpp", "qmljscompletioncontextfinder.h",
- "qmljsconstants.h",
- "qmljscontext.cpp", "qmljscontext.h",
- "qmljsdescribevalue.cpp", "qmljsdescribevalue.h",
- "qmljsdocument.cpp", "qmljsdocument.h",
- "qmljsevaluate.cpp", "qmljsevaluate.h",
- "qmljsfindexportedcpptypes.cpp", "qmljsfindexportedcpptypes.h",
- "qmljsicons.cpp", "qmljsicons.h",
- "qmljsicontextpane.h",
- "qmljsimportdependencies.cpp", "qmljsimportdependencies.h",
- "qmljsindenter.cpp", "qmljsindenter.h",
- "qmljsinterpreter.cpp", "qmljsinterpreter.h",
- "qmljsdialect.cpp", "qmljsdialect.h",
- "qmljslineinfo.cpp", "qmljslineinfo.h",
- "qmljslink.cpp", "qmljslink.h",
- "qmljsmodelmanagerinterface.cpp", "qmljsmodelmanagerinterface.h",
- "qmljsplugindumper.cpp", "qmljsplugindumper.h",
- "qmljspropertyreader.cpp", "qmljspropertyreader.h",
- "qmljsqrcparser.cpp", "qmljsqrcparser.h",
- "qmljsreformatter.cpp", "qmljsreformatter.h",
- "qmljsrewriter.cpp", "qmljsrewriter.h",
- "qmljsscanner.cpp", "qmljsscanner.h",
- "qmljsscopeastpath.cpp", "qmljsscopeastpath.h",
- "qmljsscopebuilder.cpp", "qmljsscopebuilder.h",
- "qmljsscopechain.cpp", "qmljsscopechain.h",
- "qmljssimplereader.cpp", "qmljssimplereader.h",
- "qmljsstaticanalysismessage.cpp", "qmljsstaticanalysismessage.h",
- "qmljstypedescriptionreader.cpp", "qmljstypedescriptionreader.h",
- "qmljsutils.cpp", "qmljsutils.h",
- "qmljsvalueowner.cpp", "qmljsvalueowner.h",
- "qmljsviewercontext.cpp", "qmljsviewercontext.h"
- ]
- }
+ Depends { name: "ExtensionSystem" }
+ Depends { name: "Utils" }
+ Depends { name: "LanguageUtils" }
+ Depends { name: "CPlusPlus" }
+ Depends { name: "Qt"; submodules: ["widgets", "xml"] }
- Group {
- name: "Parser"
- prefix: "parser/"
- files: [
- "qmldirparser.cpp", "qmldirparser_p.h",
- "qmlerror.cpp", "qmlerror.h",
- "qmljsast.cpp", "qmljsast_p.h",
- "qmljsastfwd_p.h",
- "qmljsastvisitor.cpp", "qmljsastvisitor_p.h",
- "qmljsengine_p.cpp", "qmljsengine_p.h",
- "qmljsglobal_p.h",
- "qmljsgrammar.cpp", "qmljsgrammar_p.h",
- "qmljskeywords_p.h",
- "qmljslexer.cpp", "qmljslexer_p.h",
- "qmljsmemorypool_p.h",
- "qmljsparser.cpp", "qmljsparser_p.h",
- ]
- }
+ Group {
+ name: "General"
+ files: [
+ "jsoncheck.cpp", "jsoncheck.h",
+ "persistenttrie.cpp", "persistenttrie.h",
+ "qmljs_global.h",
+ "qmljsbind.cpp", "qmljsbind.h",
+ "qmljsbundle.cpp", "qmljsbundle.h",
+ "qmljscheck.cpp", "qmljscheck.h",
+ "qmljscodeformatter.cpp", "qmljscodeformatter.h",
+ "qmljscompletioncontextfinder.cpp", "qmljscompletioncontextfinder.h",
+ "qmljsconstants.h",
+ "qmljscontext.cpp", "qmljscontext.h",
+ "qmljsdescribevalue.cpp", "qmljsdescribevalue.h",
+ "qmljsdocument.cpp", "qmljsdocument.h",
+ "qmljsevaluate.cpp", "qmljsevaluate.h",
+ "qmljsfindexportedcpptypes.cpp", "qmljsfindexportedcpptypes.h",
+ "qmljsicons.cpp", "qmljsicons.h",
+ "qmljsicontextpane.h",
+ "qmljsimportdependencies.cpp", "qmljsimportdependencies.h",
+ "qmljsindenter.cpp", "qmljsindenter.h",
+ "qmljsinterpreter.cpp", "qmljsinterpreter.h",
+ "qmljsdialect.cpp", "qmljsdialect.h",
+ "qmljslineinfo.cpp", "qmljslineinfo.h",
+ "qmljslink.cpp", "qmljslink.h",
+ "qmljsmodelmanagerinterface.cpp", "qmljsmodelmanagerinterface.h",
+ "qmljsplugindumper.cpp", "qmljsplugindumper.h",
+ "qmljspropertyreader.cpp", "qmljspropertyreader.h",
+ "qmljsqrcparser.cpp", "qmljsqrcparser.h",
+ "qmljsreformatter.cpp", "qmljsreformatter.h",
+ "qmljsrewriter.cpp", "qmljsrewriter.h",
+ "qmljsscanner.cpp", "qmljsscanner.h",
+ "qmljsscopeastpath.cpp", "qmljsscopeastpath.h",
+ "qmljsscopebuilder.cpp", "qmljsscopebuilder.h",
+ "qmljsscopechain.cpp", "qmljsscopechain.h",
+ "qmljssimplereader.cpp", "qmljssimplereader.h",
+ "qmljsstaticanalysismessage.cpp", "qmljsstaticanalysismessage.h",
+ "qmljstypedescriptionreader.cpp", "qmljstypedescriptionreader.h",
+ "qmljsutils.cpp", "qmljsutils.h",
+ "qmljsvalueowner.cpp", "qmljsvalueowner.h",
+ "qmljsviewercontext.cpp", "qmljsviewercontext.h"
+ ]
+ }
- Export {
- Depends { name: "CPlusPlus" }
- Depends { name: "LanguageUtils" }
+ Group {
+ name: "Parser"
+ prefix: "parser/"
+ files: [
+ "qmldirparser.cpp", "qmldirparser_p.h",
+ "qmlerror.cpp", "qmlerror.h",
+ "qmljsast.cpp", "qmljsast_p.h",
+ "qmljsastfwd_p.h",
+ "qmljsastvisitor.cpp", "qmljsastvisitor_p.h",
+ "qmljsengine_p.cpp", "qmljsengine_p.h",
+ "qmljsglobal_p.h",
+ "qmljsgrammar.cpp", "qmljsgrammar_p.h",
+ "qmljskeywords_p.h",
+ "qmljslexer.cpp", "qmljslexer_p.h",
+ "qmljsmemorypool_p.h",
+ "qmljsparser.cpp", "qmljsparser_p.h",
+ ]
+ }
+
+ Export {
+ Depends { name: "CPlusPlus" }
+ Depends { name: "LanguageUtils" }
+ }
}
}
diff --git a/src/plugins/cpptools/cpptools.qbs b/src/plugins/cpptools/cpptools.qbs
index 1cfab29751..db2a45c7f3 100644
--- a/src/plugins/cpptools/cpptools.qbs
+++ b/src/plugins/cpptools/cpptools.qbs
@@ -1,132 +1,136 @@
import qbs 1.0
import qbs.FileInfo
-QtcPlugin {
+Project {
name: "CppTools"
- Depends { name: "Qt.widgets" }
- Depends { name: "CPlusPlus" }
- Depends { name: "Utils" }
+ QtcDevHeaders { }
- Depends { name: "Core" }
- Depends { name: "TextEditor" }
- Depends { name: "ProjectExplorer" }
- Depends { name: "app_version_header" }
+ QtcPlugin {
+ Depends { name: "Qt.widgets" }
+ Depends { name: "CPlusPlus" }
+ Depends { name: "Utils" }
- pluginTestDepends: [
- "CppEditor",
- "QmakeProjectManager",
- ]
+ Depends { name: "Core" }
+ Depends { name: "TextEditor" }
+ Depends { name: "ProjectExplorer" }
+ Depends { name: "app_version_header" }
- cpp.defines: base
- Properties {
- condition: qbs.toolchain.contains("msvc")
- cpp.defines: base.concat("_SCL_SECURE_NO_WARNINGS")
- }
+ pluginTestDepends: [
+ "CppEditor",
+ "QmakeProjectManager",
+ ]
- files: [
- "abstracteditorsupport.cpp", "abstracteditorsupport.h",
- "baseeditordocumentparser.cpp", "baseeditordocumentparser.h",
- "baseeditordocumentprocessor.cpp", "baseeditordocumentprocessor.h",
- "builtineditordocumentparser.cpp", "builtineditordocumentparser.h",
- "builtineditordocumentprocessor.cpp", "builtineditordocumentprocessor.h",
- "builtinindexingsupport.cpp", "builtinindexingsupport.h",
- "clangdiagnosticconfig.cpp", "clangdiagnosticconfig.h",
- "clangdiagnosticconfigsmodel.cpp", "clangdiagnosticconfigsmodel.h",
- "clangdiagnosticconfigswidget.cpp", "clangdiagnosticconfigswidget.h",
- "clangdiagnosticconfigswidget.ui",
- "compileroptionsbuilder.cpp", "compileroptionsbuilder.h",
- "cppchecksymbols.cpp", "cppchecksymbols.h",
- "cppclassesfilter.cpp", "cppclassesfilter.h",
- "cppcodeformatter.cpp", "cppcodeformatter.h",
- "cppcodemodelinspectordumper.cpp", "cppcodemodelinspectordumper.h",
- "cppcodemodelsettings.cpp", "cppcodemodelsettings.h",
- "cppcodemodelsettingspage.cpp", "cppcodemodelsettingspage.h", "cppcodemodelsettingspage.ui",
- "cppcodestylepreferences.cpp", "cppcodestylepreferences.h",
- "cppcodestylepreferencesfactory.cpp", "cppcodestylepreferencesfactory.h",
- "cppcodestylesettings.cpp", "cppcodestylesettings.h",
- "cppcodestylesettingspage.cpp", "cppcodestylesettingspage.h", "cppcodestylesettingspage.ui",
- "cppcompletionassist.cpp", "cppcompletionassist.h",
- "cppcompletionassistprocessor.cpp", "cppcompletionassistprocessor.h",
- "cppcompletionassistprovider.cpp", "cppcompletionassistprovider.h",
- "cppcurrentdocumentfilter.cpp", "cppcurrentdocumentfilter.h",
- "cppdoxygen.cpp", "cppdoxygen.h",
- "cppeditoroutline.cpp", "cppeditoroutline.h",
- "cppfileiterationorder.cpp", "cppfileiterationorder.h",
- "cppfilesettingspage.cpp", "cppfilesettingspage.h", "cppfilesettingspage.ui",
- "cppfindreferences.cpp", "cppfindreferences.h",
- "cppfunctionsfilter.cpp", "cppfunctionsfilter.h",
- "cppincludesfilter.cpp", "cppincludesfilter.h",
- "cppindexingsupport.cpp", "cppindexingsupport.h",
- "cpplocalsymbols.cpp", "cpplocalsymbols.h",
- "cpplocatordata.cpp", "cpplocatordata.h",
- "cpplocatorfilter.cpp", "cpplocatorfilter.h",
- "cppmodelmanager.cpp", "cppmodelmanager.h",
- "cppmodelmanagersupport.cpp", "cppmodelmanagersupport.h",
- "cppmodelmanagersupportinternal.cpp", "cppmodelmanagersupportinternal.h",
- "cpppointerdeclarationformatter.cpp", "cpppointerdeclarationformatter.h",
- "cppprojectfile.cpp", "cppprojectfile.h",
- "cppqtstyleindenter.cpp", "cppqtstyleindenter.h",
- "cpprefactoringchanges.cpp", "cpprefactoringchanges.h",
- "cppselectionchanger.cpp", "cppselectionchanger.h",
- "cppsemanticinfo.cpp", "cppsemanticinfo.h",
- "cppsemanticinfoupdater.cpp", "cppsemanticinfoupdater.h",
- "cppsourceprocessor.cpp", "cppsourceprocessor.h",
- "cpptoolsbridge.cpp", "cpptoolsbridge.h",
- "cpptoolsbridgeinterface.h",
- "cpptoolsbridgeqtcreatorimplementation.cpp", "cpptoolsbridgeqtcreatorimplementation.h",
- "cpptools.qrc",
- "cpptools_global.h",
- "cpptoolsconstants.h",
- "cpptoolsjsextension.cpp", "cpptoolsjsextension.h",
- "cpptoolsplugin.cpp", "cpptoolsplugin.h",
- "cpptoolsreuse.cpp", "cpptoolsreuse.h",
- "cpptoolssettings.cpp", "cpptoolssettings.h",
- "cppworkingcopy.cpp", "cppworkingcopy.h",
- "doxygengenerator.cpp", "doxygengenerator.h",
- "editordocumenthandle.cpp", "editordocumenthandle.h",
- "functionutils.cpp", "functionutils.h",
- "generatedcodemodelsupport.cpp", "generatedcodemodelsupport.h",
- "includeutils.cpp", "includeutils.h",
- "indexitem.cpp", "indexitem.h",
- "insertionpointlocator.cpp", "insertionpointlocator.h",
- "projectinfo.cpp", "projectinfo.h",
- "projectpart.cpp", "projectpart.h",
- "projectpartbuilder.cpp", "projectpartbuilder.h",
- "projectpartheaderpath.h",
- "searchsymbols.cpp", "searchsymbols.h",
- "semantichighlighter.cpp", "semantichighlighter.h",
- "senddocumenttracker.cpp", "senddocumenttracker.h",
- "stringtable.cpp", "stringtable.h",
- "symbolfinder.cpp", "symbolfinder.h",
- "symbolsfindfilter.cpp", "symbolsfindfilter.h",
- "typehierarchybuilder.cpp", "typehierarchybuilder.h",
- ]
+ cpp.defines: base
+ Properties {
+ condition: qbs.toolchain.contains("msvc")
+ cpp.defines: base.concat("_SCL_SECURE_NO_WARNINGS")
+ }
- Group {
- name: "Tests"
- condition: qtc.testsEnabled
files: [
- "cppcodegen_test.cpp",
- "cppcompletion_test.cpp",
- "cppheadersource_test.cpp",
- "cpplocalsymbols_test.cpp",
- "cpplocatorfilter_test.cpp",
- "cppmodelmanager_test.cpp",
- "cpppointerdeclarationformatter_test.cpp",
- "cppsourceprocessertesthelper.cpp", "cppsourceprocessertesthelper.h",
- "cppsourceprocessor_test.cpp",
- "cpptoolstestcase.cpp", "cpptoolstestcase.h",
- "modelmanagertesthelper.cpp", "modelmanagertesthelper.h",
- "symbolsearcher_test.cpp",
- "typehierarchybuilder_test.cpp",
+ "abstracteditorsupport.cpp", "abstracteditorsupport.h",
+ "baseeditordocumentparser.cpp", "baseeditordocumentparser.h",
+ "baseeditordocumentprocessor.cpp", "baseeditordocumentprocessor.h",
+ "builtineditordocumentparser.cpp", "builtineditordocumentparser.h",
+ "builtineditordocumentprocessor.cpp", "builtineditordocumentprocessor.h",
+ "builtinindexingsupport.cpp", "builtinindexingsupport.h",
+ "clangdiagnosticconfig.cpp", "clangdiagnosticconfig.h",
+ "clangdiagnosticconfigsmodel.cpp", "clangdiagnosticconfigsmodel.h",
+ "clangdiagnosticconfigswidget.cpp", "clangdiagnosticconfigswidget.h",
+ "clangdiagnosticconfigswidget.ui",
+ "compileroptionsbuilder.cpp", "compileroptionsbuilder.h",
+ "cppchecksymbols.cpp", "cppchecksymbols.h",
+ "cppclassesfilter.cpp", "cppclassesfilter.h",
+ "cppcodeformatter.cpp", "cppcodeformatter.h",
+ "cppcodemodelinspectordumper.cpp", "cppcodemodelinspectordumper.h",
+ "cppcodemodelsettings.cpp", "cppcodemodelsettings.h",
+ "cppcodemodelsettingspage.cpp", "cppcodemodelsettingspage.h", "cppcodemodelsettingspage.ui",
+ "cppcodestylepreferences.cpp", "cppcodestylepreferences.h",
+ "cppcodestylepreferencesfactory.cpp", "cppcodestylepreferencesfactory.h",
+ "cppcodestylesettings.cpp", "cppcodestylesettings.h",
+ "cppcodestylesettingspage.cpp", "cppcodestylesettingspage.h", "cppcodestylesettingspage.ui",
+ "cppcompletionassist.cpp", "cppcompletionassist.h",
+ "cppcompletionassistprocessor.cpp", "cppcompletionassistprocessor.h",
+ "cppcompletionassistprovider.cpp", "cppcompletionassistprovider.h",
+ "cppcurrentdocumentfilter.cpp", "cppcurrentdocumentfilter.h",
+ "cppdoxygen.cpp", "cppdoxygen.h",
+ "cppeditoroutline.cpp", "cppeditoroutline.h",
+ "cppfileiterationorder.cpp", "cppfileiterationorder.h",
+ "cppfilesettingspage.cpp", "cppfilesettingspage.h", "cppfilesettingspage.ui",
+ "cppfindreferences.cpp", "cppfindreferences.h",
+ "cppfunctionsfilter.cpp", "cppfunctionsfilter.h",
+ "cppincludesfilter.cpp", "cppincludesfilter.h",
+ "cppindexingsupport.cpp", "cppindexingsupport.h",
+ "cpplocalsymbols.cpp", "cpplocalsymbols.h",
+ "cpplocatordata.cpp", "cpplocatordata.h",
+ "cpplocatorfilter.cpp", "cpplocatorfilter.h",
+ "cppmodelmanager.cpp", "cppmodelmanager.h",
+ "cppmodelmanagersupport.cpp", "cppmodelmanagersupport.h",
+ "cppmodelmanagersupportinternal.cpp", "cppmodelmanagersupportinternal.h",
+ "cpppointerdeclarationformatter.cpp", "cpppointerdeclarationformatter.h",
+ "cppprojectfile.cpp", "cppprojectfile.h",
+ "cppqtstyleindenter.cpp", "cppqtstyleindenter.h",
+ "cpprefactoringchanges.cpp", "cpprefactoringchanges.h",
+ "cppselectionchanger.cpp", "cppselectionchanger.h",
+ "cppsemanticinfo.cpp", "cppsemanticinfo.h",
+ "cppsemanticinfoupdater.cpp", "cppsemanticinfoupdater.h",
+ "cppsourceprocessor.cpp", "cppsourceprocessor.h",
+ "cpptoolsbridge.cpp", "cpptoolsbridge.h",
+ "cpptoolsbridgeinterface.h",
+ "cpptoolsbridgeqtcreatorimplementation.cpp", "cpptoolsbridgeqtcreatorimplementation.h",
+ "cpptools.qrc",
+ "cpptools_global.h",
+ "cpptoolsconstants.h",
+ "cpptoolsjsextension.cpp", "cpptoolsjsextension.h",
+ "cpptoolsplugin.cpp", "cpptoolsplugin.h",
+ "cpptoolsreuse.cpp", "cpptoolsreuse.h",
+ "cpptoolssettings.cpp", "cpptoolssettings.h",
+ "cppworkingcopy.cpp", "cppworkingcopy.h",
+ "doxygengenerator.cpp", "doxygengenerator.h",
+ "editordocumenthandle.cpp", "editordocumenthandle.h",
+ "functionutils.cpp", "functionutils.h",
+ "generatedcodemodelsupport.cpp", "generatedcodemodelsupport.h",
+ "includeutils.cpp", "includeutils.h",
+ "indexitem.cpp", "indexitem.h",
+ "insertionpointlocator.cpp", "insertionpointlocator.h",
+ "projectinfo.cpp", "projectinfo.h",
+ "projectpart.cpp", "projectpart.h",
+ "projectpartbuilder.cpp", "projectpartbuilder.h",
+ "projectpartheaderpath.h",
+ "searchsymbols.cpp", "searchsymbols.h",
+ "semantichighlighter.cpp", "semantichighlighter.h",
+ "senddocumenttracker.cpp", "senddocumenttracker.h",
+ "stringtable.cpp", "stringtable.h",
+ "symbolfinder.cpp", "symbolfinder.h",
+ "symbolsfindfilter.cpp", "symbolsfindfilter.h",
+ "typehierarchybuilder.cpp", "typehierarchybuilder.h",
]
- cpp.defines: outer.concat(['SRCDIR="' + FileInfo.path(filePath) + '"'])
- }
+ Group {
+ name: "Tests"
+ condition: qtc.testsEnabled
+ files: [
+ "cppcodegen_test.cpp",
+ "cppcompletion_test.cpp",
+ "cppheadersource_test.cpp",
+ "cpplocalsymbols_test.cpp",
+ "cpplocatorfilter_test.cpp",
+ "cppmodelmanager_test.cpp",
+ "cpppointerdeclarationformatter_test.cpp",
+ "cppsourceprocessertesthelper.cpp", "cppsourceprocessertesthelper.h",
+ "cppsourceprocessor_test.cpp",
+ "cpptoolstestcase.cpp", "cpptoolstestcase.h",
+ "modelmanagertesthelper.cpp", "modelmanagertesthelper.h",
+ "symbolsearcher_test.cpp",
+ "typehierarchybuilder_test.cpp",
+ ]
- Export {
- Depends { name: "CPlusPlus" }
- Depends { name: "Qt.concurrent" }
+ cpp.defines: outer.concat(['SRCDIR="' + FileInfo.path(filePath) + '"'])
+ }
+
+ Export {
+ Depends { name: "CPlusPlus" }
+ Depends { name: "Qt.concurrent" }
+ }
}
}
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.qbs b/src/plugins/qmldesigner/qmldesignerplugin.qbs
index e02756d287..99f8b0d7b8 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.qbs
+++ b/src/plugins/qmldesigner/qmldesignerplugin.qbs
@@ -1,6 +1,5 @@
import qbs 1.0
-
-import QtcPlugin
+import qbs.FileInfo
Project {
name: "QmlDesigner"
@@ -8,6 +7,8 @@ Project {
QtcDevHeaders { }
QtcPlugin {
+ fileName: FileInfo.fileName(filePath)
+
Depends {
name: "Qt";
submodules: [
@@ -59,13 +60,13 @@ Project {
Export {
Depends { name: "QmlJS" }
cpp.includePaths: base.concat([
- ".",
- "components/componentcore",
- "components/formeditor",
- "components/integration",
- "designercore",
- "designercore/include",
- project.ide_source_tree + "/share/qtcreator/qml/qmlpuppet/interfaces",
+ product.sourceDirectory,
+ product.sourceDirectory + "/components/componentcore",
+ product.sourceDirectory + "/components/formeditor",
+ product.sourceDirectory + "/components/integration",
+ product.sourceDirectory + "/designercore",
+ product.sourceDirectory + "/designercore/include",
+ qtc.export_data_base + "/qml/qmlpuppet/interfaces",
])
}