Merge branch 'task_712' into task_731

This commit is contained in:
Andrei Yankovich 2022-10-30 20:04:14 +03:00
commit 5e37e9a2ad
3 changed files with 35 additions and 41 deletions

View File

@ -1265,19 +1265,9 @@ bool ConfigParser::setQmake(const QString &value) {
_config.qtDir.setTranslations(getPathFrmoQmakeLine(value)); _config.qtDir.setTranslations(getPathFrmoQmakeLine(value));
} else if (value.contains("QT_INSTALL_DATA")) { } else if (value.contains("QT_INSTALL_DATA")) {
_config.qtDir.setResources(getPathFrmoQmakeLine(value) + "/resources"); _config.qtDir.setResources(getPathFrmoQmakeLine(value) + "/resources");
} else if (value.contains("QMAKE_XSPEC")) {
auto val = value.split(':').value(1);
if (val.contains("win32")) {
_config.qtDir.setQtPlatform(Platform::Win);
} else {
_config.qtDir.setQtPlatform(Platform::Unix);
}
} }
} }
_config.qtDir.setQtVersion(_config.isNeededQt());
_config.envirement.addEnv(_config.qtDir.getLibs()); _config.envirement.addEnv(_config.qtDir.getLibs());
_config.envirement.addEnv(_config.qtDir.getBins()); _config.envirement.addEnv(_config.qtDir.getBins());
@ -1312,16 +1302,15 @@ bool ConfigParser::setQtDir(const QString &value) {
_config.qtDir.setPlugins(info.absoluteFilePath() + ("/plugins")); _config.qtDir.setPlugins(info.absoluteFilePath() + ("/plugins"));
} }
#ifdef Q_OS_UNIX if (_config.qtDir.getQtPlatform() & Unix) {
if (!QFile::exists(info.absoluteFilePath() + ("/libexec"))) { if (!QFile::exists(info.absoluteFilePath() + ("/libexec"))) {
QuasarAppUtils::Params::log("get qt libexec failed!", QuasarAppUtils::Debug); QuasarAppUtils::Params::log("get qt libexec failed!", QuasarAppUtils::Debug);
} else { } else {
_config.qtDir.setLibexecs(info.absoluteFilePath() + ("/libexec")); _config.qtDir.setLibexecs(info.absoluteFilePath() + ("/libexec"));
}
} else if (_config.qtDir.getQtPlatform() & Win) {
_config.qtDir.setLibexecs(info.absoluteFilePath() + ("/bin"));
} }
#endif
#ifdef Q_OS_WIN
_config.qtDir.setLibexecs(info.absoluteFilePath() + ("/bin"));
#endif
if (!QFile::exists(info.absoluteFilePath() + ("/translations"))) { if (!QFile::exists(info.absoluteFilePath() + ("/translations"))) {
QuasarAppUtils::Params::log("get qt translations failed!", QuasarAppUtils::Debug); QuasarAppUtils::Params::log("get qt translations failed!", QuasarAppUtils::Debug);
@ -1335,15 +1324,6 @@ bool ConfigParser::setQtDir(const QString &value) {
_config.qtDir.setResources(info.absoluteFilePath() + ("/resources")); _config.qtDir.setResources(info.absoluteFilePath() + ("/resources"));
} }
#ifdef Q_OS_UNIX
_config.qtDir.setQtPlatform(Platform::Unix);
#endif
#ifdef Q_OS_WIN
_config.qtDir.setQtPlatform(Platform::Win);
#endif
_config.qtDir.setQtVersion(_config.isNeededQt());
_config.envirement.addEnv(_config.qtDir.getLibs()); _config.envirement.addEnv(_config.qtDir.getLibs());
_config.envirement.addEnv(_config.qtDir.getBins()); _config.envirement.addEnv(_config.qtDir.getBins());

View File

@ -12,16 +12,24 @@ QtMajorVersion QtDir::getQtVersion() const {
return _qtVersion; return _qtVersion;
} }
void QtDir::setQtVersion(const QtMajorVersion &qtVersion) {
_qtVersion = qtVersion;
}
QString QtDir::getLibs() const { QString QtDir::getLibs() const {
return libs; return libs;
} }
void QtDir::setLibs(const QString &value) { void QtDir::setLibs(const QString &value) {
libs = PathUtils::fixPath(value); libs = PathUtils::fixPath(value);
auto qtLibs = QDir(libs).entryList(QDir::Files);
if (qtLibs.contains("libQt4Core.so")) {
_qtVersion = QtMajorVersion::Qt4;
_platform = Unix;
} else if (qtLibs.contains("libQt5Core.so")) {
_qtVersion = QtMajorVersion::Qt5;
_platform = Unix;
} else if (qtLibs.contains("libQt6Core.so")) {
_qtVersion = QtMajorVersion::Qt6;
_platform = Unix;
}
} }
QString QtDir::getBins() const { QString QtDir::getBins() const {
@ -30,6 +38,18 @@ QString QtDir::getBins() const {
void QtDir::setBins(const QString &value) { void QtDir::setBins(const QString &value) {
bins = PathUtils::fixPath(value); bins = PathUtils::fixPath(value);
auto qtLibs = QDir(bins).entryList(QDir::Files);
if (qtLibs.contains("Qt4Core.dll", Qt::CaseInsensitive)) {
_qtVersion = QtMajorVersion::Qt4;
_platform = Win;
} else if (qtLibs.contains("Qt5Core.dll", Qt::CaseInsensitive)) {
_qtVersion = QtMajorVersion::Qt5;
_platform = Win;
} else if (qtLibs.contains("Qt6Core.dll", Qt::CaseInsensitive)) {
_qtVersion = QtMajorVersion::Qt6;
_platform = Win;
}
} }
QString QtDir::getLibexecs() const { QString QtDir::getLibexecs() const {
@ -74,11 +94,7 @@ void QtDir::setResources(const QString &value) {
} }
Platform QtDir::getQtPlatform() const { Platform QtDir::getQtPlatform() const {
return qtPlatform; return _platform;
}
void QtDir::setQtPlatform(const Platform &value) {
qtPlatform = value;
} }
bool QtDir::isQt(QString path) const { bool QtDir::isQt(QString path) const {

View File

@ -21,9 +21,9 @@ class DEPLOYSHARED_EXPORT QtDir {
QString translations; QString translations;
QString resources; QString resources;
Platform qtPlatform = UnknownPlatform; Platform _platform = UnknownPlatform;
QtMajorVersion _qtVersion; QtMajorVersion _qtVersion = NoQt;
public: public:
QString getLibs() const; QString getLibs() const;
void setLibs(const QString &value); void setLibs(const QString &value);
@ -40,7 +40,6 @@ public:
QString getResources() const; QString getResources() const;
void setResources(const QString &value); void setResources(const QString &value);
Platform getQtPlatform() const; Platform getQtPlatform() const;
void setQtPlatform(const Platform &value);
/** /**
* @brief isQt - This method check a path for belonging to QtDirs. * @brief isQt - This method check a path for belonging to QtDirs.
@ -54,7 +53,6 @@ public:
* @return the masjor version of qt * @return the masjor version of qt
*/ */
QtMajorVersion getQtVersion() const; QtMajorVersion getQtVersion() const;
void setQtVersion(const QtMajorVersion &qtVersion);
}; };
#endif // QTDIR_H #endif // QTDIR_H