aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/builtindeclarations.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-05-09 17:17:42 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-05-13 10:40:53 +0200
commit6d5de545c4e67289f973cf6ba9bdbbaeb4eb4a99 (patch)
tree275df0914bd1e47fc0120ce5da9857c4cf690e84 /src/lib/corelib/language/builtindeclarations.cpp
parent33f0e83c0cd2c2f149f2b03ac7cb4ba9dd22fb1a (diff)
Introduce sensible build directory values.
Currently, all products share the same build directory, and rules are responsible for making their artifact file paths unique, which is annoying for module authors and introduces lots of code duplication. Instead, make the product build directories unique and let these directories be the base directory of relative artifact file paths. Also export the top-level build dir as project.buildDirectory to the JavaScript side so rules can refer to that one if necessary. Task-number: QBS-567 Change-Id: I257d37cad01ec6dece3e214799b917149677d80c Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/language/builtindeclarations.cpp')
-rw-r--r--src/lib/corelib/language/builtindeclarations.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp
index f3ec6ec2e..b8c056a3f 100644
--- a/src/lib/corelib/language/builtindeclarations.cpp
+++ b/src/lib/corelib/language/builtindeclarations.cpp
@@ -109,6 +109,11 @@ static PropertyDeclaration nameProperty()
return PropertyDeclaration(QLatin1String("name"), PropertyDeclaration::String);
}
+static PropertyDeclaration buildDirProperty()
+{
+ return PropertyDeclaration(QLatin1String("buildDirectory"), PropertyDeclaration::Path);
+}
+
static PropertyDeclaration prepareScriptProperty()
{
PropertyDeclaration decl(QLatin1String("prepare"), PropertyDeclaration::Verbatim);
@@ -241,9 +246,9 @@ void BuiltinDeclarations::addProductItem()
item << nameProperty();
decl = PropertyDeclaration(QLatin1String("targetName"), PropertyDeclaration::String);
decl.setInitialValueSource(QLatin1String("name"));
+ item << buildDirProperty();
item << decl;
decl = PropertyDeclaration(QLatin1String("destinationDirectory"), PropertyDeclaration::String);
- decl.setInitialValueSource(QLatin1String("'.'"));
item << decl;
item << PropertyDeclaration(QLatin1String("consoleApplication"),
PropertyDeclaration::Boolean);
@@ -268,6 +273,7 @@ void BuiltinDeclarations::addProjectItem()
<< QLatin1String("Rule"));
item << nameProperty();
item << conditionProperty();
+ item << buildDirProperty();
item << PropertyDeclaration(QLatin1String("references"), PropertyDeclaration::Variant,
PropertyDeclaration::PropertyNotAvailableInConfig);
item << PropertyDeclaration(QLatin1String("qbsSearchPaths"),