Mercurial > public > ostc_companion
view CmakeLists.txt @ 1:0b3630a29ad8
Initial version based on previous repository.
Project was ported to QT6 and in now cmake based.
| author | Ideenmodellierer <tiefenrauscher@web.de> |
|---|---|
| date | Thu, 27 Nov 2025 18:40:28 +0100 |
| parents | |
| children | e30f00f760d3 |
line wrap: on
line source
cmake_minimum_required(VERSION 3.21) project(OSTCCompanion VERSION 1.0 LANGUAGES CXX) project(OSTCCompanion LANGUAGES CXX) # ---------------------------------------- # 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 ui_LogEditor.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") # ---------------------------------------- # Executable erstellen # ---------------------------------------- qt_add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${UIS} ${RESOURCES} Utils/Export.h ${app_icon_resource_windows} ) 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 ) # ---------------------------------------- # 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()
