diff options
-rw-r--r-- | qbs.pro | 2 | ||||
-rw-r--r-- | src/app/qbs/commandlinefrontend.cpp | 2 | ||||
-rw-r--r-- | src/app/qbs/qbs.pro | 2 | ||||
-rw-r--r-- | src/app/qbs/qbs.qbs | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/setupprojectparameters.cpp | 18 | ||||
-rw-r--r-- | src/lib/corelib/tools/setupprojectparameters.h | 3 | ||||
-rw-r--r-- | src/libexec/libexec.pro | 1 | ||||
-rw-r--r-- | src/libexec/libexec.qbs | 6 | ||||
-rw-r--r-- | src/src.qbs | 1 | ||||
-rw-r--r-- | tests/auto/api/api.pro | 2 | ||||
-rw-r--r-- | tests/auto/api/api.qbs | 1 | ||||
-rw-r--r-- | tests/auto/api/tst_api.cpp | 2 |
13 files changed, 43 insertions, 0 deletions
@@ -32,12 +32,14 @@ setupqtprofilelib.subdir = src/lib/qtprofilesetup setupqtprofilelib.depends = corelib src_app.subdir = src/app src_app.depends = setupqtprofilelib +src_libexec.subdir = src/libexec src_plugins.subdir = src/plugins tests.depends = corelib src_plugins SUBDIRS += \ corelib\ setupqtprofilelib\ src_app\ + src_libexec\ src_plugins\ static.pro\ tests diff --git a/src/app/qbs/commandlinefrontend.cpp b/src/app/qbs/commandlinefrontend.cpp index e6fa0c725..b8138a39f 100644 --- a/src/app/qbs/commandlinefrontend.cpp +++ b/src/app/qbs/commandlinefrontend.cpp @@ -157,6 +157,8 @@ void CommandLineFrontend::start() + QLatin1String("/" QBS_RELATIVE_SEARCH_PATH)))); params.setPluginPaths(prefs.pluginPaths(QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String("/" QBS_RELATIVE_PLUGINS_PATH)))); + params.setLibexecPath(QDir::cleanPath(QCoreApplication::applicationDirPath() + + QLatin1String("/" QBS_RELATIVE_LIBEXEC_PATH))); params.setTopLevelProfile(profileName); params.setBuildVariant(buildVariant); params.setBuildRoot(buildDirectory(profileName)); diff --git a/src/app/qbs/qbs.pro b/src/app/qbs/qbs.pro index 37eda9373..783dabd6d 100644 --- a/src/app/qbs/qbs.pro +++ b/src/app/qbs/qbs.pro @@ -20,7 +20,9 @@ HEADERS += \ qbstool.h include(../../library_dirname.pri) +isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH=../libexec isEmpty(QBS_RELATIVE_PLUGINS_PATH):QBS_RELATIVE_PLUGINS_PATH=../$${QBS_LIBRARY_DIRNAME} isEmpty(QBS_RELATIVE_SEARCH_PATH):QBS_RELATIVE_SEARCH_PATH=.. +DEFINES += QBS_RELATIVE_LIBEXEC_PATH=\\\"$${QBS_RELATIVE_LIBEXEC_PATH}\\\" DEFINES += QBS_RELATIVE_PLUGINS_PATH=\\\"$${QBS_RELATIVE_PLUGINS_PATH}\\\" DEFINES += QBS_RELATIVE_SEARCH_PATH=\\\"$${QBS_RELATIVE_SEARCH_PATH}\\\" diff --git a/src/app/qbs/qbs.qbs b/src/app/qbs/qbs.qbs index 39a5559e6..e56e97960 100644 --- a/src/app/qbs/qbs.qbs +++ b/src/app/qbs/qbs.qbs @@ -7,6 +7,7 @@ QbsApp { targetName: "qbs" cpp.defines: base.concat([ 'QBS_VERSION="' + QbsFunctions.qbsVersion() + '"', + 'QBS_RELATIVE_LIBEXEC_PATH="' + project.relativeLibexecPath + '"', 'QBS_RELATIVE_SEARCH_PATH="' + project.relativeSearchPath + '"', 'QBS_RELATIVE_PLUGINS_PATH="' + project.relativePluginsPath + '"' ]) diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index 73ea5e7fb..527d07e4a 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -1126,6 +1126,8 @@ void ModuleLoader::setupBaseModulePrototype(Item *prototype) BuiltinValue::create(BuiltinValue::CanonicalArchitectureFunction)); prototype->setProperty(QLatin1String("rfc1034Identifier"), BuiltinValue::create(BuiltinValue::Rfc1034IdentifierFunction)); + prototype->setProperty(QLatin1String("libexecPath"), + VariantValue::create(m_parameters.libexecPath())); const Version qbsVersion = Version::qbsVersion(); prototype->setProperty(QLatin1String("versionMajor"), diff --git a/src/lib/corelib/tools/setupprojectparameters.cpp b/src/lib/corelib/tools/setupprojectparameters.cpp index 991962e59..30499fe41 100644 --- a/src/lib/corelib/tools/setupprojectparameters.cpp +++ b/src/lib/corelib/tools/setupprojectparameters.cpp @@ -63,6 +63,7 @@ public: QString buildRoot; QStringList searchPaths; QStringList pluginPaths; + QString libexecPath; QString settingsBaseDir; QVariantMap overriddenValues; QVariantMap buildConfiguration; @@ -209,6 +210,23 @@ void SetupProjectParameters::setPluginPaths(const QStringList &pluginPaths) } /*! + * \brief Where to look for internal binaries. + */ +QString SetupProjectParameters::libexecPath() const +{ + return d->libexecPath; +} + +/*! + * \brief Sets the information about where to look for internal binaries. + * \note \p libexecPath must be an absolute path. + */ +void SetupProjectParameters::setLibexecPath(const QString &libexecPath) +{ + d->libexecPath = libexecPath; +} + +/*! * \brief The base directory for qbs settings. * This value is used to locate profiles and preferences. */ diff --git a/src/lib/corelib/tools/setupprojectparameters.h b/src/lib/corelib/tools/setupprojectparameters.h index 0c084a40f..8cc83e125 100644 --- a/src/lib/corelib/tools/setupprojectparameters.h +++ b/src/lib/corelib/tools/setupprojectparameters.h @@ -73,6 +73,9 @@ public: QStringList pluginPaths() const; void setPluginPaths(const QStringList &pluginPaths); + QString libexecPath() const; + void setLibexecPath(const QString &libexecPath); + QString settingsDirectory() const; void setSettingsDirectory(const QString &settingsBaseDir); diff --git a/src/libexec/libexec.pro b/src/libexec/libexec.pro new file mode 100644 index 000000000..967108504 --- /dev/null +++ b/src/libexec/libexec.pro @@ -0,0 +1 @@ +TEMPLATE = subdirs diff --git a/src/libexec/libexec.qbs b/src/libexec/libexec.qbs new file mode 100644 index 000000000..489864a26 --- /dev/null +++ b/src/libexec/libexec.qbs @@ -0,0 +1,6 @@ +import qbs + +Project { + references: [ + ] +} diff --git a/src/src.qbs b/src/src.qbs index 04ce2d6ba..c501cb437 100644 --- a/src/src.qbs +++ b/src/src.qbs @@ -4,6 +4,7 @@ Project { references: [ "app/apps.qbs", "lib/libs.qbs", + "libexec/libexec.qbs", "plugins/plugins.qbs" ] } diff --git a/tests/auto/api/api.pro b/tests/auto/api/api.pro index 586d8fcb0..8db2f7598 100644 --- a/tests/auto/api/api.pro +++ b/tests/auto/api/api.pro @@ -4,8 +4,10 @@ HEADERS = tst_api.h SOURCES = tst_api.cpp include(../../../src/library_dirname.pri) +isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH=../libexec isEmpty(QBS_RELATIVE_PLUGINS_PATH):QBS_RELATIVE_PLUGINS_PATH=../$${QBS_LIBRARY_DIRNAME} isEmpty(QBS_RELATIVE_SEARCH_PATH):QBS_RELATIVE_SEARCH_PATH=.. +DEFINES += QBS_RELATIVE_LIBEXEC_PATH=\\\"$${QBS_RELATIVE_LIBEXEC_PATH}\\\" DEFINES += QBS_RELATIVE_PLUGINS_PATH=\\\"$${QBS_RELATIVE_PLUGINS_PATH}\\\" DEFINES += QBS_RELATIVE_SEARCH_PATH=\\\"$${QBS_RELATIVE_SEARCH_PATH}\\\" qbs_enable_project_file_updates:DEFINES += QBS_ENABLE_PROJECT_FILE_UPDATES diff --git a/tests/auto/api/api.qbs b/tests/auto/api/api.qbs index bcf1cbd53..68cfd35a9 100644 --- a/tests/auto/api/api.qbs +++ b/tests/auto/api/api.qbs @@ -5,6 +5,7 @@ QbsAutotest { files: ["../shared.h", "tst_api.h", "tst_api.cpp"] cpp.defines: base.concat([ 'SRCDIR="' + path + '"', + 'QBS_RELATIVE_LIBEXEC_PATH="' + project.relativeLibexecPath + '"', 'QBS_RELATIVE_SEARCH_PATH="' + project.relativeSearchPath + '"', 'QBS_RELATIVE_PLUGINS_PATH="' + project.relativePluginsPath + '"' ]).concat(project.enableProjectFileUpdates ? ["QBS_ENABLE_PROJECT_FILE_UPDATES"] : []) diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index b362773a3..a3eb9dfa7 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -1348,6 +1348,8 @@ qbs::SetupProjectParameters TestApi::defaultSetupParameters(const QString &proje + QLatin1String("/" QBS_RELATIVE_SEARCH_PATH)))); setupParams.setPluginPaths(prefs.pluginPaths(QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String("/" QBS_RELATIVE_PLUGINS_PATH)))); + setupParams.setLibexecPath(QDir::cleanPath(QCoreApplication::applicationDirPath() + + QLatin1String("/" QBS_RELATIVE_LIBEXEC_PATH))); setupParams.setTopLevelProfile(profileName()); setupParams.setBuildVariant(QLatin1String("debug")); return setupParams; |