Mercurial > public > ostc_companion
view CmakeLists.txt @ 4:e30f00f760d3 default tip
Cleanup OSTC label and removed url
The computer type will now show OSTC 4/5 instead of only 4. The url has
been removed because it is no longer maintained. The ui header have been
deleted because they are generated files shich should not be under
version controll. Delete locally if you want to force an update of the
dialog layout.
| author | Ideenmodellierer |
|---|---|
| date | Sun, 30 Nov 2025 18:37:32 +0100 |
| parents | 0b3630a29ad8 |
| children |
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 ) 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()
