Browse Source

Autogen: Revert processing of .hh files for compatibility

Since commit 4a9154537c (Autogen: Use cmake::IsHeader/SourceExtension
for file type detection, 2019-07-02, v3.16.0-rc1~470^2~4) we process
`.hh` files with `AUTOMOC`.  However, this change can break existing
projects that do not expect the behavior.  Revert it for now.  It can
be restored later via a policy.

Fixes: #20101
Brad King 6 years ago
parent
commit
7fa7f55230

+ 4 - 2
Source/cmQtAutoGenInitializer.cxx

@@ -764,7 +764,8 @@ bool cmQtAutoGenInitializer::InitScanFiles()
 
       // Register files that will be scanned by moc or uic
       if (this->MocOrUicEnabled()) {
-        if (cm->IsHeaderExtension(extLower)) {
+        // FIXME: Add a policy to include .hh files.
+        if (cm->IsHeaderExtension(extLower) && extLower != "hh") {
           addMUFile(makeMUFile(sf, fullPath, true), true);
         } else if (cm->IsSourceExtension(extLower)) {
           addMUFile(makeMUFile(sf, fullPath, true), false);
@@ -876,7 +877,8 @@ bool cmQtAutoGenInitializer::InitScanFiles()
       std::string const& extLower =
         cmSystemTools::LowerCase(sf->GetExtension());
 
-      if (cm->IsHeaderExtension(extLower)) {
+      // FIXME: Add a policy to include .hh files.
+      if (cm->IsHeaderExtension(extLower) && extLower != "hh") {
         if (!cmContains(this->AutogenTarget.Headers, sf)) {
           auto muf = makeMUFile(sf, fullPath, false);
           if (muf->SkipMoc || muf->SkipUic) {

+ 0 - 1
Tests/QtAutogen/SameName/CMakeLists.txt

@@ -18,7 +18,6 @@ add_executable(sameName
   ccc/data.qrc
   item.cpp
   object.h
-  object.hh
   object.h++
   object.hpp
   object.hxx

+ 0 - 2
Tests/QtAutogen/SameName/main.cpp

@@ -6,7 +6,6 @@
 #include "item.hpp"
 #include "object.h"
 #include "object.h++"
-#include "object.hh"
 #include "object.hpp"
 #include "object.hxx"
 #include "object_upper_ext.H"
@@ -22,7 +21,6 @@ int main(int argv, char** args)
   ::ccc::Item ccc_item;
   // Object instances
   ::Object_h obj_h;
-  ::Object_hh obj_hh;
   ::Object_hplpl obj_hplpl;
   ::Object_hpp obj_hpp;
   ::Object_hxx obj_hxx;

+ 0 - 13
Tests/QtAutogen/SameName/object.hh

@@ -1,13 +0,0 @@
-#ifndef OBJECT_HH
-#define OBJECT_HH
-
-#include <QObject>
-
-class Object_hh : public QObject
-{
-  Q_OBJECT
-  Q_SLOT
-  void go(){};
-};
-
-#endif