mirror of
https://github.com/QuasarApp/CQtDeployer.git
synced 2025-05-08 23:49:34 +00:00
ref #652 fix case sensitivity of checked libraries
This commit is contained in:
parent
65a765fed3
commit
f7576405e6
@ -221,7 +221,7 @@ bool iDistribution::collectInfo(const DistroModule& pkg,
|
|||||||
bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\"";
|
bashShortCutsArray += "\"" + targetInfo.getRunScriptFile() + "\"";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fileinfo.suffix().compare("exe", ONLY_WIN_CASE_INSENSIATIVE) == 0 || fileinfo.suffix().isEmpty()) {
|
if (fileinfo.suffix().compare("exe", Qt::CaseInsensitive) == 0 || fileinfo.suffix().isEmpty()) {
|
||||||
if (cmdArray.size() > initSize) {
|
if (cmdArray.size() > initSize) {
|
||||||
cmdArray += ",";
|
cmdArray += ",";
|
||||||
bashArray += " ";
|
bashArray += " ";
|
||||||
|
@ -149,7 +149,7 @@ void DependenciesScanner::recursiveDep(LibInfo &lib, QSet<LibInfo> &res, QSet<QS
|
|||||||
if (!scanedLib.isValid()) {
|
if (!scanedLib.isValid()) {
|
||||||
QSet<LibInfo> listDep = {};
|
QSet<LibInfo> listDep = {};
|
||||||
|
|
||||||
if (!lib._name.compare(dep.value()._name, ONLY_WIN_CASE_INSENSIATIVE))
|
if (!lib._name.compare(dep.value()._name, DeployCore::getCaseSensitivity(lib._name)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
recursiveDep(*dep, listDep, libStack);
|
recursiveDep(*dep, listDep, libStack);
|
||||||
|
@ -14,12 +14,6 @@
|
|||||||
#define DISTRO_DIR QString("DistributionKit")
|
#define DISTRO_DIR QString("DistributionKit")
|
||||||
|
|
||||||
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
#define ONLY_WIN_CASE_INSENSIATIVE Qt::CaseInsensitive
|
|
||||||
#else
|
|
||||||
#define ONLY_WIN_CASE_INSENSIATIVE Qt::CaseSensitive
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(DEPLOY_LIBRARY)
|
#if defined(DEPLOY_LIBRARY)
|
||||||
# define DEPLOYSHARED_EXPORT Q_DECL_EXPORT
|
# define DEPLOYSHARED_EXPORT Q_DECL_EXPORT
|
||||||
#else
|
#else
|
||||||
|
@ -589,7 +589,7 @@ QString DeployCore::findProcess(const QString &env, const QString& proc) {
|
|||||||
auto files = QDir(path).entryInfoList(QDir::NoDotAndDotDot | QDir::Files);
|
auto files = QDir(path).entryInfoList(QDir::NoDotAndDotDot | QDir::Files);
|
||||||
|
|
||||||
for (const auto& bin : files) {
|
for (const auto& bin : files) {
|
||||||
if (bin.baseName().compare(proc, ONLY_WIN_CASE_INSENSIATIVE) == 0) {
|
if (bin.baseName().compare(proc, DeployCore::getCaseSensitivity()) == 0) {
|
||||||
return bin.absoluteFilePath();
|
return bin.absoluteFilePath();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -605,7 +605,7 @@ QStringList DeployCore::debugExtensions() {
|
|||||||
bool DeployCore::isDebugFile(const QString &file) {
|
bool DeployCore::isDebugFile(const QString &file) {
|
||||||
auto debug = debugExtensions();
|
auto debug = debugExtensions();
|
||||||
for (const auto& debugEx: debug) {
|
for (const auto& debugEx: debug) {
|
||||||
if (file.contains(debugEx, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (file.contains(debugEx, Qt::CaseInsensitive)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -752,11 +752,11 @@ QtMajorVersion DeployCore::isQtLibName(const QString &lib) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString fileName = info.fileName();
|
QString fileName = info.fileName();
|
||||||
if (fileName.contains("Qt4", ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (fileName.contains("Qt4", getCaseSensitivity(fileName))) {
|
||||||
isQt = QtMajorVersion::Qt4;
|
isQt = QtMajorVersion::Qt4;
|
||||||
} else if (fileName.contains("Qt5", ONLY_WIN_CASE_INSENSIATIVE)) {
|
} else if (fileName.contains("Qt5", getCaseSensitivity(fileName))) {
|
||||||
isQt = QtMajorVersion::Qt5;
|
isQt = QtMajorVersion::Qt5;
|
||||||
} else if (fileName.contains("Qt6", ONLY_WIN_CASE_INSENSIATIVE)) {
|
} else if (fileName.contains("Qt6", getCaseSensitivity(fileName))) {
|
||||||
isQt = QtMajorVersion::Qt6;
|
isQt = QtMajorVersion::Qt6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -774,8 +774,8 @@ bool DeployCore::isExtraLib(const QString &lib) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool DeployCore::isAlienLib(const QString &lib) {
|
bool DeployCore::isAlienLib(const QString &lib) {
|
||||||
return lib.contains("/opt/", ONLY_WIN_CASE_INSENSIATIVE) ||
|
return lib.contains("/opt/", Qt::CaseSensitive) ||
|
||||||
lib.contains("/PROGRAM FILES", ONLY_WIN_CASE_INSENSIATIVE);
|
lib.contains("/PROGRAM FILES", Qt::CaseInsensitive);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DeployCore::isAllowedLib(const QString &lib) {
|
bool DeployCore::isAllowedLib(const QString &lib) {
|
||||||
@ -920,6 +920,25 @@ QFileInfo DeployCore::findItem(const QString &bin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return QFileInfo(bin);
|
return QFileInfo(bin);
|
||||||
|
}
|
||||||
|
|
||||||
|
Qt::CaseSensitivity DeployCore::getCaseSensitivity(const QString &checkedFile) {
|
||||||
|
|
||||||
|
if (checkedFile.isEmpty()) {
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
return Qt::CaseInsensitive;
|
||||||
|
#else
|
||||||
|
return Qt::CaseSensitive;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
QString sufix = QFileInfo(checkedFile).completeSuffix();
|
||||||
|
if (sufix.compare("dll", Qt::CaseInsensitive) == 0 ||
|
||||||
|
sufix.compare("exe", Qt::CaseInsensitive)) {
|
||||||
|
return Qt::CaseInsensitive;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Qt::CaseSensitive;
|
||||||
};
|
};
|
||||||
|
|
||||||
QString DeployCore::systemLibsFolderName() {
|
QString DeployCore::systemLibsFolderName() {
|
||||||
|
@ -303,6 +303,12 @@ public:
|
|||||||
*/
|
*/
|
||||||
static QFileInfo findItem(const QString &file);
|
static QFileInfo findItem(const QString &file);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief getCaseSensitivity This method return case sensitivity for a @a checkedFile. Usualy return Qt::CaseSensiativy exept windows binaryes files like a dll and exe.
|
||||||
|
* @param checkedFile This is checked file. By default empty value.
|
||||||
|
* @return Qt CaseSensitivity value
|
||||||
|
*/
|
||||||
|
static Qt::CaseSensitivity getCaseSensitivity(const QString& checkedFile = "");
|
||||||
};
|
};
|
||||||
|
|
||||||
#define internalError() DeployCore::printInternalError(__FUNCTION__, __FILE__, __LINE__)
|
#define internalError() DeployCore::printInternalError(__FUNCTION__, __FILE__, __LINE__)
|
||||||
|
@ -390,7 +390,7 @@ void Extracter::extractLib(const QString &file,
|
|||||||
|
|
||||||
for (const auto &line : data.getAllDep()) {
|
for (const auto &line : data.getAllDep()) {
|
||||||
|
|
||||||
if (mask.size() && !line.getName().contains(mask, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (mask.size() && !line.getName().contains(mask, DeployCore::getCaseSensitivity())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ bool FileManager::fileActionPrivate(const QString &file, const QString &target,
|
|||||||
bool copy = !masks;
|
bool copy = !masks;
|
||||||
if (masks) {
|
if (masks) {
|
||||||
for (const auto &mask : qAsConst(*masks)) {
|
for (const auto &mask : qAsConst(*masks)) {
|
||||||
if (info.absoluteFilePath().contains(mask, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (info.absoluteFilePath().contains(mask, DeployCore::getCaseSensitivity())) {
|
||||||
copy = true;
|
copy = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -263,7 +263,7 @@ bool FileManager::smartCopyFile(const QString &file,
|
|||||||
bool ifFileTarget) {
|
bool ifFileTarget) {
|
||||||
auto config = DeployCore::_config;
|
auto config = DeployCore::_config;
|
||||||
|
|
||||||
if (file.contains(config->getTargetDir(), ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (file.contains(config->getTargetDir(), DeployCore::getCaseSensitivity())) {
|
||||||
if (!moveFile(file, target, mask)) {
|
if (!moveFile(file, target, mask)) {
|
||||||
QuasarAppUtils::Params::log("Failed to move the file. Trying to copy it");
|
QuasarAppUtils::Params::log("Failed to move the file. Trying to copy it");
|
||||||
|
|
||||||
@ -309,7 +309,7 @@ bool FileManager::copyFolder(const QString &from,
|
|||||||
if (!force) {
|
if (!force) {
|
||||||
QString skipFilter = "";
|
QString skipFilter = "";
|
||||||
for (const auto &i: filter) {
|
for (const auto &i: filter) {
|
||||||
if (item.fileName().contains(i, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (item.fileName().contains(i, DeployCore::getCaseSensitivity())) {
|
||||||
skipFilter = i;
|
skipFilter = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -496,7 +496,7 @@ bool FileManager::copyFiles(const QStringList &source,
|
|||||||
|
|
||||||
QString skipFilter = "";
|
QString skipFilter = "";
|
||||||
for (const auto &i: filter) {
|
for (const auto &i: filter) {
|
||||||
if (info.fileName().contains(i, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (info.fileName().contains(i, DeployCore::getCaseSensitivity())) {
|
||||||
skipFilter = i;
|
skipFilter = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ void IgnoreRule::addRule(const IgnoreData &rule) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool IgnoreRule::check(const LibInfo &info, const QString& ignoreLabel) const {
|
bool IgnoreRule::check(const LibInfo &info, const QString& ignoreLabel) const {
|
||||||
if (info.fullPath().contains(ignoreLabel, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (info.fullPath().contains(ignoreLabel, DeployCore::getCaseSensitivity())) {
|
||||||
QuasarAppUtils::Params::log(info.fullPath() + " ignored by filter" + ignoreLabel);
|
QuasarAppUtils::Params::log(info.fullPath() + " ignored by filter" + ignoreLabel);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -86,11 +86,11 @@ bool QtDir::isQt(QString path) const {
|
|||||||
path = PathUtils::fixPath(path);
|
path = PathUtils::fixPath(path);
|
||||||
|
|
||||||
return
|
return
|
||||||
(!libs.isEmpty() && path.contains(libs, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!libs.isEmpty() && path.contains(libs, DeployCore::getCaseSensitivity())) ||
|
||||||
(!bins.isEmpty() && path.contains(bins, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!bins.isEmpty() && path.contains(bins, DeployCore::getCaseSensitivity())) ||
|
||||||
(!libexecs.isEmpty() && path.contains(libexecs, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!libexecs.isEmpty() && path.contains(libexecs, DeployCore::getCaseSensitivity())) ||
|
||||||
(!plugins.isEmpty() && path.contains(plugins, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!plugins.isEmpty() && path.contains(plugins, DeployCore::getCaseSensitivity())) ||
|
||||||
(!qmls.isEmpty() && path.contains(qmls, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!qmls.isEmpty() && path.contains(qmls, DeployCore::getCaseSensitivity())) ||
|
||||||
(!translations.isEmpty() && path.contains(translations, ONLY_WIN_CASE_INSENSIATIVE)) ||
|
(!translations.isEmpty() && path.contains(translations, DeployCore::getCaseSensitivity())) ||
|
||||||
(!resources.isEmpty() && path.contains(resources, ONLY_WIN_CASE_INSENSIATIVE));
|
(!resources.isEmpty() && path.contains(resources, DeployCore::getCaseSensitivity()));
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ ModulesQt513::~ModulesQt513() {
|
|||||||
QSet<QString> ModulesQt513::ignoreFilter(const QSet<QString> &input, const QString &filter) const {
|
QSet<QString> ModulesQt513::ignoreFilter(const QSet<QString> &input, const QString &filter) const {
|
||||||
QSet<QString> res;
|
QSet<QString> res;
|
||||||
for (auto& val : input) {
|
for (auto& val : input) {
|
||||||
if (!val.contains(filter, ONLY_WIN_CASE_INSENSIATIVE)) {
|
if (!val.contains(filter, DeployCore::getCaseSensitivity())) {
|
||||||
res.insert(val);
|
res.insert(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user