on xenial help sign in
Refactor paths to support UNITY_ env vars pointing to build/source dirs
commit4e5bb7ae70e2ab7179d12bf9c34b0e7de4c1124f authorMichał Sawicz <michal.sawicz@canonical.com> dateTue 22 Sep 2015, 12:44 (11 years ago) parent801466f
10 files changed+26−20
include/paths.h.in+16−10 src/Dash/main.cpp+1−1 src/Panel/Indicators/client/indicatorsclient.cpp+1−1 src/main.cpp+1−1 tests/mocks/AccountsService/AccountsService.cpp+1−1 tests/mocks/Unity/Launcher/MockLauncherItem.cpp+1−1 tests/mocks/Unity/fake_resultsmodel.cpp+1−1 tests/mocks/Unity/fake_scope.cpp+2−2 tests/mocks/Unity/fake_scopesoverview.cpp+1−1 tools/scopetool.cpp+1−1
include/paths.h.in+16−10
@@ -33,11 +33,21 @@ inline bool isRunningInstalled() {
3333 return installed;
3434}
3535
36+inline QString buildDirectory() {
37+ if (!qEnvironmentVariableIsEmpty("UNITY_BINARY_DIR")) return qgetenv("UNITY_BINARY_DIR");
38+ return QString("@CMAKE_BINARY_DIR@");
39+}
40+
41+inline QString sourceDirectory() {
42+ if (!qEnvironmentVariableIsEmpty("UNITY_SOURCE_DIR")) return qgetenv("UNITY_SOURCE_DIR");
43+ return QString("@CMAKE_SOURCE_DIR@");
44+}
45+
3646inline QString translationDirectory() {
3747 if (isRunningInstalled()) {
3848 return QString("@CMAKE_INSTALL_PREFIX@/share/locale");
3949 } else {
40− return QString("@CMAKE_BINARY_DIR@/po/locale");
50+ return QString(buildDirectory() + "/po/locale");
4151 }
4252}
4353
@@ -45,14 +55,14 @@ inline QString qmlDirectory() {
4555 if (isRunningInstalled()) {
4656 return QString("@CMAKE_INSTALL_PREFIX@/@SHELL_APP_DIR@/");
4757 } else {
48− return QString("@CMAKE_SOURCE_DIR@/qml/");
58+ return QString(sourceDirectory() + "/qml");
4959 }
5060}
5161
5262inline QStringList overrideImportPaths() {
5363 QStringList paths;
5464 if (!isRunningInstalled()) {
55− paths << QString("@CMAKE_BINARY_DIR@/plugins");
65+ paths << QString(buildDirectory() + "/plugins");
5666 }
5767 return paths;
5868}
@@ -62,7 +72,7 @@ inline QStringList nonMirImportPaths() {
6272 if (isRunningInstalled()) {
6373 paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_INSTALL_QML@/nonmirplugins");
6474 } else {
65− paths << QString("@CMAKE_BINARY_DIR@/nonmirplugins");
75+ paths << QString(buildDirectory() + "/nonmirplugins");
6676 }
6777 return paths;
6878}
@@ -77,7 +87,7 @@ inline QStringList fallbackImportPaths() {
7787 } else {
7888 paths << QString("@USS_PRIVATE_PLUGINDIR@");
7989 paths << QString("@SHELL_PLUGINDIR@");
80− paths << QString("@CMAKE_BINARY_DIR@/tests/mocks");
90+ paths << QString(buildDirectory() + "/tests/mocks");
8191 }
8292 return paths;
8393}
@@ -86,7 +96,7 @@ inline QString mockPluginsDir() {
8696 if (isRunningInstalled()) {
8797 return QString("@CMAKE_INSTALL_PREFIX@/@SHELL_INSTALL_QML@/mocks");
8898 } else {
89− return QString("@CMAKE_BINARY_DIR@/tests/mocks");
99+ return QString(buildDirectory() + "/tests/mocks");
90100 }
91101}
92102
@@ -99,10 +109,6 @@ inline QStringList shellDataDirs() {
99109 return dirs;
100110}
101111
102−inline QString sourceDirectory() {
103− return QString("@CMAKE_SOURCE_DIR@/");
104−}
105−
106112inline void prependImportPaths(QQmlEngine *engine, const QStringList &paths)
107113{
108114 QStringList importPathList = engine->importPathList();
src/Dash/main.cpp+1−1
@@ -101,7 +101,7 @@ int main(int argc, const char *argv[])
101101 mouseTouchAdaptor = MouseTouchAdaptor::instance();
102102 }
103103
104− QUrl source(::qmlDirectory()+"Dash/DashApplication.qml");
104+ QUrl source(::qmlDirectory() + "/Dash/DashApplication.qml");
105105 prependImportPaths(view->engine(), ::overrideImportPaths());
106106 appendImportPaths(view->engine(), ::fallbackImportPaths());
107107
src/Panel/Indicators/client/indicatorsclient.cpp+1−1
@@ -36,7 +36,7 @@ IndicatorsClient::IndicatorsClient(int &argc, char **argv)
3636 QStringList args = m_application->arguments();
3737
3838 m_view = new QQuickView;
39− m_view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()+"Panel/Indicators/client/"));
39+ m_view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory() + "/Panel/Indicators/client/"));
4040 prependImportPaths(m_view->engine(), ::overrideImportPaths());
4141 appendImportPaths(m_view->engine(), ::fallbackImportPaths());
4242
src/main.cpp+1−1
@@ -105,7 +105,7 @@ int main(int argc, const char *argv[])
105105 mouseTouchAdaptor = MouseTouchAdaptor::instance();
106106 }
107107
108− QUrl source(::qmlDirectory()+"OrientedShell.qml");
108+ QUrl source(::qmlDirectory() + "/OrientedShell.qml");
109109 prependImportPaths(view->engine(), ::overrideImportPaths());
110110 if (!isMirServer) {
111111 prependImportPaths(view->engine(), ::nonMirImportPaths());
tests/mocks/AccountsService/AccountsService.cpp+1−1
@@ -24,7 +24,7 @@ AccountsService::AccountsService(QObject* parent)
2424 : QObject(parent),
2525 m_enableLauncherWhileLocked(true),
2626 m_enableIndicatorsWhileLocked(true),
27− m_backgroundFile(qmlDirectory() + "graphics/phone_background.jpg"),
27+ m_backgroundFile(qmlDirectory() + "/graphics/phone_background.jpg"),
2828 m_statsWelcomeScreen(true),
2929 m_failedLogins(0),
3030 m_demoEdges(false),
tests/mocks/Unity/Launcher/MockLauncherItem.cpp+1−1
@@ -29,7 +29,7 @@ MockLauncherItem::MockLauncherItem(const QString &appId, const QString& desktopF
2929 m_appId(appId),
3030 m_desktopFile(desktopFile),
3131 m_name(name),
32− m_icon(qmlDirectory() + "graphics/applicationIcons/" + icon + ".png"),
32+ m_icon(qmlDirectory() + "/graphics/applicationIcons/" + icon + ".png"),
3333 m_pinned(false),
3434 m_running(false),
3535 m_recent(false),
tests/mocks/Unity/fake_resultsmodel.cpp+1−1
@@ -78,7 +78,7 @@ ResultsModel::data(const QModelIndex& index, int role) const
7878 case RoleTitle:
7979 return QString("Title.%1.%2").arg(m_categoryId).arg(index.row());
8080 case RoleArt:
81− return qmlDirectory() + "graphics/applicationIcons/dash.png";
81+ return qmlDirectory() + "/graphics/applicationIcons/dash.png";
8282 case RoleSubtitle:
8383 return QString("Subtitle.%1.%2").arg(m_categoryId).arg(index.row());
8484 case RoleMascot:
tests/mocks/Unity/fake_scope.cpp+2−2
@@ -253,11 +253,11 @@ QVariantMap Scope::customizations() const
253253 m["foreground-color"] = "blue";
254254 m["page-header"] = h;
255255 } else if (m_id == "MockScope4") {
256− h["navigation-background"] = QUrl(sourceDirectory() + "tests/qmltests/Dash/artwork/background.png");
256+ h["navigation-background"] = QUrl(sourceDirectory() + "/tests/qmltests/Dash/artwork/background.png");
257257 m["page-header"] = h;
258258 } else if (m_id == "MockScope5") {
259259 h["background"] = "gradient:///lightgrey/grey";
260− h["logo"] = QUrl(sourceDirectory() + "tests/qmltests/Dash/tst_PageHeader/logo-ubuntu-orange.svg");
260+ h["logo"] = QUrl(sourceDirectory() + "/tests/qmltests/Dash/tst_PageHeader/logo-ubuntu-orange.svg");
261261 h["divider-color"] = "red";
262262 h["navigation-background"] = "color:///black";
263263 m["page-header"] = h;
tests/mocks/Unity/fake_scopesoverview.cpp+1−1
@@ -308,7 +308,7 @@ QVariant ScopesOverviewResultsModel::data(const QModelIndex& index, int role) co
308308 case RoleSubtitle:
309309 return scope && scope->name() == "Videos this is long ab cd ef gh ij kl" ? "tube, movies, cinema, pictures, art, moving images, magic in a box" : QString();
310310 case RoleArt:
311− return qmlDirectory() + "graphics/applicationIcons/dash.png";
311+ return qmlDirectory() + "/graphics/applicationIcons/dash.png";
312312 case RoleMascot:
313313 case RoleEmblem:
314314 case RoleSummary:
tools/scopetool.cpp+1−1
@@ -89,7 +89,7 @@ int main(int argc, char *argv[])
8989 view->setTitle(QGuiApplication::applicationName());
9090 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
9191
92− QUrl source(::qmlDirectory() + "ScopeTool.qml");
92+ QUrl source(::qmlDirectory() + "/ScopeTool.qml");
9393 prependImportPaths(view->engine(), ::overrideImportPaths());
9494 prependImportPaths(view->engine(), ::nonMirImportPaths());
9595 appendImportPaths(view->engine(), ::fallbackImportPaths());