From a4bd9bcdd1caf7f8eff213dcbf535bad84c02171 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Tue, 6 Jul 2021 21:22:22 +0200 Subject: [PATCH] BUILD: New folder hierarchy Two main folders: Lib and UI. The Lib is specialized in Document and Ass, the UI is specialized for private DocumentViews (private document views) and others (future ScriptViews, etc) --- CMakeLists.txt | 64 ++++++------------- src/{ => Lib}/Ass/Ass.hh | 0 src/{ => Lib}/Ass/AssFactory.cc | 0 src/{ => Lib}/Ass/AssFactory.hh | 2 +- src/{ => Lib}/Ass/Char.cc | 0 src/{ => Lib}/Ass/Char.hh | 0 src/{ => Lib}/Ass/Line.cc | 0 src/{ => Lib}/Ass/Line.hh | 0 src/{ => Lib}/Ass/Style.cc | 0 src/{ => Lib}/Ass/Style.hh | 0 src/{ => Lib}/Ass/StyleProperties.hh | 0 src/{ => Lib}/Ass/Syl.cc | 0 src/{ => Lib}/Ass/Syl.hh | 0 src/{ => Lib}/Document/CRTPSubDocument.cc | 0 src/{ => Lib}/Document/CRTPSubDocument.hh | 4 +- src/{ => Lib}/Document/VivyDocument.cc | 2 +- src/{ => Lib}/Document/VivyDocument.hh | 2 +- src/{ => Lib}/Document/VivyDocumentStore.cc | 0 src/{ => Lib}/Document/VivyDocumentStore.hh | 2 +- src/UI/{ => DocumentViews}/AudioVisualizer.cc | 2 +- src/UI/{ => DocumentViews}/AudioVisualizer.hh | 2 +- src/UI/{ => DocumentViews}/TimingBar.cc | 0 src/UI/{ => DocumentViews}/TimingBar.hh | 0 src/UI/{ => DocumentViews}/TimingScene.cc | 2 +- src/UI/{ => DocumentViews}/TimingScene.hh | 4 +- src/UI/{ => DocumentViews}/TimingView.cc | 0 src/UI/{ => DocumentViews}/TimingView.hh | 2 +- src/UI/MainWindow.hh | 4 +- src/UI/VivyDocumentView.cc | 4 +- src/UI/VivyDocumentView.hh | 4 +- src/VivyApplication.hh | 2 +- 31 files changed, 40 insertions(+), 62 deletions(-) rename src/{ => Lib}/Ass/Ass.hh (100%) rename src/{ => Lib}/Ass/AssFactory.cc (100%) rename src/{ => Lib}/Ass/AssFactory.hh (98%) rename src/{ => Lib}/Ass/Char.cc (100%) rename src/{ => Lib}/Ass/Char.hh (100%) rename src/{ => Lib}/Ass/Line.cc (100%) rename src/{ => Lib}/Ass/Line.hh (100%) rename src/{ => Lib}/Ass/Style.cc (100%) rename src/{ => Lib}/Ass/Style.hh (100%) rename src/{ => Lib}/Ass/StyleProperties.hh (100%) rename src/{ => Lib}/Ass/Syl.cc (100%) rename src/{ => Lib}/Ass/Syl.hh (100%) rename src/{ => Lib}/Document/CRTPSubDocument.cc (100%) rename src/{ => Lib}/Document/CRTPSubDocument.hh (98%) rename src/{ => Lib}/Document/VivyDocument.cc (99%) rename src/{ => Lib}/Document/VivyDocument.hh (98%) rename src/{ => Lib}/Document/VivyDocumentStore.cc (100%) rename src/{ => Lib}/Document/VivyDocumentStore.hh (97%) rename src/UI/{ => DocumentViews}/AudioVisualizer.cc (98%) rename src/UI/{ => DocumentViews}/AudioVisualizer.hh (97%) rename src/UI/{ => DocumentViews}/TimingBar.cc (100%) rename src/UI/{ => DocumentViews}/TimingBar.hh (100%) rename src/UI/{ => DocumentViews}/TimingScene.cc (98%) rename src/UI/{ => DocumentViews}/TimingScene.hh (95%) rename src/UI/{ => DocumentViews}/TimingView.cc (100%) rename src/UI/{ => DocumentViews}/TimingView.hh (96%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 576c6196..f308c7b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,45 +1,35 @@ cmake_minimum_required(VERSION 3.5) +# Alpho Vivy, CXX only project(Vivy VERSION 0.1 LANGUAGES CXX) - -set(CMAKE_INCLUDE_CURRENT_DIR ON) cmake_policy(SET CMP0100 NEW) # Let cmake use moc and uic for .hh files +cmake_policy(SET CMP0009 NEW) # Do not follow symlinks with GLOB_RECURSE +# For Qt set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) +# C++20, at least we try set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) +# Pthread ftw set(THREADS_PREFER_PTHREAD_FLAG ON) -# Find all dependencies -find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) +# Find Qt dependencies +find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets REQUIRED) -find_library(AVCODEC_LIBRARY avcodec 4.0 REQUIRED) -find_library(AVUTIL_LIBRARY avutil 4.0 REQUIRED) -find_library(SWRESAMPLE_LIBRARY swresample REQUIRED) -find_library(AVFORMAT_LIBRARY avformat REQUIRED) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp") +# Find others dependencies +find_library(AVCODEC_LIBRARY avcodec 4.0 REQUIRED) +find_library(AVUTIL_LIBRARY avutil 4.0 REQUIRED) +find_library(SWRESAMPLE_LIBRARY swresample REQUIRED) +find_library(AVFORMAT_LIBRARY avformat REQUIRED) # Grab all files -file(GLOB Vivy_SRC - "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/*.cc" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/*.cc" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Lib/*.cc" - "${CMAKE_CURRENT_SOURCE_DIR}/src/UI/*.cc" -) -file(GLOB Vivy_INC - "${CMAKE_CURRENT_SOURCE_DIR}/src/*.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/*.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/*.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Lib/*.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/UI/*.hh" -) +file(GLOB_RECURSE Vivy_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc") +file(GLOB_RECURSE Vivy_INC "${CMAKE_CURRENT_SOURCE_DIR}/src/*.hh") set(PROJECT_SOURCES ${Vivy_SRC} ${Vivy_INC} @@ -68,24 +58,7 @@ target_link_libraries(Vivy PRIVATE ${AVFORMAT_LIBRARY}) # Headers related things target_include_directories(Vivy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/inc) -target_precompile_headers(Vivy PRIVATE - # ASS headers - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/Ass.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/Line.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/Syl.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/Style.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/AssFactory.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Ass/Char.hh" - - # Libs - "${CMAKE_CURRENT_SOURCE_DIR}/src/Lib/Utils.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Lib/Audio.hh" - - # Document headers - "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/VivyDocument.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/VivyDocumentStore.hh" - "${CMAKE_CURRENT_SOURCE_DIR}/src/Document/CRTPSubDocument.hh" -) +target_precompile_headers(Vivy PRIVATE ${Vivy_INC}) # More options and warnings target_compile_options(Vivy PRIVATE @@ -96,11 +69,16 @@ target_compile_options(Vivy PRIVATE -Woverloaded-virtual -Wnon-virtual-dtor ) +# Some compiler specific warnings and options if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") target_compile_options(Vivy PRIVATE - -Wno-unused-private-field # Skip the unused private fields for now + -Wno-unused-private-field # Skip the unused private fields for now + -fopenmp # We do OpenMP here ) + target_link_libraries(Vivy PRIVATE -fopenmp) elseif (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + target_compile_options(Vivy PRIVATE -fopenmp) + target_link_libraries(Vivy PRIVATE -fopenmp) endif() set_target_properties(Vivy PROPERTIES diff --git a/src/Ass/Ass.hh b/src/Lib/Ass/Ass.hh similarity index 100% rename from src/Ass/Ass.hh rename to src/Lib/Ass/Ass.hh diff --git a/src/Ass/AssFactory.cc b/src/Lib/Ass/AssFactory.cc similarity index 100% rename from src/Ass/AssFactory.cc rename to src/Lib/Ass/AssFactory.cc diff --git a/src/Ass/AssFactory.hh b/src/Lib/Ass/AssFactory.hh similarity index 98% rename from src/Ass/AssFactory.hh rename to src/Lib/Ass/AssFactory.hh index e5343ec9..48f849b0 100644 --- a/src/Ass/AssFactory.hh +++ b/src/Lib/Ass/AssFactory.hh @@ -1,7 +1,7 @@ #ifndef VIVY_ASS_FACTORY_H #define VIVY_ASS_FACTORY_H -#include "../Lib/Utils.hh" +#include "../Utils.hh" #include "Style.hh" #include "Line.hh" diff --git a/src/Ass/Char.cc b/src/Lib/Ass/Char.cc similarity index 100% rename from src/Ass/Char.cc rename to src/Lib/Ass/Char.cc diff --git a/src/Ass/Char.hh b/src/Lib/Ass/Char.hh similarity index 100% rename from src/Ass/Char.hh rename to src/Lib/Ass/Char.hh diff --git a/src/Ass/Line.cc b/src/Lib/Ass/Line.cc similarity index 100% rename from src/Ass/Line.cc rename to src/Lib/Ass/Line.cc diff --git a/src/Ass/Line.hh b/src/Lib/Ass/Line.hh similarity index 100% rename from src/Ass/Line.hh rename to src/Lib/Ass/Line.hh diff --git a/src/Ass/Style.cc b/src/Lib/Ass/Style.cc similarity index 100% rename from src/Ass/Style.cc rename to src/Lib/Ass/Style.cc diff --git a/src/Ass/Style.hh b/src/Lib/Ass/Style.hh similarity index 100% rename from src/Ass/Style.hh rename to src/Lib/Ass/Style.hh diff --git a/src/Ass/StyleProperties.hh b/src/Lib/Ass/StyleProperties.hh similarity index 100% rename from src/Ass/StyleProperties.hh rename to src/Lib/Ass/StyleProperties.hh diff --git a/src/Ass/Syl.cc b/src/Lib/Ass/Syl.cc similarity index 100% rename from src/Ass/Syl.cc rename to src/Lib/Ass/Syl.cc diff --git a/src/Ass/Syl.hh b/src/Lib/Ass/Syl.hh similarity index 100% rename from src/Ass/Syl.hh rename to src/Lib/Ass/Syl.hh diff --git a/src/Document/CRTPSubDocument.cc b/src/Lib/Document/CRTPSubDocument.cc similarity index 100% rename from src/Document/CRTPSubDocument.cc rename to src/Lib/Document/CRTPSubDocument.cc diff --git a/src/Document/CRTPSubDocument.hh b/src/Lib/Document/CRTPSubDocument.hh similarity index 98% rename from src/Document/CRTPSubDocument.hh rename to src/Lib/Document/CRTPSubDocument.hh index 16c86dd2..f89b26f6 100644 --- a/src/Document/CRTPSubDocument.hh +++ b/src/Lib/Document/CRTPSubDocument.hh @@ -5,8 +5,8 @@ #error "This is a C++ header" #endif -#include "../Lib/Utils.hh" -#include "../Lib/Audio.hh" +#include "../Utils.hh" +#include "../Audio.hh" #include "../Ass/Ass.hh" #include <QString> #include <memory> diff --git a/src/Document/VivyDocument.cc b/src/Lib/Document/VivyDocument.cc similarity index 99% rename from src/Document/VivyDocument.cc rename to src/Lib/Document/VivyDocument.cc index ed97966b..66708df9 100644 --- a/src/Document/VivyDocument.cc +++ b/src/Lib/Document/VivyDocument.cc @@ -1,5 +1,5 @@ #include "VivyDocument.hh" -#include "../Lib/Utils.hh" +#include "../Utils.hh" #include <QFileInfo> #include <QString> diff --git a/src/Document/VivyDocument.hh b/src/Lib/Document/VivyDocument.hh similarity index 98% rename from src/Document/VivyDocument.hh rename to src/Lib/Document/VivyDocument.hh index 8e29b3db..da2f91a9 100644 --- a/src/Document/VivyDocument.hh +++ b/src/Lib/Document/VivyDocument.hh @@ -5,7 +5,7 @@ #error "This is a C++ header" #endif -#include "../Lib/Utils.hh" +#include "../Utils.hh" #include "CRTPSubDocument.hh" #include <memory> diff --git a/src/Document/VivyDocumentStore.cc b/src/Lib/Document/VivyDocumentStore.cc similarity index 100% rename from src/Document/VivyDocumentStore.cc rename to src/Lib/Document/VivyDocumentStore.cc diff --git a/src/Document/VivyDocumentStore.hh b/src/Lib/Document/VivyDocumentStore.hh similarity index 97% rename from src/Document/VivyDocumentStore.hh rename to src/Lib/Document/VivyDocumentStore.hh index 047a49ab..f25fd3f7 100644 --- a/src/Document/VivyDocumentStore.hh +++ b/src/Lib/Document/VivyDocumentStore.hh @@ -2,7 +2,7 @@ #define VIVY_DOCUMENTSTORE_H #include "VivyDocument.hh" -#include "../Lib/Utils.hh" +#include "../Utils.hh" #include <QMap> #include <QString> diff --git a/src/UI/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc similarity index 98% rename from src/UI/AudioVisualizer.cc rename to src/UI/DocumentViews/AudioVisualizer.cc index d55f2d1c..fa8d02c1 100644 --- a/src/UI/AudioVisualizer.cc +++ b/src/UI/DocumentViews/AudioVisualizer.cc @@ -1,5 +1,5 @@ #include "AudioVisualizer.hh" -#include "../Lib/Audio.hh" +#include "../../Lib/Audio.hh" #include <algorithm> #include <QGraphicsPixmapItem> diff --git a/src/UI/AudioVisualizer.hh b/src/UI/DocumentViews/AudioVisualizer.hh similarity index 97% rename from src/UI/AudioVisualizer.hh rename to src/UI/DocumentViews/AudioVisualizer.hh index 3273d285..451d5080 100644 --- a/src/UI/AudioVisualizer.hh +++ b/src/UI/DocumentViews/AudioVisualizer.hh @@ -6,7 +6,7 @@ #endif #include "TimingView.hh" -#include "../Lib/Audio.hh" +#include "../../Lib/Audio.hh" #include <QWidget> #include <QString> diff --git a/src/UI/TimingBar.cc b/src/UI/DocumentViews/TimingBar.cc similarity index 100% rename from src/UI/TimingBar.cc rename to src/UI/DocumentViews/TimingBar.cc diff --git a/src/UI/TimingBar.hh b/src/UI/DocumentViews/TimingBar.hh similarity index 100% rename from src/UI/TimingBar.hh rename to src/UI/DocumentViews/TimingBar.hh diff --git a/src/UI/TimingScene.cc b/src/UI/DocumentViews/TimingScene.cc similarity index 98% rename from src/UI/TimingScene.cc rename to src/UI/DocumentViews/TimingScene.cc index 7d2e2115..3c916fd0 100644 --- a/src/UI/TimingScene.cc +++ b/src/UI/DocumentViews/TimingScene.cc @@ -1,5 +1,5 @@ #include "TimingScene.hh" -#include "../Lib/Utils.hh" +#include "../../Lib/Utils.hh" #include <QGraphicsLineItem> #include <QGraphicsPixmapItem> diff --git a/src/UI/TimingScene.hh b/src/UI/DocumentViews/TimingScene.hh similarity index 95% rename from src/UI/TimingScene.hh rename to src/UI/DocumentViews/TimingScene.hh index 860acecb..901de0fa 100644 --- a/src/UI/TimingScene.hh +++ b/src/UI/DocumentViews/TimingScene.hh @@ -1,8 +1,8 @@ #ifndef VIVY_TIMING_SCENE_H #define VIVY_TIMING_SCENE_H -#include "../Lib/Utils.hh" -#include "../Ass/Ass.hh" +#include "../../Lib/Utils.hh" +#include "../../Lib/Ass/Ass.hh" #include "TimingBar.hh" #include <QWidget> diff --git a/src/UI/TimingView.cc b/src/UI/DocumentViews/TimingView.cc similarity index 100% rename from src/UI/TimingView.cc rename to src/UI/DocumentViews/TimingView.cc diff --git a/src/UI/TimingView.hh b/src/UI/DocumentViews/TimingView.hh similarity index 96% rename from src/UI/TimingView.hh rename to src/UI/DocumentViews/TimingView.hh index b2f11f79..8f4328fa 100644 --- a/src/UI/TimingView.hh +++ b/src/UI/DocumentViews/TimingView.hh @@ -5,7 +5,7 @@ #error "This is a C++ header" #endif -#include "../Lib/Utils.hh" +#include "../../Lib/Utils.hh" #include "TimingBar.hh" #include "TimingScene.hh" diff --git a/src/UI/MainWindow.hh b/src/UI/MainWindow.hh index 45910f4a..dc694444 100644 --- a/src/UI/MainWindow.hh +++ b/src/UI/MainWindow.hh @@ -6,8 +6,8 @@ #endif #include "../Lib/Utils.hh" -#include "AudioVisualizer.hh" -#include "../Document/VivyDocumentStore.hh" +#include "../Lib/Document/VivyDocumentStore.hh" +#include "DocumentViews/AudioVisualizer.hh" #include "VivyDocumentView.hh" #include <QMainWindow> diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index 962f33d4..e7d54012 100644 --- a/src/UI/VivyDocumentView.cc +++ b/src/UI/VivyDocumentView.cc @@ -1,8 +1,8 @@ #include "VivyDocumentView.hh" -#include "AudioVisualizer.hh" #include "PropertyModel.hh" +#include "DocumentViews/AudioVisualizer.hh" #include "../VivyApplication.hh" -#include "../Document/VivyDocument.hh" +#include "../Lib/Document/VivyDocument.hh" #include <QHeaderView> #include <QTreeView> diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh index 70535b45..28d991b8 100644 --- a/src/UI/VivyDocumentView.hh +++ b/src/UI/VivyDocumentView.hh @@ -5,8 +5,8 @@ #error "This is a C++ header" #endif -#include "../Document/VivyDocument.hh" -#include "AudioVisualizer.hh" +#include "../Lib/Document/VivyDocument.hh" +#include "DocumentViews/AudioVisualizer.hh" #include "DocumentView.hh" #include "PropertyModel.hh" diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh index 4492f054..579f9b78 100644 --- a/src/VivyApplication.hh +++ b/src/VivyApplication.hh @@ -9,7 +9,7 @@ #include <QApplication> #include <QPixmap> -#include "Document/VivyDocumentStore.hh" +#include "Lib/Document/VivyDocumentStore.hh" #include <memory> namespace Vivy -- GitLab