diff options
author | Jake Petroules <jake.petroules@petroules.com> | 2015-05-09 00:50:18 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@petroules.com> | 2015-05-19 15:38:54 +0000 |
commit | 53b8fb9889a4aeb231642a6646bb8024744e03c7 (patch) | |
tree | d71870226b5c2d8f8d0555d6870dab1269fe4c72 /src | |
parent | 55169d88a36af5ecd2b1649e7f8b99e75632f598 (diff) |
Add support for building internal executables (libexec) as part of Qbs.
This will be used by the upcoming Java output artifact scanner.
Change-Id: I04dd36ee6a6a7913b604bdda73c14879b2854721
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'src')
-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 |
9 files changed, 36 insertions, 0 deletions
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" ] } |