Import initial du projet shipheart_cm5
This commit is contained in:
+130
@@ -0,0 +1,130 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(shipheart_cm5 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS
|
||||
Quick
|
||||
VirtualKeyboard
|
||||
Qml
|
||||
Sql
|
||||
QuickControls2
|
||||
Charts
|
||||
LinguistTools
|
||||
)
|
||||
set_target_properties(Qt6::lrelease PROPERTIES
|
||||
IMPORTED_LOCATION /usr/local/bin/lrelease-host
|
||||
IMPORTED_LOCATION_RELEASE /usr/local/bin/lrelease-host
|
||||
IMPORTED_LOCATION_NONE /usr/local/bin/lrelease-host
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Version dynamique, injectée dans _version.h à CHAQUE build (pas seulement
|
||||
# à chaque reconfiguration CMake), au même format que le .pro d'origine
|
||||
# (yymmdd_HHMMSS, ex: 260807_133409) et avec la même garantie : deux
|
||||
# exécutables différents obtiennent toujours un horodatage différent.
|
||||
#
|
||||
# Mécanisme : une cible personnalisée sans suivi de fichier (add_custom_target
|
||||
# ... ALL, sans dépendance de fichier source) est donc TOUJOURS considérée
|
||||
# périmée par Ninja/Make et se ré-exécute avant chaque build, contrairement à
|
||||
# string(TIMESTAMP ...) seul qui ne s'évalue qu'à la configuration du projet.
|
||||
#
|
||||
# NB IMPORTANT - modification de main.cpp nécessaire : ce mécanisme régénère
|
||||
# le fichier source _version.h - il faut donc que main.cpp fasse
|
||||
# #include "_version.h"
|
||||
# (actuellement absent : VERSION n'y est utilisé que comme macro fournie par
|
||||
# le compilateur). Cet ajout est neutre pour la compilation CM4/qmake (qui
|
||||
# continue de fournir VERSION via DEFINES +=, sans jamais regénérer ni lire
|
||||
# le contenu de _version.h).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_custom_target(generate_version ALL
|
||||
COMMAND ${CMAKE_COMMAND}
|
||||
-DOUTPUT_FILE=${CMAKE_CURRENT_SOURCE_DIR}/_version.h
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/generate_version.cmake
|
||||
COMMENT "Régénération de _version.h (horodatage)"
|
||||
BYPRODUCTS ${CMAKE_CURRENT_SOURCE_DIR}/_version.h
|
||||
)
|
||||
|
||||
add_executable(shipheart_qt
|
||||
backend.cpp
|
||||
bdd.cpp
|
||||
main.cpp
|
||||
systeme.cpp
|
||||
tb_mesures.cpp
|
||||
# Headers listés pour visibilité dans l'IDE (non obligatoire pour la compilation) :
|
||||
_version.h
|
||||
backend.h
|
||||
bdd.h
|
||||
shipheart.h
|
||||
systeme.h
|
||||
tb_mesures.h
|
||||
# Ressources :
|
||||
qml.qrc
|
||||
traductions.qrc
|
||||
)
|
||||
|
||||
add_dependencies(shipheart_qt generate_version)
|
||||
|
||||
target_link_libraries(shipheart_qt PRIVATE
|
||||
Qt6::Quick
|
||||
Qt6::VirtualKeyboard
|
||||
Qt6::Qml
|
||||
Qt6::Sql
|
||||
Qt6::QuickControls2
|
||||
Qt6::Charts
|
||||
)
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Traductions (équivalent de TRANSLATIONS + lupdate/lrelease du .pro)
|
||||
# ---------------------------------------------------------------------------
|
||||
set(QT_LRELEASE_EXECUTABLE /usr/local/bin/lrelease-host)
|
||||
set(TS_FILES
|
||||
shipheart_fr_FR.ts
|
||||
shipheart_en_EN.ts
|
||||
shipheart_de_DE.ts
|
||||
shipheart_es_ES.ts
|
||||
shipheart_pt_PT.ts
|
||||
shipheart_nl_NL.ts
|
||||
shipheart_it_IT.ts
|
||||
shipheart_lv_LV.ts
|
||||
shipheart_ca_ES.ts
|
||||
)
|
||||
qt_add_translations(shipheart_qt TS_FILES ${TS_FILES})
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dispositions de clavier virtuel personnalisées (virtualkeyboard_layouts_koriolan)
|
||||
#
|
||||
# RÉSOLU : ces fichiers sont déjà intégralement référencés dans qml.qrc
|
||||
# (confirmé), et chargés au runtime via une ressource Qt embarquée
|
||||
# (qputenv("QT_VIRTUALKEYBOARD_LAYOUT_PATH", ":/virtualkeyboard_layouts_koriolan/layouts")
|
||||
# dans main.cpp). Rien à ajouter ici : qml.qrc est déjà dans la liste des
|
||||
# sources de add_executable() ci-dessus, donc ces fichiers sont embarqués
|
||||
# dans le binaire comme sur CM4.
|
||||
#
|
||||
# Dette technique notée pour plus tard (hors scope de ce portage) : la
|
||||
# duplication complète de tous les layouts Qt (toutes langues, tous modes)
|
||||
# pour la seule modification d'une touche (Espace -> Moins) dans
|
||||
# fallback/digits.qml est disproportionnée. Une solution plus ciblée
|
||||
# existe probablement (héritage partiel des layouts standards), à explorer
|
||||
# séparément - à tester sur CM4 ET CM5 si entreprise, code source commun.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Installation (équivalent target.path du .pro)
|
||||
# ---------------------------------------------------------------------------
|
||||
install(TARGETS shipheart_qt
|
||||
DESTINATION /home/koriolan/shipheart/versions/current
|
||||
)
|
||||
|
||||
# NB : le mécanisme QMAKE_POST_LINK du .pro d'origine copiait l'exécutable
|
||||
# vers un chemin LOCAL à l'ancien poste de développement Ubuntu
|
||||
# (/home/koriolan/SharePoint_Koriolan_Documents/...) - obsolète dans le
|
||||
# nouveau contexte (compilation croisée WSL2 + déploiement SSH piloté par
|
||||
# Qt Creator). Non repris ici ; à remplacer, si un historique des versions
|
||||
# compilées est toujours souhaité, par un mécanisme côté CM5 ou côté WSL2,
|
||||
# à définir séparément.
|
||||
Reference in New Issue
Block a user