diff --git a/qtcreator.pro b/qtcreator.pro index f43df3032db3746e5ca14cb0815a33e22cf04de7..1b8a7523fcdf8c83c3fb6c38bad8f632d421997f 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -61,6 +61,13 @@ exists(src/shared/qbs/qbs.pro) { cache(QBS_APPS_DESTDIR) QBS_APPS_INSTALL_DIR = $${QTC_PREFIX}/bin cache(QBS_APPS_INSTALL_DIR) + QBS_LIBEXEC_DESTDIR = $${IDE_LIBEXEC_PATH} + cache(QBS_LIBEXEC_DESTDIR) + QBS_LIBEXEC_INSTALL_DIR = $${QTC_PREFIX}/bin + cache(QBS_LIBEXEC_INSTALL_DIR) + QBS_RELATIVE_LIBEXEC_PATH = $$relative_path($$QBS_LIBEXEC_DESTDIR, $$QBS_APPS_DESTDIR) + isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH = . + cache(QBS_RELATIVE_LIBEXEC_PATH) QBS_RELATIVE_PLUGINS_PATH = $$relative_path($$QBS_PLUGINS_BUILD_DIR, $$QBS_APPS_DESTDIR$$) cache(QBS_RELATIVE_PLUGINS_PATH) QBS_RELATIVE_SEARCH_PATH = $$relative_path($$QBS_RESOURCES_BUILD_DIR, $$QBS_APPS_DESTDIR) diff --git a/qtcreator.qbs b/qtcreator.qbs index 012720bb11b99c817826b4671b500556e4f8d1ac..ed18dbf37d6ab3b8562e6ef22719d84a139166bf 100644 --- a/qtcreator.qbs +++ b/qtcreator.qbs @@ -1,6 +1,7 @@ import qbs 1.0 Project { + name: "Qt Creator" minimumQbsVersion: "1.4" property bool withAutotests: qbs.buildVariant === "debug" property string ide_version_major: '3' @@ -56,6 +57,7 @@ Project { "QT_NO_CAST_FROM_ASCII" ].concat(testsEnabled ? ["WITH_TESTS"] : []) qbsSearchPaths: "qbs" + property bool enableQbsJavaSupport: false references: [ "src/src.qbs", diff --git a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp index 33de434ef918dfe953b5c56e175061b2bf75f6a2..484bae73ca1ab8dd0b0a10372378ba07ae66b6a4 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectparser.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectparser.cpp @@ -100,6 +100,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env, const qbs::Preferences prefs(QbsManager::settings(), profileName); params.setSearchPaths(prefs.searchPaths(resourcesBaseDirectory())); params.setPluginPaths(prefs.pluginPaths(pluginsBaseDirectory())); + params.setLibexecPath(libExecDirectory()); m_qbsSetupProjectJob = m_project.setupProject(params, QbsManager::logSink(), 0); @@ -163,6 +164,14 @@ QString QbsProjectParser::resourcesBaseDirectory() const return Core::ICore::resourcePath() + QLatin1String("/qbs"); } +QString QbsProjectParser::libExecDirectory() const +{ + const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR); + if (!qbsInstallDir.isEmpty()) + return qbsInstallDir + QLatin1String("/libexec"); + return Core::ICore::libexecPath(); +} + QString QbsProjectParser::pluginsBaseDirectory() const { const QString qbsInstallDir = QLatin1String(QBS_INSTALL_DIR); diff --git a/src/plugins/qbsprojectmanager/qbsprojectparser.h b/src/plugins/qbsprojectmanager/qbsprojectparser.h index 6d6319394a9674840764f8f1366664e453412a25..8603205213306eda9e91aa030c52bad34a76ff2b 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectparser.h +++ b/src/plugins/qbsprojectmanager/qbsprojectparser.h @@ -69,6 +69,7 @@ private slots: private: QString pluginsBaseDirectory() const; QString resourcesBaseDirectory() const; + QString libExecDirectory() const; QString m_projectFilePath; qbs::SetupProjectJob *m_qbsSetupProjectJob; diff --git a/src/src.pro b/src/src.pro index ea996ee839d0b3a4e359b18cbb70fb4fbdf517fd..ee25d3dbc5d44f233b6fbb8df64e31d9af89b8a7 100644 --- a/src/src.pro +++ b/src/src.pro @@ -7,6 +7,7 @@ QBS_DIRS = \ qbscorelib \ qbsqtprofilesetup \ qbsapps \ + qbslibexec \ qbsplugins \ qbsstatic @@ -15,6 +16,8 @@ qbsqtprofilesetup.subdir = shared/qbs/src/lib/qtprofilesetup qbsqtprofilesetup.depends = qbscorelib qbsapps.subdir = shared/qbs/src/app qbsapps.depends = qbsqtprofilesetup +qbslibexec.subdir = shared/qbs/src/libexec +qbslibexec.depends = qbscorelib qbsplugins.subdir = shared/qbs/src/plugins qbsstatic.file = shared/qbs/static.pro diff --git a/src/src.qbs b/src/src.qbs index 48bf9fc2dff32a933310f49cc08b92f34de16e9a..bcb6f2a86516a4f74e445c1d1f55960a50e8a348 100644 --- a/src/src.qbs +++ b/src/src.qbs @@ -33,12 +33,16 @@ Project { property string resourcesInstallDir: project.ide_data_path + "/qbs" property string pluginsInstallDir: project.ide_plugin_path property string appInstallDir: project.ide_bin_path + property string libexecInstallDir: project.ide_libexec_path + property string relativeLibexecPath: FileInfo.relativePath(appInstallDir, libexecInstallDir) property string relativePluginsPath: FileInfo.relativePath(appInstallDir, pluginsInstallDir) property string relativeSearchPath: FileInfo.relativePath(appInstallDir, resourcesInstallDir) + property bool enableJava: project.enableQbsJavaSupport references: [ qbsBaseDir + "/src/lib/libs.qbs", + qbsBaseDir + "/src/libexec/libexec.qbs", qbsBaseDir + "/src/plugins/plugins.qbs", qbsBaseDir + "/share/share.qbs", qbsBaseDir + "/src/app/apps.qbs",