summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/plugins.pro3
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.cpp16
-rw-r--r--src/plugins/qbsprojectmanager/qbsproject.h2
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager.pro21
-rw-r--r--src/plugins/qbsprojectmanager/qbsprojectmanager.qbs18
-rw-r--r--src/src.qbs5
6 files changed, 34 insertions, 31 deletions
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
index 56194aa475..592481aac1 100644
--- a/src/plugins/plugins.pro
+++ b/src/plugins/plugins.pro
@@ -49,7 +49,8 @@ SUBDIRS = \
qnx \
clearcase
-exists(../shared/qbs/qbs.pro): \
+isEmpty(QBS_INSTALL_DIR): QBS_INSTALL_DIR = $$(QBS_INSTALL_DIR)
+exists(../shared/qbs/qbs.pro)|!isEmpty(QBS_INSTALL_DIR): \
SUBDIRS += \
qbsprojectmanager
diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp
index b0e0d44bcc..8f6cde4fc8 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.cpp
+++ b/src/plugins/qbsprojectmanager/qbsproject.cpp
@@ -423,9 +423,9 @@ void QbsProject::parse(const QVariantMap &config, const Environment &env, const
params.setIgnoreDifferentProjectFilePath(false);
params.setEnvironment(env.toProcessEnvironment());
qbs::Preferences *prefs = QbsManager::preferences();
- const QString buildDir = qbsBuildDir();
- params.setSearchPaths(prefs->searchPaths(buildDir));
- params.setPluginPaths(prefs->pluginPaths(buildDir));
+ const QString qbsDir = qbsDirectory();
+ params.setSearchPaths(prefs->searchPaths(qbsDir));
+ params.setPluginPaths(prefs->pluginPaths(qbsDir));
// Do the parsing:
prepareForParsing();
@@ -658,12 +658,12 @@ void QbsProject::updateDeploymentInfo(const qbs::Project *project)
activeTarget()->setDeploymentData(deploymentData);
}
-QString QbsProject::qbsBuildDir() const
+QString QbsProject::qbsDirectory() const
{
- QString buildDir = Environment::systemEnvironment().value(QLatin1String("QBS_BUILD_DIR"));
- if (buildDir.isEmpty())
- buildDir = ICore::resourcePath() + QLatin1String("/qbs");
- return buildDir;
+ const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR);
+ if (!qbsInstallDir.isEmpty())
+ return qbsInstallDir;
+ return ICore::resourcePath() + QLatin1String("/qbs");
}
} // namespace Internal
diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h
index 53f07f40f4..96f3eaa897 100644
--- a/src/plugins/qbsprojectmanager/qbsproject.h
+++ b/src/plugins/qbsprojectmanager/qbsproject.h
@@ -130,7 +130,7 @@ private:
void updateQmlJsCodeModel(const qbs::ProjectData &prj);
void updateApplicationTargets(const qbs::ProjectData &projectData);
void updateDeploymentInfo(const qbs::Project *project);
- QString qbsBuildDir() const;
+ QString qbsDirectory() const;
QbsManager *const m_manager;
const QString m_projectName;
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
index 2c99bc7808..e1d9c9c526 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.pro
@@ -1,18 +1,17 @@
include(../../qtcreatorplugin.pri)
# Look for qbs in the environment
-isEmpty(QBS_SOURCE_DIR): QBS_SOURCE_DIR = $$(QBS_SOURCE_DIR)
-isEmpty(QBS_BUILD_DIR): QBS_BUILD_DIR = $$(QBS_BUILD_DIR)
-# Fallback to the submodule
-isEmpty(QBS_SOURCE_DIR): QBS_SOURCE_DIR = $$PWD/../../shared/qbs
-isEmpty(QBS_BUILD_DIR): QBS_BUILD_DIR = $$IDE_BUILD_TREE/src/shared/qbs
+isEmpty(QBS_INSTALL_DIR): QBS_INSTALL_DIR = $$(QBS_INSTALL_DIR)
+isEmpty(QBS_INSTALL_DIR) {
+ QBS_SOURCE_DIR = $$PWD/../../shared/qbs
+ include($$QBS_SOURCE_DIR/src/lib/use.pri)
+ macx:QMAKE_LFLAGS += -Wl,-rpath,@loader_path/../ # Mac: fix rpath for qbscore soname
+} else {
+ include($${QBS_INSTALL_DIR}/include/qbs/use_installed.pri)
+}
+QBS_INSTALL_DIR_FWD_SLASHES = $$replace(QBS_INSTALL_DIR, \\\\, /)
+DEFINES += QBS_INSTALL_DIR=\\\"$$QBS_INSTALL_DIR_FWD_SLASHES\\\"
-include($$QBS_SOURCE_DIR/src/lib/use.pri)
-# Mac: fix rpath for qbscore soname
-macx:QMAKE_LFLAGS += -Wl,-rpath,@loader_path/../
-
-QBS_BUILD_DIR_FWD_SLASHES = $$replace(QBS_BUILD_DIR, \\\\, /)
-DEFINES += QBS_BUILD_DIR=\\\"$$QBS_BUILD_DIR_FWD_SLASHES\\\"
DEFINES += \
QBSPROJECTMANAGER_LIBRARY
diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
index ec3c357154..4292d6cdd6 100644
--- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
+++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs
@@ -5,11 +5,12 @@ import "../QtcPlugin.qbs" as QtcPlugin
QtcPlugin {
name: "QbsProjectManager"
- property var externalQbsDefines: project.useExternalQbs
- ? ['QBS_BUILD_DIR="' + project.qbs_build_dir +'"'] : []
- property var externalQbsIncludes: project.useExternalQbs ? [project.qbs_source_dir + "/src/lib"] : []
- property var externalQbsLibraryPaths: project.useExternalQbs ? [project.qbs_build_dir + "/lib"] : []
- property var externalQbsRPaths: project.useExternalQbs ? [project.qbs_build_dir + "/lib"] : []
+ property var externalQbsIncludes: project.useExternalQbs
+ ? [project.qbs_install_dir + "/include/qbs"] : []
+ property var externalQbsLibraryPaths: project.useExternalQbs
+ ? [project.qbs_install_dir + "/lib"] : []
+ property var externalQbsRPaths: project.useExternalQbs
+ ? [project.qbs_install_dir + "/lib"] : []
property var externalQbsDynamicLibraries: {
var libs = []
if (!project.useExternalQbs)
@@ -42,8 +43,11 @@ QtcPlugin {
}
cpp.defines: base.concat([
- 'QML_BUILD_STATIC_LIB'
- ]).concat(externalQbsDefines)
+ 'QML_BUILD_STATIC_LIB',
+ 'QBS_INSTALL_DIR="'
+ + (project.useExternalQbs ? project.qbs_install_dir.split("\\").join("/") : '')
+ + '"'
+ ])
cpp.includePaths: base.concat(externalQbsIncludes)
cpp.libraryPaths: base.concat(externalQbsLibraryPaths)
cpp.rpaths: base.concat(externalQbsRPaths)
diff --git a/src/src.qbs b/src/src.qbs
index 1a9c26b43f..11853ff7c5 100644
--- a/src/src.qbs
+++ b/src/src.qbs
@@ -12,9 +12,8 @@ Project {
]
property bool qbsSubModuleExists: File.exists(qbsProject.qbsBaseDir + "/qbs.qbs")
- property path qbs_build_dir: qbs.getenv("QBS_BUILD_DIR")
- property path qbs_source_dir: qbs.getenv("QBS_SOURCE_DIR")
- property bool useExternalQbs: qbs_build_dir && qbs_source_dir
+ property path qbs_install_dir: qbs.getenv("QBS_INSTALL_DIR")
+ property bool useExternalQbs: qbs_install_dir
property bool buildQbsProjectManager: useExternalQbs || qbsSubModuleExists
Project {
name: "qbs"