aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/reference/items/convenience/application.qdoc25
-rw-r--r--doc/reference/items/convenience/dynamiclibrary.qdoc49
-rw-r--r--doc/reference/items/convenience/staticlibrary.qdoc28
-rw-r--r--share/qbs/imports/qbs/base/Application.qbs10
-rw-r--r--share/qbs/imports/qbs/base/DynamicLibrary.qbs20
-rw-r--r--share/qbs/imports/qbs/base/NativeBinary.qbs4
-rw-r--r--share/qbs/imports/qbs/base/StaticLibrary.qbs9
-rw-r--r--share/qbs/modules/qbs/common.qbs2
-rw-r--r--tests/auto/api/testdata/build-single-file/build-single-file.qbs7
-rw-r--r--tests/auto/api/testdata/installed-artifact/installed-artifact.qbs7
-rw-r--r--tests/auto/api/testdata/multi-arch/multi-arch.qbs2
-rw-r--r--tests/auto/api/testdata/recursive-wildcards/recursive-wildcards.qbs1
-rw-r--r--tests/auto/api/testdata/tool-in-module/use-within-project/use-within-project.qbs5
-rw-r--r--tests/auto/blackbox/testdata-apple/apple-dmg/apple-dmg.qbs7
-rw-r--r--tests/auto/blackbox/testdata-apple/apple-multiconfig/apple-multiconfig.qbs70
-rw-r--r--tests/auto/blackbox/testdata-apple/bundle-structure/bundle-structure.qbs56
-rw-r--r--tests/auto/blackbox/testdata-apple/embedInfoPlist/embedInfoPlist.qbs12
-rw-r--r--tests/auto/blackbox/testdata-java/java/vehicles.qbs10
-rw-r--r--tests/auto/blackbox/testdata-qt/cached-qml/cached-qml.qbs9
-rw-r--r--tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs3
-rw-r--r--tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs9
-rw-r--r--tests/auto/blackbox/testdata/exports-qbs/lib.qbs8
-rw-r--r--tests/auto/blackbox/testdata/exports-qbs/tool.qbs3
-rw-r--r--tests/auto/blackbox/testdata/install-locations/install-locations.qbs28
-rw-r--r--tests/auto/blackbox/testdata/install-locations/main.cpp1
-rw-r--r--tests/auto/blackbox/testdata/install-locations/thelib.cpp3
-rw-r--r--tests/auto/blackbox/testdata/install-tree/install-tree.qbs1
-rw-r--r--tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs1
-rw-r--r--tests/auto/blackbox/testdata/installable/installable.qbs7
-rw-r--r--tests/auto/blackbox/testdata/installed-source-files/installed-source-files.qbs1
-rw-r--r--tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs1
-rw-r--r--tests/auto/blackbox/testdata/invalid-install-dir/invalid-install-dir.qbs8
-rw-r--r--tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs7
-rw-r--r--tests/auto/blackbox/testdata/makefile-generator/app.qbs6
-rw-r--r--tests/auto/blackbox/testdata/new-output-artifact/new-output-artifact.qbs1
-rw-r--r--tests/auto/blackbox/testdata/recursive_renaming/recursive_renaming.qbs1
-rw-r--r--tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs1
-rw-r--r--tests/auto/blackbox/testdata/response-files/response-files.qbs1
-rw-r--r--tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs33
-rw-r--r--tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs1
-rw-r--r--tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs7
-rw-r--r--tests/auto/blackbox/testdata/versionscript/versionscript.qbs7
-rw-r--r--tests/auto/blackbox/testdata/wildcard_renaming/wildcard_renaming.qbs1
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp57
-rw-r--r--tests/auto/blackbox/tst_blackbox.h2
-rw-r--r--tests/auto/blackbox/tst_blackboxapple.cpp6
46 files changed, 342 insertions, 196 deletions
diff --git a/doc/reference/items/convenience/application.qdoc b/doc/reference/items/convenience/application.qdoc
index de2bbae48..3c87f51f6 100644
--- a/doc/reference/items/convenience/application.qdoc
+++ b/doc/reference/items/convenience/application.qdoc
@@ -39,9 +39,30 @@
An Application item is a \l{Product} of the \l{Product::}{type}
\c "application".
- It exists for the convenience of project file authors.
-
\note On Android, an Application item instead builds a shared library for
products whose \l{Product::}{consoleApplication} property is set to
\c false.
*/
+
+/*!
+ \qmlproperty bool Application::install
+
+ If \c{true}, the executable that is produced when building the application will be installed
+ to \l installDir.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string Application::installDir
+
+ Where to install the executable that is produced when building the application, if \l install
+ is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ \defaultvalue \c Applications if the app is a \l{bundle::isBundle}{bundle}, \c bin otherwise.
+ \since Qbs 1.13
+*/
diff --git a/doc/reference/items/convenience/dynamiclibrary.qdoc b/doc/reference/items/convenience/dynamiclibrary.qdoc
index 27aa978d1..488aef3eb 100644
--- a/doc/reference/items/convenience/dynamiclibrary.qdoc
+++ b/doc/reference/items/convenience/dynamiclibrary.qdoc
@@ -38,7 +38,7 @@
\brief Dynamic library.
A DynamicLibrary item is a \l{Product} of the \l{Product::}{type}
- \c "dynamiclibrary". It exists for the convenience of project file authors.
+ \c "dynamiclibrary".
For Android targets, the following applies:
\list
@@ -48,3 +48,50 @@
\endlist
*/
+/*!
+ \qmlproperty bool DynamicLibrary::install
+
+ If \c{true}, the library will be installed to \l installDir.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string DynamicLibrary::installDir
+
+ Where to install the library, if \l install is enabled. On Unix, the symbolic links
+ are also installed to this location.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ \defaultvalue \c Library/Frameworks if the library is a \l{bundle::isBundle}{bundle},
+ otherwise \c bin for Windows and \c lib for Unix-like targets.
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty bool DynamicLibrary::installImportLib
+
+ If \c{true}, the import library will be installed to \l importLibInstallDir.
+ This property is only relevant for Windows targets.
+ Enable it if you want to create a development package.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string DynamicLibrary::importLibInstallDir
+
+ Where to install the import library, if \l installImportLib is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
+
+ This property is only relevant for Windows targets.
+
+ \defaultvalue \c lib
+ \since Qbs 1.13
+*/
diff --git a/doc/reference/items/convenience/staticlibrary.qdoc b/doc/reference/items/convenience/staticlibrary.qdoc
index a7a94cc43..cd459cf6e 100644
--- a/doc/reference/items/convenience/staticlibrary.qdoc
+++ b/doc/reference/items/convenience/staticlibrary.qdoc
@@ -37,11 +37,27 @@
\brief Static library.
A StaticLibrary item is a \l{Product}{product} of the \l{Product::}{type}
- \c "staticlibrary" that is normally entirely equivalent to the following:
+ \c "staticlibrary".
+*/
+
+/*!
+ \qmlproperty bool StaticLibrary::install
+
+ If \c{true}, the library will be installed to \l installDir.
+
+ \defaultvalue \c false
+ \since Qbs 1.13
+*/
+
+/*!
+ \qmlproperty string StaticLibrary::installDir
+
+ Where to install the library, if \l install is enabled.
+
+ The value is appended to \l{qbs::installPrefix}{qbs.installPrefix}
+ when constructing the actual installation directory.
- \code
- Product {
- type: "staticlibrary"
- }
- \endcode
+ \defaultvalue \c Library/Frameworks if the library is a \l{bundle::isBundle}{bundle},
+ \c lib otherwise.
+ \since Qbs 1.13
*/
diff --git a/share/qbs/imports/qbs/base/Application.qbs b/share/qbs/imports/qbs/base/Application.qbs
index e16a93761..7f26279c8 100644
--- a/share/qbs/imports/qbs/base/Application.qbs
+++ b/share/qbs/imports/qbs/base/Application.qbs
@@ -36,4 +36,14 @@ NativeBinary {
return ["dynamiclibrary", "android.nativelibrary"];
return ["application"];
}
+
+ installDir: isBundle ? "Applications" : "bin"
+
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : "application";
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
}
diff --git a/share/qbs/imports/qbs/base/DynamicLibrary.qbs b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
index 32d8fec41..4853b9598 100644
--- a/share/qbs/imports/qbs/base/DynamicLibrary.qbs
+++ b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
@@ -32,4 +32,24 @@ import qbs
Library {
type: ["dynamiclibrary"].concat(isForAndroid ? ["android.nativelibrary"] : [])
+
+ installDir: isBundle ? "Library/Frameworks" : qbs.targetOS.contains("windows")
+ ? "bin" : "lib"
+ property bool installImportLib: false
+ property string importLibInstallDir: "lib"
+
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : ["dynamiclibrary", "dynamiclibrary_symlink"]
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
+
+ Group {
+ condition: installImportLib
+ fileTagsFilter: "dynamiclibrary_import"
+ qbs.install: true
+ qbs.installDir: importLibInstallDir
+ }
}
diff --git a/share/qbs/imports/qbs/base/NativeBinary.qbs b/share/qbs/imports/qbs/base/NativeBinary.qbs
index 0a772b60c..ce8f458f4 100644
--- a/share/qbs/imports/qbs/base/NativeBinary.qbs
+++ b/share/qbs/imports/qbs/base/NativeBinary.qbs
@@ -33,6 +33,10 @@ import qbs
Product {
property bool isForAndroid: qbs.targetOS.contains("android")
property bool isForDarwin: qbs.targetOS.contains("darwin")
+ property bool isBundle: isForDarwin && bundle.isBundle
+
+ property bool install: false
+ property string installDir
Depends { name: "bundle" }
diff --git a/share/qbs/imports/qbs/base/StaticLibrary.qbs b/share/qbs/imports/qbs/base/StaticLibrary.qbs
index 1609bdcea..be5f7a7c4 100644
--- a/share/qbs/imports/qbs/base/StaticLibrary.qbs
+++ b/share/qbs/imports/qbs/base/StaticLibrary.qbs
@@ -32,4 +32,13 @@ import qbs
Library {
type: ["staticlibrary"]
+
+ installDir: isBundle ? "Library/Frameworks" : "lib"
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : "staticlibrary";
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
}
diff --git a/share/qbs/modules/qbs/common.qbs b/share/qbs/modules/qbs/common.qbs
index 86ce27c59..4e96a320b 100644
--- a/share/qbs/modules/qbs/common.qbs
+++ b/share/qbs/modules/qbs/common.qbs
@@ -102,7 +102,7 @@ Module {
property path installSourceBase
property string installRoot: project.buildDirectory + "/install-root"
property string installDir
- property string installPrefix: ""
+ property string installPrefix: qbs.targetOS.contains("unix") ? "/usr/local" : ""
property path sysroot
PropertyOptions {
diff --git a/tests/auto/api/testdata/build-single-file/build-single-file.qbs b/tests/auto/api/testdata/build-single-file/build-single-file.qbs
index eeb38a5ff..6389713d9 100644
--- a/tests/auto/api/testdata/build-single-file/build-single-file.qbs
+++ b/tests/auto/api/testdata/build-single-file/build-single-file.qbs
@@ -2,6 +2,7 @@ import qbs
import qbs.TextFile
CppApplication {
+ consoleApplication: true
files: ["ignored1.cpp", "ignored2.cpp", "compiled.cpp"]
cpp.includePaths: [buildDirectory]
@@ -10,10 +11,8 @@ CppApplication {
fileTags: ["cpp_pch_src"]
}
- Group {
- fileTagsFilter: ["application"]
- qbs.install: true
- }
+ install: true
+ installDir: ""
Rule {
multiplex: true
diff --git a/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs b/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs
index e2d18b2ea..4a355c385 100644
--- a/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs
+++ b/tests/auto/api/testdata/installed-artifact/installed-artifact.qbs
@@ -18,11 +18,8 @@ Project {
qbs.installDir: "src"
}
qbs.installPrefix: "/usr"
- Group {
- fileTagsFilter: "application"
- qbs.install: true
- qbs.installDir: "bin"
- }
+ install: true
+ installDir: "bin"
Group {
fileTagsFilter: "obj"
qbs.install: true
diff --git a/tests/auto/api/testdata/multi-arch/multi-arch.qbs b/tests/auto/api/testdata/multi-arch/multi-arch.qbs
index d54809a41..99d9aa817 100644
--- a/tests/auto/api/testdata/multi-arch/multi-arch.qbs
+++ b/tests/auto/api/testdata/multi-arch/multi-arch.qbs
@@ -14,6 +14,7 @@ Project {
files: "host+target.input"
fileTags: "input"
}
+ qbs.installPrefix: ""
Group {
fileTagsFilter: "output"
qbs.install: true
@@ -28,6 +29,7 @@ Project {
files: "host-tool.input"
fileTags: "input"
}
+ qbs.installPrefix: ""
Group {
fileTagsFilter: "output"
qbs.install: true
diff --git a/tests/auto/api/testdata/recursive-wildcards/recursive-wildcards.qbs b/tests/auto/api/testdata/recursive-wildcards/recursive-wildcards.qbs
index a1970e1c4..df54577f6 100644
--- a/tests/auto/api/testdata/recursive-wildcards/recursive-wildcards.qbs
+++ b/tests/auto/api/testdata/recursive-wildcards/recursive-wildcards.qbs
@@ -1,4 +1,5 @@
Product {
+ qbs.installPrefix: ""
Group {
files: "dir/**"
qbs.install: true
diff --git a/tests/auto/api/testdata/tool-in-module/use-within-project/use-within-project.qbs b/tests/auto/api/testdata/tool-in-module/use-within-project/use-within-project.qbs
index bd480fb08..bbeb29664 100644
--- a/tests/auto/api/testdata/tool-in-module/use-within-project/use-within-project.qbs
+++ b/tests/auto/api/testdata/tool-in-module/use-within-project/use-within-project.qbs
@@ -3,12 +3,15 @@ import qbs
Project {
CppApplication {
name: "thetool"
+ consoleApplication: true
files: "main.cpp"
+ install: true
+ installDir: ""
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["application"]
fileTags: ["thetool.thetool"]
- qbs.install: true
}
Export {
diff --git a/tests/auto/blackbox/testdata-apple/apple-dmg/apple-dmg.qbs b/tests/auto/blackbox/testdata-apple/apple-dmg/apple-dmg.qbs
index 3bccebfd0..010e5f7c7 100644
--- a/tests/auto/blackbox/testdata-apple/apple-dmg/apple-dmg.qbs
+++ b/tests/auto/blackbox/testdata-apple/apple-dmg/apple-dmg.qbs
@@ -18,12 +18,7 @@ Project {
targetName: "My Great App"
files: ["main.c"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installDir: "/Applications"
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
}
AppleDiskImage {
diff --git a/tests/auto/blackbox/testdata-apple/apple-multiconfig/apple-multiconfig.qbs b/tests/auto/blackbox/testdata-apple/apple-multiconfig/apple-multiconfig.qbs
index ae2fcd402..ea67b6e44 100644
--- a/tests/auto/blackbox/testdata-apple/apple-multiconfig/apple-multiconfig.qbs
+++ b/tests/auto/blackbox/testdata-apple/apple-multiconfig/apple-multiconfig.qbs
@@ -17,11 +17,8 @@ Project {
aggregate: false
multiplexByQbsProperties: []
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
CppApplication {
@@ -38,11 +35,8 @@ Project {
qbs.architectures: ["x86_64"]
qbs.buildVariants: ["release"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -58,11 +52,8 @@ Project {
aggregate: false
multiplexByQbsProperties: []
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
CppApplication {
@@ -74,11 +65,8 @@ Project {
cpp.rpaths: [cpp.rpathOrigin + "/../../../"]
cpp.minimumMacosVersion: "10.5"
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
CppApplication {
@@ -91,11 +79,8 @@ Project {
cpp.minimumMacosVersion: "10.5"
qbs.architectures: ["x86", "x86_64"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
CppApplication {
@@ -109,11 +94,8 @@ Project {
qbs.architectures: ["x86", "x86_64"]
qbs.buildVariants: ["debug", "profile"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -127,11 +109,8 @@ Project {
qbs.architectures: ["x86", "x86_64"]
qbs.buildVariants: ["release", "debug", "profile"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -145,11 +124,8 @@ Project {
qbs.architectures: ["x86", "x86_64"]
qbs.buildVariants: ["debug", "profile"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -162,11 +138,8 @@ Project {
cpp.defines: ["VARIANT=" + Utilities.cStringQuote(qbs.buildVariant)]
qbs.architectures: ["x86", "x86_64"]
qbs.buildVariants: ["debug", "profile"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
Depends { name: "cpp" }
@@ -177,10 +150,7 @@ Project {
cpp.defines: ["VARIANT=" + Utilities.cStringQuote(qbs.buildVariant)]
qbs.architectures: ["x86", "x86_64"]
qbs.buildVariants: ["debug", "profile"]
- Group {
- fileTagsFilter: ["bundle.content"]
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
}
diff --git a/tests/auto/blackbox/testdata-apple/bundle-structure/bundle-structure.qbs b/tests/auto/blackbox/testdata-apple/bundle-structure/bundle-structure.qbs
index a7c3e20bf..13a205730 100644
--- a/tests/auto/blackbox/testdata-apple/bundle-structure/bundle-structure.qbs
+++ b/tests/auto/blackbox/testdata-apple/bundle-structure/bundle-structure.qbs
@@ -17,11 +17,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
Application {
@@ -37,11 +34,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
Application {
@@ -57,11 +51,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -73,11 +64,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
StaticLibrary {
@@ -89,11 +77,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
LoadableModule {
@@ -105,11 +90,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
ApplicationExtension {
@@ -121,11 +103,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
XPCService {
@@ -137,11 +116,8 @@ Project {
bundle.privateHeaders: ["dummy_p.h"]
bundle.resources: ["resource.txt"]
files: ["dummy.c"]
- Group {
- fileTagsFilter: product.type.concat(project.bundleFileTags)
- qbs.install: true
- qbs.installSourceBase: product.buildDirectory
- }
+ install: true
+ installDir: ""
}
Product {
diff --git a/tests/auto/blackbox/testdata-apple/embedInfoPlist/embedInfoPlist.qbs b/tests/auto/blackbox/testdata-apple/embedInfoPlist/embedInfoPlist.qbs
index c0d77aefd..87f6c1750 100644
--- a/tests/auto/blackbox/testdata-apple/embedInfoPlist/embedInfoPlist.qbs
+++ b/tests/auto/blackbox/testdata-apple/embedInfoPlist/embedInfoPlist.qbs
@@ -13,10 +13,8 @@ Project {
bundle.infoPlist: ({
"QBS": "org.qt-project.qbs.testdata.embedInfoPlist"
})
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
+ install: true
+ installDir: ""
}
DynamicLibrary {
@@ -30,10 +28,8 @@ Project {
bundle.infoPlist: ({
"QBS": "org.qt-project.qbs.testdata.embedInfoPlist.dylib"
})
- Group {
- fileTagsFilter: product.type
- qbs.install: true
- }
+ install: true
+ installDir: ""
}
LoadableModule {
diff --git a/tests/auto/blackbox/testdata-java/java/vehicles.qbs b/tests/auto/blackbox/testdata-java/java/vehicles.qbs
index 86d1f7d32..4051bb6e4 100644
--- a/tests/auto/blackbox/testdata-java/java/vehicles.qbs
+++ b/tests/auto/blackbox/testdata-java/java/vehicles.qbs
@@ -14,10 +14,9 @@ Project {
name: "native"
files: ["engine.c"]
- Group {
- fileTagsFilter: ["dynamiclibrary"]
- qbs.install: true
- }
+ qbs.installPrefix: ""
+ install: true
+ installDir: ""
}
JavaClassCollection {
@@ -44,6 +43,7 @@ Project {
name: "random_stuff"
files: ["RandomStuff.java"]
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["java.jar"]
qbs.install: true
@@ -78,6 +78,7 @@ Project {
java.manifestClassPath: [product.targetName + ".jar"]
}
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["java.jar"]
qbs.install: true
@@ -98,6 +99,7 @@ Project {
return mf;
}
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["java.jar"]
qbs.install: true
diff --git a/tests/auto/blackbox/testdata-qt/cached-qml/cached-qml.qbs b/tests/auto/blackbox/testdata-qt/cached-qml/cached-qml.qbs
index 398d3f4a9..db9dcae0c 100644
--- a/tests/auto/blackbox/testdata-qt/cached-qml/cached-qml.qbs
+++ b/tests/auto/blackbox/testdata-qt/cached-qml/cached-qml.qbs
@@ -2,9 +2,13 @@ import qbs
CppApplication {
name: "app"
+ consoleApplication: true
Depends { name: "Qt.core" }
Depends { name: "Qt.quick" }
Depends { name: "Qt.qml" }
+ install: true
+ installDir: ""
+ qbs.installPrefix: ""
Qt.qml.generateCacheFiles: true
Qt.qml.cacheFilesInstallDir: "data"
@@ -15,11 +19,6 @@ CppApplication {
"stuff.js"
]
- Group {
- fileTagsFilter: ["application"]
- qbs.install: true
- }
-
// Install the C++ sources to tell the blackbox test that Qt.qmlcache is not available.
Group {
condition: !Qt.qml.cachingEnabled
diff --git a/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs b/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
index 6850ee138..24c3ef075 100644
--- a/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
+++ b/tests/auto/blackbox/testdata/autotest-with-dependencies/autotest-with-dependencies.qbs
@@ -6,13 +6,12 @@ Project {
name: "helper-app"
type: ["application", "test-helper"]
consoleApplication: true
+ install: true
files: "helper-main.cpp"
cpp.executableSuffix: ".exe"
Group {
fileTagsFilter: "application"
fileTags: "test-helper"
- qbs.install: true
- qbs.installDir: "bin"
}
}
CppApplication {
diff --git a/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs b/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
index 0f897df67..565402a31 100644
--- a/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
+++ b/tests/auto/blackbox/testdata/dynamic-library-in-module/Dll.qbs
@@ -9,8 +9,9 @@ DynamicLibrary {
cpp.minimumMacosVersion: "10.5" // For -rpath
}
- Group {
- fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
- qbs.install: true
- }
+ install: true
+ installImportLib: true
+ qbs.installPrefix: ""
+ installDir: ""
+ importLibInstallDir: ""
}
diff --git a/tests/auto/blackbox/testdata/exports-qbs/lib.qbs b/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
index 6ae0885d5..54f524c23 100644
--- a/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
+++ b/tests/auto/blackbox/testdata/exports-qbs/lib.qbs
@@ -28,11 +28,9 @@ DynamicLibrary {
qbs.install: true
qbs.installDir: headersInstallDir
}
- Group {
- fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
- qbs.install: true
- qbs.installDir: "lib"
- }
+ install: true
+ installImportLib: true
+ installDir: "lib"
Group {
fileTagsFilter: ["Exporter.qbs.module"]
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/exports-qbs/tool.qbs b/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
index b0078a75c..01521405f 100644
--- a/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
+++ b/tests/auto/blackbox/testdata/exports-qbs/tool.qbs
@@ -11,6 +11,7 @@ CppApplication {
Depends { name: "Exporter.qbs" }
Exporter.qbs.artifactTypes: ["installable", "blubb"]
files: ["tool.cpp"]
+ install: true
qbs.installPrefix: project.installPrefix
Group {
files: ["helper.js"]
@@ -25,8 +26,6 @@ CppApplication {
Group {
fileTagsFilter: ["application"]
- qbs.install: true
- qbs.installDir: "bin"
fileTags: toolTags
}
Group {
diff --git a/tests/auto/blackbox/testdata/install-locations/install-locations.qbs b/tests/auto/blackbox/testdata/install-locations/install-locations.qbs
new file mode 100644
index 000000000..7bdb3f396
--- /dev/null
+++ b/tests/auto/blackbox/testdata/install-locations/install-locations.qbs
@@ -0,0 +1,28 @@
+import qbs
+
+Project {
+ property bool dummy: {
+ if (qbs.targetOS.contains("windows"))
+ console.info("is windows");
+ else if (qbs.targetOS.contains("macos"))
+ console.info("is mac");
+ else
+ console.info("is unix");
+ }
+ CppApplication {
+ name: "theapp"
+ install: true
+ files: "main.cpp"
+ Group {
+ fileTagsFilter: "application"
+ fileTags: "some-tag"
+ }
+ }
+ DynamicLibrary {
+ name: "thelib"
+ install: true
+ installImportLib: true
+ Depends { name: "cpp" }
+ files: "thelib.cpp"
+ }
+}
diff --git a/tests/auto/blackbox/testdata/install-locations/main.cpp b/tests/auto/blackbox/testdata/install-locations/main.cpp
new file mode 100644
index 000000000..237c8ce18
--- /dev/null
+++ b/tests/auto/blackbox/testdata/install-locations/main.cpp
@@ -0,0 +1 @@
+int main() {}
diff --git a/tests/auto/blackbox/testdata/install-locations/thelib.cpp b/tests/auto/blackbox/testdata/install-locations/thelib.cpp
new file mode 100644
index 000000000..d3877db26
--- /dev/null
+++ b/tests/auto/blackbox/testdata/install-locations/thelib.cpp
@@ -0,0 +1,3 @@
+#include "../dllexport.h"
+
+DLL_EXPORT void libFunc() {}
diff --git a/tests/auto/blackbox/testdata/install-tree/install-tree.qbs b/tests/auto/blackbox/testdata/install-tree/install-tree.qbs
index cbd7300d6..69571d58a 100644
--- a/tests/auto/blackbox/testdata/install-tree/install-tree.qbs
+++ b/tests/auto/blackbox/testdata/install-tree/install-tree.qbs
@@ -2,6 +2,7 @@ import qbs
CppApplication {
files: ["main.cpp"]
+ qbs.installPrefix: ""
Group {
files: ["data/**/*.txt"]
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs b/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
index 822473157..75ff10c80 100644
--- a/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
+++ b/tests/auto/blackbox/testdata/installable-as-auxiliary-input/installable-as-auxiliary-input.qbs
@@ -34,6 +34,7 @@ Project {
property string installDir: "include"
+ qbs.installPrefix: ""
Group {
fileTagsFilter: "header"
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/installable/installable.qbs b/tests/auto/blackbox/testdata/installable/installable.qbs
index 7ce41867b..eeb0875ad 100644
--- a/tests/auto/blackbox/testdata/installable/installable.qbs
+++ b/tests/auto/blackbox/testdata/installable/installable.qbs
@@ -5,15 +5,14 @@ Project {
CppApplication {
type: ["application"]
name: "app"
+ consoleApplication: true
Group {
files: ["main.cpp"]
qbs.install: true
}
- Group {
- fileTagsFilter: ["application"]
- qbs.install: true
- }
+ install: true
+ installDir: ""
}
Product {
diff --git a/tests/auto/blackbox/testdata/installed-source-files/installed-source-files.qbs b/tests/auto/blackbox/testdata/installed-source-files/installed-source-files.qbs
index 1aa564553..fca3fcca3 100644
--- a/tests/auto/blackbox/testdata/installed-source-files/installed-source-files.qbs
+++ b/tests/auto/blackbox/testdata/installed-source-files/installed-source-files.qbs
@@ -3,6 +3,7 @@ import qbs
CppApplication {
consoleApplication: true
files: ["main.cpp"]
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["cpp"]
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs b/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
index 99acc5585..244f80abe 100644
--- a/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
+++ b/tests/auto/blackbox/testdata/installed-transformer-output/qbs668.qbs
@@ -4,6 +4,7 @@ import qbs.TextFile
Product {
name: "install-test"
type: ["text"]
+ qbs.installPrefix: ""
Group {
qbs.install: true
qbs.installDir: "textfiles"
diff --git a/tests/auto/blackbox/testdata/invalid-install-dir/invalid-install-dir.qbs b/tests/auto/blackbox/testdata/invalid-install-dir/invalid-install-dir.qbs
index f4a608904..ffa92dabb 100644
--- a/tests/auto/blackbox/testdata/invalid-install-dir/invalid-install-dir.qbs
+++ b/tests/auto/blackbox/testdata/invalid-install-dir/invalid-install-dir.qbs
@@ -3,9 +3,7 @@ import qbs
CppApplication {
consoleApplication: true
files: ["main.cpp"]
- Group {
- fileTagsFilter: ["application"]
- qbs.install: true
- qbs.installDir: "../whatever"
- }
+ qbs.installPrefix: ""
+ install: true
+ installDir: "../whatever"
}
diff --git a/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs b/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
index 6d94da346..1601baf3c 100644
--- a/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
+++ b/tests/auto/blackbox/testdata/linkerscripts/linkerscripts.qbs
@@ -23,8 +23,7 @@ DynamicLibrary {
}
}
- Group {
- fileTagsFilter: ["dynamiclibrary"]
- qbs.install: true
- }
+ qbs.installPrefix: ""
+ install: true
+ installDir: ""
}
diff --git a/tests/auto/blackbox/testdata/makefile-generator/app.qbs b/tests/auto/blackbox/testdata/makefile-generator/app.qbs
index 103f71ecf..c0f423d5c 100644
--- a/tests/auto/blackbox/testdata/makefile-generator/app.qbs
+++ b/tests/auto/blackbox/testdata/makefile-generator/app.qbs
@@ -14,9 +14,5 @@ CppApplication {
files: "main.cpp"
qbs.installPrefix: "/usr/local"
- Group {
- fileTagsFilter: "application"
- qbs.install: true
- qbs.installDir: "bin"
- }
+ install: true
}
diff --git a/tests/auto/blackbox/testdata/new-output-artifact/new-output-artifact.qbs b/tests/auto/blackbox/testdata/new-output-artifact/new-output-artifact.qbs
index 10e0e4305..fa70aee8d 100644
--- a/tests/auto/blackbox/testdata/new-output-artifact/new-output-artifact.qbs
+++ b/tests/auto/blackbox/testdata/new-output-artifact/new-output-artifact.qbs
@@ -9,6 +9,7 @@ Product {
files: ["input.txt"]
fileTags: ["input"]
}
+ qbs.installPrefix: ""
Group {
fileTagsFilter: product.type
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/recursive_renaming/recursive_renaming.qbs b/tests/auto/blackbox/testdata/recursive_renaming/recursive_renaming.qbs
index 5c2c4ec48..0ed6fa72f 100644
--- a/tests/auto/blackbox/testdata/recursive_renaming/recursive_renaming.qbs
+++ b/tests/auto/blackbox/testdata/recursive_renaming/recursive_renaming.qbs
@@ -1,6 +1,7 @@
import qbs 1.0
Product {
+ qbs.installPrefix: ""
Group {
qbs.install: true
qbs.installSourceBase: "."
diff --git a/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs b/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
index 703a65e0e..dc993ae23 100644
--- a/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
+++ b/tests/auto/blackbox/testdata/recursive_wildcards/recursive_wildcards.qbs
@@ -3,6 +3,7 @@ import qbs.TextFile
Product {
type: ["txt.out"]
+ qbs.installPrefix: ""
Group {
files: "dir/**"
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/response-files/response-files.qbs b/tests/auto/blackbox/testdata/response-files/response-files.qbs
index 73eb720fe..1e1e75314 100644
--- a/tests/auto/blackbox/testdata/response-files/response-files.qbs
+++ b/tests/auto/blackbox/testdata/response-files/response-files.qbs
@@ -13,6 +13,7 @@ Project {
type: ["text"]
Depends { name: "cpp" }
Depends { name: "cat-response-file" }
+ qbs.installPrefix: ""
Group {
fileTagsFilter: ["text"]
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs b/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
index 9f841effd..8a5312d75 100644
--- a/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
+++ b/tests/auto/blackbox/testdata/setup-run-environment/setup-run-environment.qbs
@@ -8,12 +8,11 @@ Project {
files: ["lib1.cpp"]
- Group {
- condition: !qbs.targetOS.contains("darwin")
- fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
- qbs.install: true
- qbs.installDir: "/lib1"
- }
+ install: !qbs.targetOS.contains("darwin")
+ installImportLib: true
+ installDir: "lib1"
+ importLibInstallDir: installDir
+
Group {
condition: qbs.targetOS.contains("darwin")
fileTagsFilter: ["bundle.content"]
@@ -41,16 +40,15 @@ Project {
files: ["lib3.cpp"]
- Properties {
+ Properties {
condition: qbs.targetOS.contains("darwin")
bundle.isBundle: false
}
- Group {
- fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
- qbs.install: true
- qbs.installDir: "/lib3"
- }
+ install: true
+ installImportLib: true
+ installDir: "lib3"
+ importLibInstallDir: installDir
}
DynamicLibrary { // Non-dependency, referred to by name
@@ -59,16 +57,15 @@ Project {
files: ["lib4.cpp"]
- Properties {
+ Properties {
condition: qbs.targetOS.contains("darwin")
bundle.isBundle: false
}
- Group {
- fileTagsFilter: ["dynamiclibrary", "dynamiclibrary_import"]
- qbs.install: true
- qbs.installDir: "/lib4"
- }
+ install: true
+ installImportLib: true
+ installDir: "lib4"
+ importLibInstallDir: installDir
}
DynamicLibrary { // Recursive product dependency
diff --git a/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs b/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
index 81778d6f7..7f9fa3000 100644
--- a/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
+++ b/tests/auto/blackbox/testdata/system-run-paths/system-run-paths.qbs
@@ -6,6 +6,7 @@ Project {
name: "theLib"
type: ["dynamiclibrary"]
Depends { name: "cpp" }
+ qbs.installPrefix: ""
Group {
fileTagsFilter: product.type
qbs.install: true
diff --git a/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs b/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
index b919f84eb..a1dff378e 100644
--- a/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
+++ b/tests/auto/blackbox/testdata/variant-suffix/variant-suffix.qbs
@@ -22,11 +22,8 @@ StaticLibrary {
cpp.staticLibraryPrefix: "lib"
cpp.staticLibrarySuffix: ".ext"
- Group {
- fileTagsFilter: ["staticlibrary"]
- qbs.install: true
- qbs.installDir: "lib"
- }
+ qbs.installPrefix: ""
+ install: true
Depends { name: "cpp" }
diff --git a/tests/auto/blackbox/testdata/versionscript/versionscript.qbs b/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
index 24035a84d..5af798f5f 100644
--- a/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
+++ b/tests/auto/blackbox/testdata/versionscript/versionscript.qbs
@@ -23,8 +23,7 @@ DynamicLibrary {
}
}
- Group {
- fileTagsFilter: ["dynamiclibrary"]
- qbs.install: true
- }
+ qbs.installPrefix: ""
+ install: true
+ installDir: ""
}
diff --git a/tests/auto/blackbox/testdata/wildcard_renaming/wildcard_renaming.qbs b/tests/auto/blackbox/testdata/wildcard_renaming/wildcard_renaming.qbs
index 4cb2c071c..68043f991 100644
--- a/tests/auto/blackbox/testdata/wildcard_renaming/wildcard_renaming.qbs
+++ b/tests/auto/blackbox/testdata/wildcard_renaming/wildcard_renaming.qbs
@@ -1,6 +1,7 @@
import qbs 1.0
Product {
+ qbs.installPrefix: ""
Group {
qbs.install: true
files: "*"
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 8da721f28..3c03c6b3e 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -3443,6 +3443,59 @@ void TestBlackbox::installedTransformerOutput()
QVERIFY2(QFile::exists(installedFilePath), qPrintable(installedFilePath));
}
+void TestBlackbox::installLocations_data()
+{
+ QTest::addColumn<QString>("binDir");
+ QTest::addColumn<QString>("dllDir");
+ QTest::addColumn<QString>("libDir");
+ QTest::newRow("explicit values") << QString("bindir") << QString("dlldir") << QString("libdir");
+ QTest::newRow("default values") << QString() << QString() << QString();
+}
+
+void TestBlackbox::installLocations()
+{
+ QDir::setCurrent(testDataDir + "/install-locations");
+ QFETCH(QString, binDir);
+ QFETCH(QString, dllDir);
+ QFETCH(QString, libDir);
+ QbsRunParameters params("resolve");
+ if (!binDir.isEmpty())
+ params.arguments.push_back("products.theapp.installDir:" + binDir);
+ if (!dllDir.isEmpty())
+ params.arguments.push_back("products.thelib.installDir:" + dllDir);
+ if (!libDir.isEmpty())
+ params.arguments.push_back("products.thelib.importLibInstallDir:" + libDir);
+ QCOMPARE(runQbs(params), 0);
+ const bool isWindows = m_qbsStdout.contains("is windows");
+ const bool isMac = m_qbsStdout.contains("is mac");
+ const bool isUnix = m_qbsStdout.contains("is unix");
+ QVERIFY(isWindows || isMac || isUnix);
+ QCOMPARE(runQbs(QbsRunParameters(QStringList("--clean-install-root"))), 0);
+ const QString dllFileName = isWindows ? "thelib.dll" : isMac ? "thelib" : "libthelib.so";
+ const QString appFileName = isWindows ? "theapp.exe" : "theapp";
+ if (binDir.isEmpty())
+ binDir = isMac ? "/Applications" : "/bin";
+ if (dllDir.isEmpty())
+ dllDir = isMac ? "/Library/Frameworks" : isWindows ? "/bin" : "/lib";
+ if (libDir.isEmpty())
+ libDir = "/lib";
+ if (isMac) {
+ binDir += "/theapp.app/Contents/MacOS";
+ dllDir += "/thelib.framework";
+ }
+ const QString installRoot = QDir::currentPath() + "/default/install-root";
+ const QString installPrefix = isWindows ? QString() : "/usr/local";
+ const QString fullInstallPrefix = installRoot + '/' + installPrefix + '/';
+ const QString appFilePath = fullInstallPrefix + binDir + '/' + appFileName;
+ QVERIFY2(QFile::exists(appFilePath), qPrintable(appFilePath));
+ const QString dllFilePath = fullInstallPrefix + dllDir + '/' + dllFileName;
+ QVERIFY2(QFile::exists(dllFilePath), qPrintable(dllFilePath));
+ if (isWindows) {
+ const QString libFilePath = fullInstallPrefix + libDir + "/thelib.lib";
+ QVERIFY2(QFile::exists(libFilePath), qPrintable(libFilePath));
+ }
+}
+
void TestBlackbox::inputsFromDependencies()
{
QDir::setCurrent(testDataDir + "/inputs-from-dependencies");
@@ -3847,7 +3900,7 @@ void TestBlackbox::symbolLinkMode()
QbsRunParameters params;
params.command = "run";
const QStringList commonArgs{"-p", "driver", "--setup-run-env-config",
- "ignore-lib-dependencies"};
+ "ignore-lib-dependencies", "qbs.installPrefix:''"};
rmDirR(relativeBuildDir());
params.arguments = QStringList() << commonArgs << "project.shouldInstallLibrary:true";
@@ -3879,7 +3932,7 @@ void TestBlackbox::linkerMode()
QSKIP("only applies on Unix");
QDir::setCurrent(testDataDir + "/linkerMode");
- QCOMPARE(runQbs(), 0);
+ QCOMPARE(runQbs(QbsRunParameters(QStringList("qbs.installPrefix:''"))), 0);
auto testCondition = [&](const QString &lang,
const std::function<bool(const QByteArray &)> &condition) {
diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h
index 33c365fda..af95e12a6 100644
--- a/tests/auto/blackbox/tst_blackbox.h
+++ b/tests/auto/blackbox/tst_blackbox.h
@@ -133,6 +133,8 @@ private slots:
void installDuplicatesNoError();
void installedSourceFiles();
void installedTransformerOutput();
+ void installLocations_data();
+ void installLocations();
void installPackage();
void installRootFromProjectFile();
void installTree();
diff --git a/tests/auto/blackbox/tst_blackboxapple.cpp b/tests/auto/blackbox/tst_blackboxapple.cpp
index 6fc526cd8..64aca99f1 100644
--- a/tests/auto/blackbox/tst_blackboxapple.cpp
+++ b/tests/auto/blackbox/tst_blackboxapple.cpp
@@ -77,7 +77,7 @@ void TestBlackboxApple::initTestCase()
void TestBlackboxApple::appleMultiConfig()
{
QDir::setCurrent(testDataDir + "/apple-multiconfig");
- QCOMPARE(runQbs(), 0);
+ QCOMPARE(runQbs(QbsRunParameters(QStringList{"qbs.installPrefix:''"})), 0);
QVERIFY(QFileInfo2(defaultInstallRoot + "/singleapp.app/Contents/MacOS/singleapp").isExecutable());
QVERIFY(QFileInfo2(defaultInstallRoot + "/singleapp.app/Contents/Info.plist").isRegularFile());
@@ -285,7 +285,7 @@ void TestBlackboxApple::bundleStructure()
QFETCH(bool, isShallow);
QDir::setCurrent(testDataDir + "/bundle-structure");
- QbsRunParameters params;
+ QbsRunParameters params(QStringList{"qbs.installPrefix:''"});
params.arguments << "project.buildableProducts:" + productName;
if (isShallow) {
// Coerce shallow bundles - don't set bundle.isShallow directly because we want to test the
@@ -624,7 +624,7 @@ void TestBlackboxApple::embedInfoPlist()
{
QDir::setCurrent(testDataDir + QLatin1String("/embedInfoPlist"));
- QbsRunParameters params;
+ QbsRunParameters params(QStringList{"qbs.installPrefix:''"});
QCOMPARE(runQbs(params), 0);
QVERIFY(!getEmbeddedBinaryPlist(defaultInstallRoot + "/app").isEmpty());