浏览代码

Autogen: Revert "Add timestamp file for CMAKE_GLOBAL_AUTORCC_TARGET"

In the commit 8d99e71b, a new timestamp file was added to prevent
unneeded `AUTORCC` triggering after successful builds when
`CMAKE_GLOBAL_AUTORCC_TARGET` is ON. This caused a regression that
configuration fails when multiple `.qrc` files are added to a target.
This commits reverts 8d99e71b.

Issue: #26059
Fixes: #26126
Orkun Tokdemir 1 年之前
父节点
当前提交
9ffac91e37
共有 2 个文件被更改,包括 7 次插入53 次删除
  1. 7 37
      Source/cmQtAutoGenInitializer.cxx
  2. 0 16
      Tests/RunCMake/Autogen_5/RunCMakeTest.cmake

+ 7 - 37
Source/cmQtAutoGenInitializer.cxx

@@ -1673,43 +1673,13 @@ bool cmQtAutoGenInitializer::InitRccTargets()
         if (!qrc.Unique) {
         if (!qrc.Unique) {
           ccName += cmStrCat('_', qrc.QrcPathChecksum);
           ccName += cmStrCat('_', qrc.QrcPathChecksum);
         }
         }
-        cmTarget* autoRccTarget = nullptr;
-        // When CMAKE_GLOBAL_AUTORCC_TARGET is ON and qrc is not generated,
-        // Add generate a timestamp file and a custom command to touch it.
-        // This will ensure that the global autorcc target is run only when the
-        // qrc file changes.
-        if (!qrc.Generated && this->Rcc.GlobalTarget) {
-          cm::string_view const timestampFileName = "global_rcc_timestamp";
-          auto const outputFile =
-            cmStrCat(this->Dir.Build, "/", timestampFileName);
-          commandLines.push_back(cmMakeCommandLine(
-            { cmSystemTools::GetCMakeCommand(), "-E", "touch", outputFile }));
-          cc->SetByproducts(ccOutput);
-          cc->SetDepends(ccDepends);
-          cc->SetEscapeOldStyle(false);
-          cc->SetOutputs(outputFile);
-          cc->SetCommandLines(commandLines);
-          this->LocalGen->AddCustomCommandToOutput(std::move(cc));
-          this->AddGeneratedSource(outputFile, this->Rcc);
-          ccDepends.clear();
-          ccDepends.push_back(outputFile);
-
-          auto ccRccTarget = cm::make_unique<cmCustomCommand>();
-          ccRccTarget->SetWorkingDirectory(this->Dir.Work.c_str());
-          ccRccTarget->SetComment(ccComment.c_str());
-          ccRccTarget->SetStdPipesUTF8(true);
-          ccRccTarget->SetDepends(ccDepends);
-          ccRccTarget->SetEscapeOldStyle(false);
-
-          autoRccTarget = this->LocalGen->AddUtilityCommand(
-            ccName, true, std::move(ccRccTarget));
-        } else {
-          cc->SetByproducts(ccOutput);
-          cc->SetDepends(ccDepends);
-          cc->SetEscapeOldStyle(false);
-          autoRccTarget =
-            this->LocalGen->AddUtilityCommand(ccName, true, std::move(cc));
-        }
+
+        cc->SetByproducts(ccOutput);
+        cc->SetDepends(ccDepends);
+        cc->SetEscapeOldStyle(false);
+        cmTarget* autoRccTarget =
+          this->LocalGen->AddUtilityCommand(ccName, true, std::move(cc));
+
         // Create autogen generator target
         // Create autogen generator target
         this->LocalGen->AddGeneratorTarget(
         this->LocalGen->AddGeneratorTarget(
           cm::make_unique<cmGeneratorTarget>(autoRccTarget, this->LocalGen));
           cm::make_unique<cmGeneratorTarget>(autoRccTarget, this->LocalGen));

+ 0 - 16
Tests/RunCMake/Autogen_5/RunCMakeTest.cmake

@@ -27,21 +27,5 @@ if (DEFINED with_qt_version)
         endblock()
         endblock()
       endforeach()
       endforeach()
     endif()
     endif()
-    if (RunCMake_GENERATOR MATCHES "Ninja")
-      block()
-        set(RunCMake_TEST_BINARY_DIR
-          ${RunCMake_BINARY_DIR}/RccGlobalAutoRcc-build)
-        run_cmake_with_options(RccExample ${RunCMake_TEST_OPTIONS}
-          -DCMAKE_GLOBAL_AUTORCC_TARGET=ON)
-        set(RunCMake_TEST_NO_CLEAN 1)
-        set(RunCMake_TEST_VARIANT_DESCRIPTION "-First-build")
-        run_cmake_command(RccGlobalAutoRcc-build ${CMAKE_COMMAND}
-          --build . --config Debug)
-        set(RunCMake_TEST_VARIANT_DESCRIPTION "-Second-build-nothing-to-do")
-        set(RunCMake_TEST_NOT_EXPECT_stdout "Automatic RCC for data.qrc")
-        run_cmake_command(RccGlobalAutoRcc-build ${CMAKE_COMMAND}
-          --build . --config Debug)
-      endblock()
-    endif()
   endif()
   endif()
 endif ()
 endif ()