Fix bundle dir for macOS

This commit is contained in:
Jonas Kvinge
2019-01-03 21:19:07 +01:00
parent ab827a91dc
commit 7d8ba57e5f
5 changed files with 29 additions and 6 deletions

View File

@@ -56,5 +56,9 @@
#cmakedefine HAVE_KEYSYMDEF_H
#cmakedefine HAVE_XF86KEYSYM_H
#cmakedefine USE_BUNDLE
#define USE_BUNDLE_DIR "${USE_BUNDLE_DIR}"
#endif // CONFIG_H_IN

View File

@@ -423,10 +423,15 @@ void GstEngine::SetEnvironment() {
QString plugin_path;
QString registry_filename;
// On windows we bundle the gstreamer plugins with strawberry
#if defined(Q_OS_WIN32)
// On Windows and macOS we bundle the gstreamer plugins with strawberry
#ifdef USE_BUNDLE
#if defined(Q_OS_DARWIN)
scanner_path = QCoreApplication::applicationDirPath() + "/" + USE_BUNDLE_DIR + "/gst-plugin-scanner";
plugin_path = QCoreApplication::applicationDirPath() + "/" + USE_BUNDLE_DIR + "/gstreamer";
#elif defined(Q_OS_WIN32)
plugin_path = QDir::toNativeSeparators(QCoreApplication::applicationDirPath() + "/gstreamer-plugins");
#endif
#endif
#if defined(Q_OS_WIN32) || defined(Q_OS_MACOS)
registry_filename = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) + QString("/gst-registry-%1-bin").arg(QCoreApplication::applicationVersion());
@@ -444,6 +449,10 @@ void GstEngine::SetEnvironment() {
Utilities::SetEnv("GST_REGISTRY", registry_filename);
}
#if defined(Q_OS_DARWIN) && defined(USE_BUNDLE)
SetEnv("GIO_EXTRA_MODULES", QCoreApplication::applicationDirPath() + "/" + USE_BUNDLE_DIR + "/gio-modules");
#endif
Utilities::SetEnv("PULSE_PROP_media.role", "music");
}

View File

@@ -162,8 +162,9 @@ int main(int argc, char* argv[]) {
QtSingleApplication a(argc, argv);
#ifdef Q_OS_MACOS
//QCoreApplication::setLibraryPaths(QStringList() << QCoreApplication::applicationDirPath() + "/../PlugIns");
#if defined(Q_OS_DARWIN) && defined(USE_BUNDLE)
qLog(Debug) << "Looking for resources in" + QCoreApplication::applicationDirPath() + "/" + USE_BUNDLE_DIR;
QCoreApplication::setLibraryPaths(QStringList() << QCoreApplication::applicationDirPath() + "/" + USE_BUNDLE_DIR);
#endif
a.setQuitOnLastWindowClosed(false);