From e23bebed9f4240f59a92163745016decc982e724 Mon Sep 17 00:00:00 2001
From: Alberto Nidasio <alberto.nidasio@skywarder.eu>
Date: Thu, 29 Aug 2024 08:41:58 +0000
Subject: [PATCH] [CMake] Fixed version of backward-cpp to v1.6, renamed CMake
 target from groundstation to skywardhub and set C++ standard to 17

---
 .gitlab-ci.yml                                |  14 +++----
 CMakeLists.txt                                |  39 ++++++++++--------
 .../linuxdeploy}/SkywardLogo.png              | Bin
 .../linuxdeploy/skywardhub.desktop            |   5 ++-
 macdeploy.sh => deployment/macdeploy.sh       |   0
 windeploy.bat => deployment/windeploy.bat     |   2 +-
 .../groundstation => }/application.qrc        |   0
 .../assets/icons/SkywardHub.icns              | Bin
 .../assets/icons/SkywardHub.ico               | Bin
 .../assets/icons/SkywardHub.png               | Bin
 .../assets/icons/splitter_horizontal.png      | Bin
 .../assets/icons/splitter_vertical.png        | Bin
 .../assets/models/rocket.obj                  |   0
 .../assets/styles/global.qss                  |   0
 .../assets/styles/white-mode.qss              |   0
 src/{entrypoints/groundstation => }/main.cpp  |   0
 src/shared/Core/QCustomPlot/QCustomPlot.cpp   |  12 +++---
 17 files changed, 39 insertions(+), 33 deletions(-)
 rename {linuxdeploy => deployment/linuxdeploy}/SkywardLogo.png (100%)
 rename linuxdeploy/groundstation.desktop => deployment/linuxdeploy/skywardhub.desktop (67%)
 rename macdeploy.sh => deployment/macdeploy.sh (100%)
 rename windeploy.bat => deployment/windeploy.bat (73%)
 rename src/{entrypoints/groundstation => }/application.qrc (100%)
 rename src/{entrypoints/groundstation => }/assets/icons/SkywardHub.icns (100%)
 rename src/{entrypoints/groundstation => }/assets/icons/SkywardHub.ico (100%)
 rename src/{entrypoints/groundstation => }/assets/icons/SkywardHub.png (100%)
 rename src/{entrypoints/groundstation => }/assets/icons/splitter_horizontal.png (100%)
 rename src/{entrypoints/groundstation => }/assets/icons/splitter_vertical.png (100%)
 rename src/{entrypoints/groundstation => }/assets/models/rocket.obj (100%)
 rename src/{entrypoints/groundstation => }/assets/styles/global.qss (100%)
 rename src/{entrypoints/groundstation => }/assets/styles/white-mode.qss (100%)
 rename src/{entrypoints/groundstation => }/main.cpp (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5b00b928..fc8a40ba 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -60,16 +60,16 @@ build_linux:
   before_script:
     - QMAKE=/opt/qt/$QT_VERSION/gcc_64/bin/qmake
   script:
-    - cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .
+    - cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=RelWithDebInfo .
     - cmake --build build -j 16
     - cd build
-    - linuxdeploy --plugin qt -e groundstation -d ../linuxdeploy/groundstation.desktop -i ../linuxdeploy/SkywardLogo.png --appdir AppDir
+    - linuxdeploy --plugin qt -e skywardhub -d ../deployment/linuxdeploy/skywardhub.desktop -i ../deployment/linuxdeploy/SkywardLogo.png --appdir AppDir
     - appimagetool AppDir
-    - mv Ground_Station-x86_64.AppImage ../Ground_Station-$CI_COMMIT_SHORT_SHA-x86_64.AppImage
+    - mv SkywardHub-x86_64.AppImage ../SkywardHub-$CI_COMMIT_SHORT_SHA-x86_64.AppImage
   artifacts:
     name: Linux AppImage
     paths:
-      - Ground_Station-$CI_COMMIT_SHORT_SHA-x86_64.AppImage
+      - SkywardHub-$CI_COMMIT_SHORT_SHA-x86_64.AppImage
     expire_in: 7 days
 
 build_windows:
@@ -78,13 +78,13 @@ build_windows:
   before_script:
     - export PATH=/home/gitlab-runner/mxe/usr/bin:$PATH
   script:
-    - x86_64-w64-mingw32.static-cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache .
+    - x86_64-w64-mingw32.static-cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=RelWithDebInfo .
     - x86_64-w64-mingw32.static-cmake --build build -j 16
-    - mv build/groundstation.exe Ground_Station-$CI_COMMIT_SHORT_SHA.exe
+    - mv build/skywardhub.exe SkywardHub-$CI_COMMIT_SHORT_SHA.exe
   artifacts:
     name: Windows executable
     paths:
-      - Ground_Station-$CI_COMMIT_SHORT_SHA.exe
+      - SkywardHub-$CI_COMMIT_SHORT_SHA.exe
     expire_in: 7 days
 
 post_on_slack:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f386e77..9b061d2e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,18 +20,12 @@
 # THE SOFTWARE.
 
 cmake_minimum_required(VERSION 3.16)
-# For now we keep debug information on
-set(CMAKE_BUILD_TYPE RelWithDebInfo)
 
 project(SkywardHub)
 
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
-set(CMAKE_AUTOMOC ON)
-set(CMAKE_AUTORCC ON)
-set(CMAKE_AUTOUIC ON)
-
 # MAvLink Skyward library
 add_subdirectory(libs/mavlink-skyward-lib EXCLUDE_FROM_ALL)
 
@@ -42,7 +36,12 @@ add_subdirectory(libs/backward-cpp)
 # Qt5 and its modules
 find_package(Qt5 REQUIRED COMPONENTS Widgets SerialPort PrintSupport 3DCore 3DExtras 3DRender 3DInput)
 
-add_executable(groundstation
+add_executable(skywardhub
+    # Primary files
+    src/main.cpp
+    src/application.qrc
+
+    # Componets
     src/shared/Components/ModulesPicker/ModulesPicker.cpp
     src/shared/Components/SaveConfigurationDialog/SaveConfigurationDialog.cpp
     src/shared/Components/SubscriptionsPanel/SubscriptionsPanel.cpp
@@ -50,6 +49,8 @@ add_executable(groundstation
     src/shared/Components/ErrorDisplayer/Error.cpp
     src/shared/Components/ErrorDisplayer/ErrorDisplayer.cpp
     src/shared/Components/FilterSelector/FilterSelector.cpp
+
+    # Core
     src/shared/Core/Message/Field.cpp
     src/shared/Core/Message/Filter.cpp
     src/shared/Core/Message/Message.cpp
@@ -59,6 +60,8 @@ add_executable(groundstation
     src/shared/Core/Window/Window.cpp
     src/shared/Core/SkywardHubCore.cpp
     src/shared/Core/XmlObject.cpp
+
+    # Modules
     src/shared/Modules/CommandPad/CommandPad.cpp
     src/shared/Modules/CommandPad/MessageFormElement.cpp
     src/shared/Modules/CompactCommandPad/CompactCommandPad.cpp
@@ -91,11 +94,9 @@ add_executable(groundstation
     src/shared/Modules/ModulesList.cpp
     src/shared/Modules/ValvesViewer/ValvesViewer.cpp
     src/shared/Modules/Module.cpp
-    src/entrypoints/groundstation/application.qrc
-    src/entrypoints/groundstation/main.cpp
 )
-target_include_directories(groundstation PRIVATE src/shared)
-target_link_libraries(groundstation PUBLIC
+target_include_directories(skywardhub PRIVATE src/shared)
+target_link_libraries(skywardhub PUBLIC
     Qt5::Widgets
     Qt5::SerialPort
     Qt5::PrintSupport
@@ -106,13 +107,17 @@ target_link_libraries(groundstation PUBLIC
     Mavlink::Mavlink
 )
 
+set_target_properties(skywardhub PROPERTIES AUTOMOC ON)
+set_target_properties(skywardhub PROPERTIES AUTORCC ON)
+set_target_properties(skywardhub PROPERTIES AUTOUIC ON)
+
 # Prevent the creation of a console window on Windows
-set_target_properties(groundstation PROPERTIES WIN32_EXECUTABLE TRUE)
+set_target_properties(skywardhub PROPERTIES WIN32_EXECUTABLE TRUE)
 
 # Create an applkication build on MacOS
-set_target_properties(groundstation PROPERTIES MACOSX_BUNDLE TRUE)
+set_target_properties(skywardhub PROPERTIES MACOSX_BUNDLE TRUE)
 
-add_backward(groundstation)
+add_backward(skywardhub)
 if(UNIX)
     set(BACKWARD_HAS_DW 1)
     set(BACKWARD_HAS_LIBUNWIND 1)
@@ -123,8 +128,8 @@ endif(UNIX)
 if(DEFINED ENV{WIN_DEPLOY_QT})
     message("-- Using windeployqt.exe from $ENV{WIN_DEPLOY_QT}")
     add_custom_command(
-        TARGET groundstation POST_BUILD
-        COMMAND $ENV{WIN_DEPLOY_QT} groundstation.exe
+        TARGET skywardhub POST_BUILD
+        COMMAND $ENV{WIN_DEPLOY_QT} skywardhub.exe
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
         COMMENT "Running windeployqt.exe..."
     )
diff --git a/linuxdeploy/SkywardLogo.png b/deployment/linuxdeploy/SkywardLogo.png
similarity index 100%
rename from linuxdeploy/SkywardLogo.png
rename to deployment/linuxdeploy/SkywardLogo.png
diff --git a/linuxdeploy/groundstation.desktop b/deployment/linuxdeploy/skywardhub.desktop
similarity index 67%
rename from linuxdeploy/groundstation.desktop
rename to deployment/linuxdeploy/skywardhub.desktop
index 0d7a6dc3..9b6668d2 100644
--- a/linuxdeploy/groundstation.desktop
+++ b/deployment/linuxdeploy/skywardhub.desktop
@@ -1,8 +1,9 @@
 [Desktop Entry]
 Type=Application
-Name=Ground Station
-Exec=groundstation
+Name=SkywardHub
+Exec=skywardhub
 Icon=SkywardLogo
 Categories=Utility;
 Terminal=false
 X-AppImage-Version=d16258c
+Keywords=groundstation
diff --git a/macdeploy.sh b/deployment/macdeploy.sh
similarity index 100%
rename from macdeploy.sh
rename to deployment/macdeploy.sh
diff --git a/windeploy.bat b/deployment/windeploy.bat
similarity index 73%
rename from windeploy.bat
rename to deployment/windeploy.bat
index dc498ec4..42949508 100644
--- a/windeploy.bat
+++ b/deployment/windeploy.bat
@@ -1,2 +1,2 @@
 windeployqt --dir Deploy\SkywardHub ..\build-SkywardHub-Desktop_Qt_5_15_2_MinGW_32_bit-Release\Release\SkywardHub.exe
-xcopy ..\build-SkywardHub-Desktop_Qt_5_15_2_MinGW_32_bit-Release\release\SkywardHub.exe Deploy\SkywardHub\SkywardHub.exe /f /y
\ No newline at end of file
+xcopy ..\build-SkywardHub-Desktop_Qt_5_15_2_MinGW_32_bit-Release\release\SkywardHub.exe Deploy\SkywardHub\SkywardHub.exe /f /y
diff --git a/src/entrypoints/groundstation/application.qrc b/src/application.qrc
similarity index 100%
rename from src/entrypoints/groundstation/application.qrc
rename to src/application.qrc
diff --git a/src/entrypoints/groundstation/assets/icons/SkywardHub.icns b/src/assets/icons/SkywardHub.icns
similarity index 100%
rename from src/entrypoints/groundstation/assets/icons/SkywardHub.icns
rename to src/assets/icons/SkywardHub.icns
diff --git a/src/entrypoints/groundstation/assets/icons/SkywardHub.ico b/src/assets/icons/SkywardHub.ico
similarity index 100%
rename from src/entrypoints/groundstation/assets/icons/SkywardHub.ico
rename to src/assets/icons/SkywardHub.ico
diff --git a/src/entrypoints/groundstation/assets/icons/SkywardHub.png b/src/assets/icons/SkywardHub.png
similarity index 100%
rename from src/entrypoints/groundstation/assets/icons/SkywardHub.png
rename to src/assets/icons/SkywardHub.png
diff --git a/src/entrypoints/groundstation/assets/icons/splitter_horizontal.png b/src/assets/icons/splitter_horizontal.png
similarity index 100%
rename from src/entrypoints/groundstation/assets/icons/splitter_horizontal.png
rename to src/assets/icons/splitter_horizontal.png
diff --git a/src/entrypoints/groundstation/assets/icons/splitter_vertical.png b/src/assets/icons/splitter_vertical.png
similarity index 100%
rename from src/entrypoints/groundstation/assets/icons/splitter_vertical.png
rename to src/assets/icons/splitter_vertical.png
diff --git a/src/entrypoints/groundstation/assets/models/rocket.obj b/src/assets/models/rocket.obj
similarity index 100%
rename from src/entrypoints/groundstation/assets/models/rocket.obj
rename to src/assets/models/rocket.obj
diff --git a/src/entrypoints/groundstation/assets/styles/global.qss b/src/assets/styles/global.qss
similarity index 100%
rename from src/entrypoints/groundstation/assets/styles/global.qss
rename to src/assets/styles/global.qss
diff --git a/src/entrypoints/groundstation/assets/styles/white-mode.qss b/src/assets/styles/white-mode.qss
similarity index 100%
rename from src/entrypoints/groundstation/assets/styles/white-mode.qss
rename to src/assets/styles/white-mode.qss
diff --git a/src/entrypoints/groundstation/main.cpp b/src/main.cpp
similarity index 100%
rename from src/entrypoints/groundstation/main.cpp
rename to src/main.cpp
diff --git a/src/shared/Core/QCustomPlot/QCustomPlot.cpp b/src/shared/Core/QCustomPlot/QCustomPlot.cpp
index 44e767d1..0ad2a304 100644
--- a/src/shared/Core/QCustomPlot/QCustomPlot.cpp
+++ b/src/shared/Core/QCustomPlot/QCustomPlot.cpp
@@ -697,7 +697,7 @@ QCPPainter *QCPPaintBufferPixmap::startPainting()
 {
     QCPPainter *result = new QCPPainter(&mBuffer);
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
-    result->setRenderHint(QPainter::HighQualityAntialiasing);
+    result->setRenderHint(QPainter::Antialiasing);
 #endif
     return result;
 }
@@ -791,7 +791,7 @@ QCPPainter *QCPPaintBufferGlPbuffer::startPainting()
     }
 
     QCPPainter *result = new QCPPainter(mGlPBuffer);
-    result->setRenderHint(QPainter::HighQualityAntialiasing);
+    result->setRenderHint(QPainter::Antialiasing);
     return result;
 }
 
@@ -914,7 +914,7 @@ QCPPainter *QCPPaintBufferGlFbo::startPainting()
     mGlFrameBuffer->bind();
     QCPPainter *result = new QCPPainter(paintDevice.data());
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
-    result->setRenderHint(QPainter::HighQualityAntialiasing);
+    result->setRenderHint(QPainter::Antialiasing);
 #endif
     return result;
 }
@@ -17294,9 +17294,9 @@ void QCustomPlot::paintEvent(QPaintEvent *event)
     {
 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
         painter.setRenderHint(
-            QPainter::HighQualityAntialiasing);  // to make Antialiasing look
-                                                 // good if using the OpenGL
-                                                 // graphicssystem
+            QPainter::Antialiasing);  // to make Antialiasing look
+                                      // good if using the OpenGL
+                                      // graphicssystem
 #endif
         if (mBackgroundBrush.style() != Qt::NoBrush)
             painter.fillRect(mViewport, mBackgroundBrush);
-- 
GitLab