mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
@@ -7,6 +7,9 @@
|
||||
// qt include
|
||||
#include <QCoreApplication>
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QVector>
|
||||
#include <QStringList>
|
||||
|
||||
// modules to init
|
||||
#include <effectengine/EffectModule.h>
|
||||
@@ -31,21 +34,39 @@ PythonInit::PythonInit()
|
||||
Py_SetProgramName(L"Hyperion");
|
||||
|
||||
// set Python module path when exists
|
||||
QString py_patch = QDir::cleanPath(qApp->applicationDirPath() + "/../lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
||||
QString py_file = QDir::cleanPath(qApp->applicationDirPath() + "/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + STRINGIFY(PYTHON_VERSION_MINOR) + ".zip");
|
||||
QString py_path = QDir::cleanPath(qApp->applicationDirPath() + "/../lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
||||
QString py_file = QDir::cleanPath(qApp->applicationDirPath() + "/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + STRINGIFY(PYTHON_VERSION_MINOR) + ".zip");
|
||||
QString py_framework = QDir::cleanPath(qApp->applicationDirPath() + "/../Frameworks/Python.framework/Versions/Current/lib/python" + STRINGIFY(PYTHON_VERSION_MAJOR) + "." + STRINGIFY(PYTHON_VERSION_MINOR));
|
||||
|
||||
if (QFile(py_file).exists() || QDir(py_patch).exists())
|
||||
if (QFile(py_file).exists() || QDir(py_path).exists() || QDir(py_framework).exists() )
|
||||
{
|
||||
Py_NoSiteFlag++;
|
||||
if (QFile(py_file).exists())
|
||||
if (QFile(py_file).exists()) // Windows
|
||||
{
|
||||
Py_SetPythonHome(Py_DecodeLocale(py_file.toLatin1().data(), nullptr));
|
||||
Py_SetPath(Py_DecodeLocale(py_file.toLatin1().data(), nullptr));
|
||||
}
|
||||
else if (QDir(py_patch).exists())
|
||||
else if (QDir(py_path).exists()) // Linux
|
||||
{
|
||||
Py_SetPythonHome(Py_DecodeLocale(py_patch.toLatin1().data(), nullptr));
|
||||
Py_SetPath(Py_DecodeLocale(py_patch.toLatin1().data(), nullptr));
|
||||
QStringList python_paths;
|
||||
python_paths.append(QDir(py_path).absolutePath());
|
||||
python_paths.append(QDir(py_path + "/lib-dynload").absolutePath());
|
||||
QVector<wchar_t> joined_paths(python_paths.join(":").size() + 1, 0);
|
||||
python_paths.join(":").toWCharArray(joined_paths.data());
|
||||
Py_SetPath(joined_paths.data());
|
||||
py_path = QDir::cleanPath(qApp->applicationDirPath() + "/../");
|
||||
Py_SetPythonHome(Py_DecodeLocale(py_path.toLatin1().data(), nullptr));
|
||||
}
|
||||
else if (QDir(py_framework).exists()) // macOS
|
||||
{
|
||||
QStringList python_paths;
|
||||
python_paths.append(QDir(py_framework).absolutePath());
|
||||
python_paths.append(QDir(py_framework + "/lib-dynload").absolutePath());
|
||||
QVector<wchar_t> joined_paths(python_paths.join(":").size() + 1, 0);
|
||||
python_paths.join(":").toWCharArray(joined_paths.data());
|
||||
Py_SetPath(joined_paths.data());
|
||||
py_framework = QDir::cleanPath(qApp->applicationDirPath() + "/../Frameworks/Python.framework/Versions/Current");
|
||||
Py_SetPythonHome(Py_DecodeLocale(py_framework.toLatin1().data(), nullptr));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file alias="/webconfig/3RD_PARTY_LICENSES">${CMAKE_SOURCE_DIR}/3RD_PARTY_LICENSES</file>
|
||||
${HYPERION_WEBCONFIG_RES}
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
Reference in New Issue
Block a user