Mercurial > public > ostc_companion
changeset 9:971b9fd4cd30
Linux cares about upper / lower cases => fixed file name
| author | Ideenmodellierer |
|---|---|
| date | Mon, 12 Jan 2026 13:52:28 +0000 |
| parents | 21ce6187d32e |
| children | 9a3c1a6f9833 |
| files | CMakeLists.txt CmakeLists.txt |
| diffstat | 2 files changed, 247 insertions(+), 247 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CMakeLists.txt Mon Jan 12 13:52:28 2026 +0000 @@ -0,0 +1,247 @@ +cmake_minimum_required(VERSION 3.21) + +project(OSTCCompanion VERSION 1.0 LANGUAGES CXX C) + +# ---------------------------------------- +# C++ Standard +# ---------------------------------------- +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +# ---------------------------------------- +# Qt6 Modules +# ---------------------------------------- +find_package(Qt6 REQUIRED COMPONENTS + Core + Gui + Widgets + Network + Svg + Xml + SerialPort + LinguistTools +) + + +# ---------------------------------------- +# Sources, Header, UI and Ressources +# ---------------------------------------- +set(SOURCES + main.cpp + AES/rijndael.cpp + editlogdialog.cpp + Utils/Exception.cpp + Utils/Log.cpp + Utils/LogAppender.cpp + Utils/LogConsole.cpp + Utils/LogFile.cpp + Utils/ProgressEvent.cpp + MainWindow.cpp + Serial.cpp + HexFile.cpp + SettingsDialog.cpp + HardwareOperations.cpp + OSTCFrogOperations.cpp + OSTCSportOperations.cpp + OSTC2cOperations.cpp + OSTC2Operations.cpp + OSTC3Operations.cpp + OSTC3pOperations.cpp + OSTC4Operations.cpp + OSTC_CR_Operations.cpp +) + +set(HEADERS + AES/rijndael.h + AES/Adler16.h + Utils/Exception.h + Utils/Log.h + Utils/LogAppender.h + Utils/LogConsole.h + Utils/LogFile.h + Utils/ProgressEvent.h + MainWindow.h + Serial.h + HexFile.h + SettingsDialog.h + HardwareOperations.h + OSTCFrogOperations.h + OSTCSportOperations.h + OSTC2cOperations.h + OSTC2Operations.h + OSTC3Operations.h + OSTC3pOperations.h + OSTC4Operations.h + OSTC_CR_Operations.h + editlogdialog.h + crcmodel.h +) + +set(UIS + LogEditor.ui + MainWindow.ui + Settings.ui +) + +set(RESOURCES + Resources.qrc + icon.rc +) + +set(TRANSLATIONS + Translations/companion_DE.ts + Translations/companion_FR.ts + Translations/companion_ES.ts + Translations/companion_IT.ts + Translations/companion_RU.ts +) + +set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/icon.rc") + + +add_library(crcmodel STATIC + crcmodel.c +) +set_source_files_properties(crcmodel.c + PROPERTIES + LANGUAGE C +) +target_include_directories(crcmodel PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) +# ---------------------------------------- +# Executable erstellen +# ---------------------------------------- +qt_add_executable(${PROJECT_NAME} + ${SOURCES} + ${HEADERS} + ${UIS} + ${RESOURCES} + Utils/Export.h + ${app_icon_resource_windows} + ostc45_icon.cpp + ostc45_icon.h + crc_wrapper.h + crc_wrapper.cpp +) + +target_include_directories(${PROJECT_NAME} PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} # Root + ${CMAKE_CURRENT_SOURCE_DIR}/Utils + ${CMAKE_CURRENT_SOURCE_DIR}/AES +) + +# ---------------------------------------- +# Qt Libraries verlinken +# ---------------------------------------- +target_link_libraries(${PROJECT_NAME} + PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Svg Qt6::Xml Qt6::SerialPort crcmodel +) + +# ---------------------------------------- +# Plattform-spezifische Anpassungen +# ---------------------------------------- +if(WIN32) + target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS=1 BUILDING_OSTC_COMPANION) +elseif(APPLE) + target_compile_options(${PROJECT_NAME} PRIVATE -std=c++17 -Wno-inconsistent-missing-override) +elseif(UNIX) + target_compile_options(${PROJECT_NAME} PRIVATE -std=c++17) + set_target_properties(${PROJECT_NAME} PROPERTIES + BUILD_RPATH "\$ORIGIN/lib" + ) +endif() + +# ---------------------------------------- +# Debug/Release-Builds +# ---------------------------------------- +if(CMAKE_BUILD_TYPE MATCHES Debug) + target_compile_definitions(${PROJECT_NAME} PRIVATE DEBUG=1) +endif() + +# ---------------------------------------- +# Version aus Datei einlesen (optional) +# ---------------------------------------- +file(STRINGS "${CMAKE_SOURCE_DIR}/VERSION.txt" VERSION_CONTENT) +string(REGEX MATCH "MAJOR=([0-9]+)" _ ${VERSION_CONTENT}) +set(MAJOR_VERSION ${CMAKE_MATCH_1}) +string(REGEX MATCH "MINOR=([0-9]+)" _ ${VERSION_CONTENT}) +set(MINOR_VERSION ${CMAKE_MATCH_1}) +string(REGEX MATCH "PATCH=([0-9]+)" _ ${VERSION_CONTENT}) +set(PATCH_VERSION ${CMAKE_MATCH_1}) +string(REGEX MATCH "BETA=([0-9]+)" _ ${VERSION_CONTENT}) +set(BETA_VERSION ${CMAKE_MATCH_1}) + + +message("MAJOR_VERSION = '${MAJOR_VERSION}'") + +target_compile_definitions(${PROJECT_NAME} PRIVATE + MAJOR_VERSION=${MAJOR_VERSION} + MINOR_VERSION=${MINOR_VERSION} + PATCH_VERSION=${PATCH_VERSION} + BETA_VERSION=${BETA_VERSION} +) + +# Show folder in Qt Creator +file(GLOB ICON_FILES "${CMAKE_SOURCE_DIR}/Images/*") +add_custom_target(Resources ALL SOURCES ${ICON_FILES}) + + +qt6_add_translation(QM_FILES ${TRANSLATIONS}) + +if(CMAKE_BUILD_TYPE MATCHES Release) + target_compile_definitions(${PROJECT_NAME} PRIVATE DEBUG=1) + + message("Build release and installer") + + set(CPACK_IFW_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/Images/inst_OSTC_Companion.ico") + + install(FILES ${CMAKE_SOURCE_DIR}/Images/app_OSTC_Companion.ico + DESTINATION . # relativ zum Package root + COMPONENT Core) + + install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin COMPONENT Core) + + qt_generate_deploy_app_script( + TARGET ${PROJECT_NAME} + OUTPUT_SCRIPT deploy_script + NO_UNSUPPORTED_PLATFORM_ERROR + ) + + install(SCRIPT ${deploy_script} + COMPONENT Core) + + # CPack IFW Konfiguration + set(CPACK_GENERATOR "IFW") + set(CPACK_IFW_ROOT "D:/Programme/QT/Tools/QtInstallerFramework/4.10") + set(CPACK_PACKAGE_VERSION_MAJOR "3") + set(CPACK_PACKAGE_VERSION_MINOR "3") + set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") + set(CPACK_PACKAGE_VENDOR "Heinrichs Weikamp") + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OSTC Companion Application") + set (CPACK_IFW_PACKAGE_NAME "${PROJECT_NAME} 3.3.1") + set (CPACK_IFW_PACKAGE_TITLE "${PROJECT_NAME} Installer") + set (CPACK_IFW_PACKAGE_PUBLISHER "Heinrichs Weikamp") + set (CPACK_IFW_PACKAGE_WIZARD_STYLE "Modern") + set (CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST OFF) + + set (CPACK_IFW_PACKAGE_START_MENU_DIRECTORY "OSTC-Tools") + + include(CPack) + include(CPackIFW) + + # Hauptkomponente + cpack_add_component(Core + DISPLAY_NAME "OSTC Companion" + DESCRIPTION "OSTC maintenance application" + REQUIRED + ) + + cpack_ifw_configure_component(Core ESSENTIAL FORCED_INSTALLATION) +endif() + + +
--- a/CmakeLists.txt Mon Jan 12 13:51:17 2026 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -cmake_minimum_required(VERSION 3.21) - -project(OSTCCompanion VERSION 1.0 LANGUAGES CXX C) - -# ---------------------------------------- -# C++ Standard -# ---------------------------------------- -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) - -# ---------------------------------------- -# Qt6 Modules -# ---------------------------------------- -find_package(Qt6 REQUIRED COMPONENTS - Core - Gui - Widgets - Network - Svg - Xml - SerialPort - LinguistTools -) - - -# ---------------------------------------- -# Sources, Header, UI and Ressources -# ---------------------------------------- -set(SOURCES - main.cpp - AES/rijndael.cpp - editlogdialog.cpp - Utils/Exception.cpp - Utils/Log.cpp - Utils/LogAppender.cpp - Utils/LogConsole.cpp - Utils/LogFile.cpp - Utils/ProgressEvent.cpp - MainWindow.cpp - Serial.cpp - HexFile.cpp - SettingsDialog.cpp - HardwareOperations.cpp - OSTCFrogOperations.cpp - OSTCSportOperations.cpp - OSTC2cOperations.cpp - OSTC2Operations.cpp - OSTC3Operations.cpp - OSTC3pOperations.cpp - OSTC4Operations.cpp - OSTC_CR_Operations.cpp -) - -set(HEADERS - AES/rijndael.h - AES/Adler16.h - Utils/Exception.h - Utils/Log.h - Utils/LogAppender.h - Utils/LogConsole.h - Utils/LogFile.h - Utils/ProgressEvent.h - MainWindow.h - Serial.h - HexFile.h - SettingsDialog.h - HardwareOperations.h - OSTCFrogOperations.h - OSTCSportOperations.h - OSTC2cOperations.h - OSTC2Operations.h - OSTC3Operations.h - OSTC3pOperations.h - OSTC4Operations.h - OSTC_CR_Operations.h - editlogdialog.h - crcmodel.h -) - -set(UIS - LogEditor.ui - MainWindow.ui - Settings.ui -) - -set(RESOURCES - Resources.qrc - icon.rc -) - -set(TRANSLATIONS - Translations/companion_DE.ts - Translations/companion_FR.ts - Translations/companion_ES.ts - Translations/companion_IT.ts - Translations/companion_RU.ts -) - -set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/icon.rc") - - -add_library(crcmodel STATIC - crcmodel.c -) -set_source_files_properties(crcmodel.c - PROPERTIES - LANGUAGE C -) -target_include_directories(crcmodel PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} -) -# ---------------------------------------- -# Executable erstellen -# ---------------------------------------- -qt_add_executable(${PROJECT_NAME} - ${SOURCES} - ${HEADERS} - ${UIS} - ${RESOURCES} - Utils/Export.h - ${app_icon_resource_windows} - ostc45_icon.cpp - ostc45_icon.h - crc_wrapper.h - crc_wrapper.cpp -) - -target_include_directories(${PROJECT_NAME} PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} # Root - ${CMAKE_CURRENT_SOURCE_DIR}/Utils - ${CMAKE_CURRENT_SOURCE_DIR}/AES -) - -# ---------------------------------------- -# Qt Libraries verlinken -# ---------------------------------------- -target_link_libraries(${PROJECT_NAME} - PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Svg Qt6::Xml Qt6::SerialPort crcmodel -) - -# ---------------------------------------- -# Plattform-spezifische Anpassungen -# ---------------------------------------- -if(WIN32) - target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS=1 BUILDING_OSTC_COMPANION) -elseif(APPLE) - target_compile_options(${PROJECT_NAME} PRIVATE -std=c++11 -Wno-inconsistent-missing-override) -elseif(UNIX) - target_compile_options(${PROJECT_NAME} PRIVATE -std=c++11) - set_target_properties(${PROJECT_NAME} PROPERTIES - BUILD_RPATH "\$ORIGIN/lib" - ) -endif() - -# ---------------------------------------- -# Debug/Release-Builds -# ---------------------------------------- -if(CMAKE_BUILD_TYPE MATCHES Debug) - target_compile_definitions(${PROJECT_NAME} PRIVATE DEBUG=1) -endif() - -# ---------------------------------------- -# Version aus Datei einlesen (optional) -# ---------------------------------------- -file(STRINGS "${CMAKE_SOURCE_DIR}/VERSION.txt" VERSION_CONTENT) -string(REGEX MATCH "MAJOR=([0-9]+)" _ ${VERSION_CONTENT}) -set(MAJOR_VERSION ${CMAKE_MATCH_1}) -string(REGEX MATCH "MINOR=([0-9]+)" _ ${VERSION_CONTENT}) -set(MINOR_VERSION ${CMAKE_MATCH_1}) -string(REGEX MATCH "PATCH=([0-9]+)" _ ${VERSION_CONTENT}) -set(PATCH_VERSION ${CMAKE_MATCH_1}) -string(REGEX MATCH "BETA=([0-9]+)" _ ${VERSION_CONTENT}) -set(BETA_VERSION ${CMAKE_MATCH_1}) - - -message("MAJOR_VERSION = '${MAJOR_VERSION}'") - -target_compile_definitions(${PROJECT_NAME} PRIVATE - MAJOR_VERSION=${MAJOR_VERSION} - MINOR_VERSION=${MINOR_VERSION} - PATCH_VERSION=${PATCH_VERSION} - BETA_VERSION=${BETA_VERSION} -) - -# Show folder in Qt Creator -file(GLOB ICON_FILES "${CMAKE_SOURCE_DIR}/Images/*") -add_custom_target(Resources ALL SOURCES ${ICON_FILES}) - - -qt6_add_translation(QM_FILES ${TRANSLATIONS}) - -if(CMAKE_BUILD_TYPE MATCHES Release) - target_compile_definitions(${PROJECT_NAME} PRIVATE DEBUG=1) - - message("Build release and installer") - - set(CPACK_IFW_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/Images/inst_OSTC_Companion.ico") - - install(FILES ${CMAKE_SOURCE_DIR}/Images/app_OSTC_Companion.ico - DESTINATION . # relativ zum Package root - COMPONENT Core) - - install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin COMPONENT Core) - - qt_generate_deploy_app_script( - TARGET ${PROJECT_NAME} - OUTPUT_SCRIPT deploy_script - NO_UNSUPPORTED_PLATFORM_ERROR - ) - - install(SCRIPT ${deploy_script} - COMPONENT Core) - - # CPack IFW Konfiguration - set(CPACK_GENERATOR "IFW") - set(CPACK_IFW_ROOT "D:/Programme/QT/Tools/QtInstallerFramework/4.10") - set(CPACK_PACKAGE_VERSION_MAJOR "3") - set(CPACK_PACKAGE_VERSION_MINOR "3") - set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") - set(CPACK_PACKAGE_VENDOR "Heinrichs Weikamp") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OSTC Companion Application") - set (CPACK_IFW_PACKAGE_NAME "${PROJECT_NAME} 3.3.1") - set (CPACK_IFW_PACKAGE_TITLE "${PROJECT_NAME} Installer") - set (CPACK_IFW_PACKAGE_PUBLISHER "Heinrichs Weikamp") - set (CPACK_IFW_PACKAGE_WIZARD_STYLE "Modern") - set (CPACK_IFW_PACKAGE_WIZARD_SHOW_PAGE_LIST OFF) - - set (CPACK_IFW_PACKAGE_START_MENU_DIRECTORY "OSTC-Tools") - - include(CPack) - include(CPackIFW) - - # Hauptkomponente - cpack_add_component(Core - DISPLAY_NAME "OSTC Companion" - DESCRIPTION "OSTC maintenance application" - REQUIRED - ) - - cpack_ifw_configure_component(Core ESSENTIAL FORCED_INSTALLATION) -endif() - - -
