From 1e550ad02d7aaf3a0c89998cc6b67a271d505448 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 19 Nov 2021 17:56:19 +0100 Subject: AutoMoc: Only add the WIN32 define if the target system is Windows When there's no moc_predefs.h generated, we add the WIN32 define as fallback. Before this change, we added the WIN32 define if the host system was Windows. That's wrong when cross-compiling. Now we're checking whether the target system is Windows. Fixes: #22933 --- Source/cmQtAutoGenInitializer.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/cmQtAutoGenInitializer.cxx b/Source/cmQtAutoGenInitializer.cxx index 64d8ea9..c2a37fe 100644 --- a/Source/cmQtAutoGenInitializer.cxx +++ b/Source/cmQtAutoGenInitializer.cxx @@ -636,12 +636,12 @@ bool cmQtAutoGenInitializer::InitMoc() auto getDefs = [this](std::string const& cfg) -> std::set { std::set defines; this->LocalGen->GetTargetDefines(this->GenTarget, cfg, "CXX", defines); -#ifdef _WIN32 - if (this->Moc.PredefsCmd.empty()) { + if (this->Moc.PredefsCmd.empty() && + this->Makefile->GetSafeDefinition("CMAKE_SYSTEM_NAME") == + "Windows") { // Add WIN32 definition if we don't have a moc_predefs.h defines.insert("WIN32"); } -#endif return defines; }; -- cgit v0.12