From 0d135d43f0afc128b28e2f66512afe8796a32459 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Fri, 25 Jun 2021 16:15:35 +0200
Subject: [PATCH] MISC: Add a way to use .hh files with cmake

CMP0100 is set to NEW, so moc and uic can be run on .hh files if needed.
This is the new behaviour of the policy so it's safe. It also permits to
separate clearly C++ headers from C ones.
---
 CMakeLists.txt                                           | 4 ++++
 src/Ass/Ass.h                                            | 9 ---------
 src/Ass/Ass.hh                                           | 9 +++++++++
 src/Ass/Char.cc                                          | 4 ++--
 src/Ass/{Char.h => Char.hh}                              | 1 -
 src/Ass/Line.cc                                          | 2 +-
 src/Ass/{Line.h => Line.hh}                              | 3 +--
 src/Ass/Style.cc                                         | 2 +-
 src/Ass/{Style.h => Style.hh}                            | 0
 src/Ass/Syl.cc                                           | 2 +-
 src/Ass/{Syl.h => Syl.hh}                                | 7 ++++---
 src/AudioVisualizer.cc                                   | 2 +-
 src/{AudioVisualizer.h => AudioVisualizer.hh}            | 2 +-
 src/DialogHelp.cc                                        | 4 ++--
 src/{DialogHelp.h => DialogHelp.hh}                      | 0
 src/Document/{CRTPDocument.h => CRTPDocument.hh}         | 4 ++--
 src/Document/VivyDocument.cc                             | 4 ++--
 src/Document/{VivyDocument.h => VivyDocument.hh}         | 4 ++--
 src/Document/VivyDocumentStore.cc                        | 4 ++--
 .../{VivyDocumentStore.h => VivyDocumentStore.hh}        | 4 ++--
 src/Document/VivyDocumentView.cc                         | 6 +++---
 src/Document/{VivyDocumentView.h => VivyDocumentView.hh} | 4 ++--
 src/Main.cc                                              | 4 ++--
 src/MainWindow.cc                                        | 6 +++---
 src/{MainWindow.h => MainWindow.hh}                      | 4 ++--
 src/TimingBar.cc                                         | 2 +-
 src/{TimingBar.h => TimingBar.hh}                        | 0
 src/TimingScene.cc                                       | 2 +-
 src/{TimingScene.hpp => TimingScene.hh}                  | 4 ++--
 src/TimingView.cc                                        | 2 +-
 src/{TimingView.hpp => TimingView.hh}                    | 4 ++--
 src/Utils.cc                                             | 2 +-
 src/{Utils.h => Utils.hh}                                | 0
 src/VivyApplication.cc                                   | 4 ++--
 src/{VivyApplication.h => VivyApplication.hh}            | 0
 35 files changed, 59 insertions(+), 56 deletions(-)
 delete mode 100644 src/Ass/Ass.h
 create mode 100644 src/Ass/Ass.hh
 rename src/Ass/{Char.h => Char.hh} (96%)
 rename src/Ass/{Line.h => Line.hh} (94%)
 rename src/Ass/{Style.h => Style.hh} (100%)
 rename src/Ass/{Syl.h => Syl.hh} (82%)
 rename src/{AudioVisualizer.h => AudioVisualizer.hh} (94%)
 rename src/{DialogHelp.h => DialogHelp.hh} (100%)
 rename src/Document/{CRTPDocument.h => CRTPDocument.hh} (98%)
 rename src/Document/{VivyDocument.h => VivyDocument.hh} (96%)
 rename src/Document/{VivyDocumentStore.h => VivyDocumentStore.hh} (96%)
 rename src/Document/{VivyDocumentView.h => VivyDocumentView.hh} (88%)
 rename src/{MainWindow.h => MainWindow.hh} (91%)
 rename src/{TimingBar.h => TimingBar.hh} (100%)
 rename src/{TimingScene.hpp => TimingScene.hh} (96%)
 rename src/{TimingView.hpp => TimingView.hh} (92%)
 rename src/{Utils.h => Utils.hh} (100%)
 rename src/{VivyApplication.h => VivyApplication.hh} (100%)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95f9e505..19e4baae 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.5)
 project(Vivy VERSION 0.1)
 
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
+cmake_policy(SET CMP0100 NEW) # Let cmake use moc and uic for .hh files
 
 set(CMAKE_AUTOUIC ON)
 set(CMAKE_AUTOMOC ON)
@@ -35,8 +36,11 @@ file(GLOB Vivy_SRC
 )
 file(GLOB Vivy_INC
     "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/src/*.hh"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/*.hh"
     "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/*.h"
+    "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/*.hh"
 )
 set(PROJECT_SOURCES
     ${Vivy_SRC}
diff --git a/src/Ass/Ass.h b/src/Ass/Ass.h
deleted file mode 100644
index 6656703b..00000000
--- a/src/Ass/Ass.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef VIVY_ASS_ASS_H
-#define VIVY_ASS_ASS_H
-
-#include "Char.h"
-#include "Line.h"
-#include "Syl.h"
-#include "Style.h"
-
-#endif // VIVY_ASS_ASS_H
diff --git a/src/Ass/Ass.hh b/src/Ass/Ass.hh
new file mode 100644
index 00000000..2437996d
--- /dev/null
+++ b/src/Ass/Ass.hh
@@ -0,0 +1,9 @@
+#ifndef VIVY_ASS_ASS_H
+#define VIVY_ASS_ASS_H
+
+#include "Char.hh"
+#include "Line.hh"
+#include "Syl.hh"
+#include "Style.hh"
+
+#endif // VIVY_ASS_ASS_H
diff --git a/src/Ass/Char.cc b/src/Ass/Char.cc
index 4cb2cb45..9ba0f77f 100644
--- a/src/Ass/Char.cc
+++ b/src/Ass/Char.cc
@@ -1,5 +1,5 @@
-#include "Char.h"
-#include "Syl.h"
+#include "Char.hh"
+#include "Syl.hh"
 
 Char::Char(Syl *const syl, const QChar /*unused*/)
     : parentLine(syl->parentLine)
diff --git a/src/Ass/Char.h b/src/Ass/Char.hh
similarity index 96%
rename from src/Ass/Char.h
rename to src/Ass/Char.hh
index 89aba5ec..6488e64e 100644
--- a/src/Ass/Char.h
+++ b/src/Ass/Char.hh
@@ -1,7 +1,6 @@
 #ifndef VIVY_ASS_CHAR_H
 #define VIVY_ASS_CHAR_H
 
-#include "Style.h"
 #include <QChar>
 #include <QtGlobal>
 
diff --git a/src/Ass/Line.cc b/src/Ass/Line.cc
index a9743dd1..31a39891 100644
--- a/src/Ass/Line.cc
+++ b/src/Ass/Line.cc
@@ -1,4 +1,4 @@
-#include "Line.h"
+#include "Line.hh"
 
 Line::Line(const QString & /*unused*/)
 {
diff --git a/src/Ass/Line.h b/src/Ass/Line.hh
similarity index 94%
rename from src/Ass/Line.h
rename to src/Ass/Line.hh
index f42abdac..e2aa48c5 100644
--- a/src/Ass/Line.h
+++ b/src/Ass/Line.hh
@@ -3,8 +3,7 @@
 
 #include <QString>
 #include <QtGlobal>
-#include "Style.h"
-#include "Syl.h"
+#include "Syl.hh"
 
 class Line {
 private:
diff --git a/src/Ass/Style.cc b/src/Ass/Style.cc
index b3067b29..859de90d 100644
--- a/src/Ass/Style.cc
+++ b/src/Ass/Style.cc
@@ -1,4 +1,4 @@
-#include "Style.h"
+#include "Style.hh"
 
 Style::Style(const QString & /*unused*/)
 {
diff --git a/src/Ass/Style.h b/src/Ass/Style.hh
similarity index 100%
rename from src/Ass/Style.h
rename to src/Ass/Style.hh
diff --git a/src/Ass/Syl.cc b/src/Ass/Syl.cc
index 5eb7869f..9fbe6d34 100644
--- a/src/Ass/Syl.cc
+++ b/src/Ass/Syl.cc
@@ -1,4 +1,4 @@
-#include "Syl.h"
+#include "Syl.hh"
 
 Syl::Syl(Line *const line, const QString & /*unused*/)
     : parentLine(line)
diff --git a/src/Ass/Syl.h b/src/Ass/Syl.hh
similarity index 82%
rename from src/Ass/Syl.h
rename to src/Ass/Syl.hh
index 3dd6c425..6cac6bfc 100644
--- a/src/Ass/Syl.h
+++ b/src/Ass/Syl.hh
@@ -1,9 +1,10 @@
 #ifndef VIVY_SYL_H
 #define VIVY_SYL_H
 
-#include "Char.h"
-#include "Style.h"
-#include <cstdint>
+#include "Char.hh"
+#include <QString>
+#include <QVector>
+#include <QtGlobal>
 
 class Line;
 
diff --git a/src/AudioVisualizer.cc b/src/AudioVisualizer.cc
index 5cac8408..6407db7b 100644
--- a/src/AudioVisualizer.cc
+++ b/src/AudioVisualizer.cc
@@ -1,4 +1,4 @@
-#include "AudioVisualizer.h"
+#include "AudioVisualizer.hh"
 #include "AudioUtils.h"
 
 #include <QGraphicsPixmapItem>
diff --git a/src/AudioVisualizer.h b/src/AudioVisualizer.hh
similarity index 94%
rename from src/AudioVisualizer.h
rename to src/AudioVisualizer.hh
index 2673469b..7f4f4a8b 100644
--- a/src/AudioVisualizer.h
+++ b/src/AudioVisualizer.hh
@@ -5,7 +5,7 @@
 #error "This is a C++ header"
 #endif
 
-#include "TimingView.hpp"
+#include "TimingView.hh"
 #include <QWidget>
 #include <QString>
 
diff --git a/src/DialogHelp.cc b/src/DialogHelp.cc
index e99785c0..9fbf1f73 100644
--- a/src/DialogHelp.cc
+++ b/src/DialogHelp.cc
@@ -1,5 +1,5 @@
-#include "DialogHelp.h"
-#include "VivyApplication.h"
+#include "DialogHelp.hh"
+#include "VivyApplication.hh"
 
 #include <QWidget>
 #include <QLabel>
diff --git a/src/DialogHelp.h b/src/DialogHelp.hh
similarity index 100%
rename from src/DialogHelp.h
rename to src/DialogHelp.hh
diff --git a/src/Document/CRTPDocument.h b/src/Document/CRTPDocument.hh
similarity index 98%
rename from src/Document/CRTPDocument.h
rename to src/Document/CRTPDocument.hh
index 7c998a1e..4fd2ba91 100644
--- a/src/Document/CRTPDocument.h
+++ b/src/Document/CRTPDocument.hh
@@ -5,8 +5,8 @@
 #error "This is a C++ header"
 #endif
 
-#include "../Utils.h"
-#include "../Ass/Ass.h"
+#include "../Utils.hh"
+#include "../Ass/Ass.hh"
 #include <QString>
 #include <memory>
 
diff --git a/src/Document/VivyDocument.cc b/src/Document/VivyDocument.cc
index ccb47a2a..6a2455ea 100644
--- a/src/Document/VivyDocument.cc
+++ b/src/Document/VivyDocument.cc
@@ -1,5 +1,5 @@
-#include "VivyDocument.h"
-#include "../Utils.h"
+#include "VivyDocument.hh"
+#include "../Utils.hh"
 
 #include <QFileInfo>
 #include <QString>
diff --git a/src/Document/VivyDocument.h b/src/Document/VivyDocument.hh
similarity index 96%
rename from src/Document/VivyDocument.h
rename to src/Document/VivyDocument.hh
index ff396dd5..cad06e31 100644
--- a/src/Document/VivyDocument.h
+++ b/src/Document/VivyDocument.hh
@@ -5,8 +5,8 @@
 #error "This is a C++ header"
 #endif
 
-#include "../Utils.h"
-#include "CRTPDocument.h"
+#include "../Utils.hh"
+#include "CRTPDocument.hh"
 
 #include <memory>
 #include <QString>
diff --git a/src/Document/VivyDocumentStore.cc b/src/Document/VivyDocumentStore.cc
index 07c4fd8b..55f6fd32 100644
--- a/src/Document/VivyDocumentStore.cc
+++ b/src/Document/VivyDocumentStore.cc
@@ -1,5 +1,5 @@
-#include "VivyDocumentStore.h"
-#include "VivyDocument.h"
+#include "VivyDocumentStore.hh"
+#include "VivyDocument.hh"
 
 VivyDocumentStore::~VivyDocumentStore() noexcept
 {
diff --git a/src/Document/VivyDocumentStore.h b/src/Document/VivyDocumentStore.hh
similarity index 96%
rename from src/Document/VivyDocumentStore.h
rename to src/Document/VivyDocumentStore.hh
index b7e9c2cb..557d1b47 100644
--- a/src/Document/VivyDocumentStore.h
+++ b/src/Document/VivyDocumentStore.hh
@@ -1,8 +1,8 @@
 #ifndef VIVY_DOCUMENTSTORE_H
 #define VIVY_DOCUMENTSTORE_H
 
-#include "VivyDocument.h"
-#include "VivyDocumentView.h"
+#include "VivyDocument.hh"
+#include "VivyDocumentView.hh"
 
 #include <QMap>
 #include <QString>
diff --git a/src/Document/VivyDocumentView.cc b/src/Document/VivyDocumentView.cc
index a1adb649..a71fc506 100644
--- a/src/Document/VivyDocumentView.cc
+++ b/src/Document/VivyDocumentView.cc
@@ -1,6 +1,6 @@
-#include "VivyDocumentView.h"
-#include "../AudioVisualizer.h"
-#include "VivyDocument.h"
+#include "VivyDocumentView.hh"
+#include "../AudioVisualizer.hh"
+#include "VivyDocument.hh"
 
 #include <QVBoxLayout>
 
diff --git a/src/Document/VivyDocumentView.h b/src/Document/VivyDocumentView.hh
similarity index 88%
rename from src/Document/VivyDocumentView.h
rename to src/Document/VivyDocumentView.hh
index c23979a9..945ebfd7 100644
--- a/src/Document/VivyDocumentView.h
+++ b/src/Document/VivyDocumentView.hh
@@ -5,8 +5,8 @@
 #error "This is a C++ header"
 #endif
 
-#include "VivyDocument.h"
-#include "../AudioVisualizer.h"
+#include "VivyDocument.hh"
+#include "../AudioVisualizer.hh"
 
 #include <QWidget>
 
diff --git a/src/Main.cc b/src/Main.cc
index 9d9c24ef..a3a0f381 100644
--- a/src/Main.cc
+++ b/src/Main.cc
@@ -1,5 +1,5 @@
-#include "MainWindow.h"
-#include "VivyApplication.h"
+#include "MainWindow.hh"
+#include "VivyApplication.hh"
 
 auto
 main(int argc, char **argv) noexcept -> int
diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index e2d7edd0..83c5d41e 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -1,8 +1,8 @@
 #define VIVY_MAINWINDOW_CC
 
-#include "MainWindow.h"
-#include "DialogHelp.h"
-#include "Document/VivyDocumentView.h"
+#include "MainWindow.hh"
+#include "DialogHelp.hh"
+#include "Document/VivyDocumentView.hh"
 
 #include <QFileInfo>
 #include <QStandardPaths>
diff --git a/src/MainWindow.h b/src/MainWindow.hh
similarity index 91%
rename from src/MainWindow.h
rename to src/MainWindow.hh
index b9f87f6d..0d8c09bf 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.hh
@@ -5,8 +5,8 @@
 #error "This is a C++ header"
 #endif
 
-#include "AudioVisualizer.h"
-#include "Document/VivyDocumentStore.h"
+#include "AudioVisualizer.hh"
+#include "Document/VivyDocumentStore.hh"
 #include <QMainWindow>
 
 class QMenu;
diff --git a/src/TimingBar.cc b/src/TimingBar.cc
index a9ca196e..f0678033 100644
--- a/src/TimingBar.cc
+++ b/src/TimingBar.cc
@@ -1,4 +1,4 @@
-#include "TimingBar.h"
+#include "TimingBar.hh"
 
 #include <QApplication>
 #include <QGraphicsSceneMouseEvent>
diff --git a/src/TimingBar.h b/src/TimingBar.hh
similarity index 100%
rename from src/TimingBar.h
rename to src/TimingBar.hh
diff --git a/src/TimingScene.cc b/src/TimingScene.cc
index 3841edef..6ca373a0 100644
--- a/src/TimingScene.cc
+++ b/src/TimingScene.cc
@@ -1,4 +1,4 @@
-#include "TimingScene.hpp"
+#include "TimingScene.hh"
 
 #include <QGraphicsLineItem>
 #include <QGraphicsPixmapItem>
diff --git a/src/TimingScene.hpp b/src/TimingScene.hh
similarity index 96%
rename from src/TimingScene.hpp
rename to src/TimingScene.hh
index 352b2099..144a76cb 100644
--- a/src/TimingScene.hpp
+++ b/src/TimingScene.hh
@@ -1,8 +1,8 @@
 #ifndef VIVY_TIMING_SCENE_H
 #define VIVY_TIMING_SCENE_H
 
-#include "TimingBar.h"
-#include "Ass/Line.h"
+#include "Ass/Line.hh"
+#include "TimingBar.hh"
 
 #include <QWidget>
 #include <QColor>
diff --git a/src/TimingView.cc b/src/TimingView.cc
index dcb7f826..86a067de 100644
--- a/src/TimingView.cc
+++ b/src/TimingView.cc
@@ -1,4 +1,4 @@
-#include "TimingView.hpp"
+#include "TimingView.hh"
 
 #include <QAbstractScrollArea>
 #include <QGraphicsLineItem>
diff --git a/src/TimingView.hpp b/src/TimingView.hh
similarity index 92%
rename from src/TimingView.hpp
rename to src/TimingView.hh
index 1b6a8647..675ac0d2 100644
--- a/src/TimingView.hpp
+++ b/src/TimingView.hh
@@ -5,8 +5,8 @@
 #error "This is a C++ header"
 #endif
 
-#include "TimingBar.h"
-#include "TimingScene.hpp"
+#include "TimingBar.hh"
+#include "TimingScene.hh"
 
 #include <QWidget>
 #include <QColor>
diff --git a/src/Utils.cc b/src/Utils.cc
index eb974f1d..6fab4a18 100644
--- a/src/Utils.cc
+++ b/src/Utils.cc
@@ -1,4 +1,4 @@
-#include "Utils.h"
+#include "Utils.hh"
 
 #include <QFileInfo>
 
diff --git a/src/Utils.h b/src/Utils.hh
similarity index 100%
rename from src/Utils.h
rename to src/Utils.hh
diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc
index ed779647..5cb26f87 100644
--- a/src/VivyApplication.cc
+++ b/src/VivyApplication.cc
@@ -1,5 +1,5 @@
-#include "VivyApplication.h"
-#include "MainWindow.h"
+#include "VivyApplication.hh"
+#include "MainWindow.hh"
 
 #include <stdexcept>
 
diff --git a/src/VivyApplication.h b/src/VivyApplication.hh
similarity index 100%
rename from src/VivyApplication.h
rename to src/VivyApplication.hh
-- 
GitLab