1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 19:08:07 +08:00

Autogen/RCC: Only pass --no-zstd to Qt6

In commit 9e87df4d46 (Autogen/RCC: Disable zstd if it is not supported,
2024-02-08, v3.29.0-rc1~5^2) we added this flag, but it doesn't exist
for Qt 5.  It was only introduced with qtbase commit `14546d1816a8`,
which first appeared in Qt 6.

Fixes: #27111
Issue: #25664
This commit is contained in:
Heiko Becker
2025-08-03 20:30:51 +02:00
committed by Brad King
parent a078076983
commit aeae5ede92

View File

@@ -920,21 +920,24 @@ bool cmQtAutoGenInitializer::InitRcc()
// Disable zstd if it is not supported
{
std::string const qtFeatureZSTD = "QT_FEATURE_zstd";
if (this->GenTarget->Target->GetMakefile()->IsDefinitionSet(
qtFeatureZSTD)) {
auto const zstdDef =
this->GenTarget->Target->GetMakefile()->GetSafeDefinition(
qtFeatureZSTD);
auto const zstdVal = cmValue(zstdDef);
if (zstdVal.IsOff()) {
auto const& kw = this->GlobalInitializer->kw();
auto rccOptions = this->GenTarget->GetSafeProperty(kw.AUTORCC_OPTIONS);
std::string const nozstd = "--no-zstd";
if (rccOptions.find(nozstd) == std::string::npos) {
rccOptions.append(";" + nozstd + ";");
if (this->QtVersion.Major >= 6) {
std::string const qtFeatureZSTD = "QT_FEATURE_zstd";
if (this->GenTarget->Target->GetMakefile()->IsDefinitionSet(
qtFeatureZSTD)) {
auto const zstdDef =
this->GenTarget->Target->GetMakefile()->GetSafeDefinition(
qtFeatureZSTD);
auto const zstdVal = cmValue(zstdDef);
if (zstdVal.IsOff()) {
auto const& kw = this->GlobalInitializer->kw();
auto rccOptions =
this->GenTarget->GetSafeProperty(kw.AUTORCC_OPTIONS);
std::string const nozstd = "--no-zstd";
if (rccOptions.find(nozstd) == std::string::npos) {
rccOptions.append(";" + nozstd + ";");
}
this->GenTarget->Target->SetProperty(kw.AUTORCC_OPTIONS, rccOptions);
}
this->GenTarget->Target->SetProperty(kw.AUTORCC_OPTIONS, rccOptions);
}
}
}