Anpassungen für Haiku

This commit is contained in:
2026-07-14 11:09:00 +02:00
parent cb6617222d
commit f3e503f9da
43 changed files with 4217 additions and 11 deletions

View File

@@ -14,17 +14,29 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
# Platform-specific settings
# ---------------------------------------------------------------------------
# Plattform-Erkennung
# Haiku definiert kein eigenes CMake-Flag — wir erkennen es über den
# Systemnamen. CMAKE_SYSTEM_NAME ist "Haiku" auf Haiku OS.
# ---------------------------------------------------------------------------
if(WIN32)
set(CMAKE_WIN32_EXECUTABLE ON)
set(PLATFORM_WINDOWS TRUE)
add_compile_definitions(PLATFORM_WINDOWS)
elseif(UNIX AND NOT APPLE)
add_compile_definitions(PLATFORM_LINUX)
set(CMAKE_WIN32_EXECUTABLE ON)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Haiku")
set(PLATFORM_HAIKU TRUE)
add_compile_definitions(PLATFORM_HAIKU)
elseif(APPLE)
set(PLATFORM_MACOS TRUE)
add_compile_definitions(PLATFORM_MACOS)
elseif(UNIX)
set(PLATFORM_LINUX TRUE)
add_compile_definitions(PLATFORM_LINUX)
endif()
# Find Qt6
# ---------------------------------------------------------------------------
# Qt6
# ---------------------------------------------------------------------------
find_package(Qt6 REQUIRED COMPONENTS
Core
Gui
@@ -43,8 +55,11 @@ add_subdirectory(src)
# Resources
qt_add_resources(BARECODE_RESOURCES resources/resources.qrc)
# Main executable
if(WIN32)
# ---------------------------------------------------------------------------
# Executable
# Unter Windows: .rc-Datei für EXE-Icon einbinden
# ---------------------------------------------------------------------------
if(PLATFORM_WINDOWS)
qt_add_executable(BareCode
main.cpp
BareCode.rc
@@ -71,14 +86,17 @@ target_include_directories(BareCode PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/src
)
# Install rules
# ---------------------------------------------------------------------------
# Installation
# ---------------------------------------------------------------------------
include(GNUInstallDirs)
install(TARGETS BareCode
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(UNIX AND NOT APPLE)
# Icons in den Standard-Hicolor-Theme-Pfad installieren
# ---- Linux (FreeDesktop) --------------------------------------------------
if(PLATFORM_LINUX)
foreach(SIZE 16 32 48 64 128 256 512)
install(FILES resources/icon_${SIZE}.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/${SIZE}x${SIZE}/apps
@@ -86,8 +104,40 @@ if(UNIX AND NOT APPLE)
)
endforeach()
# .desktop Datei
install(FILES BareCode.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
)
endif()
# ---- Haiku ----------------------------------------------------------------
# Haiku verwendet kein FreeDesktop-System. Icons und MIME-Typen werden
# nativ über 'mimeset' gesetzt. Die PNG-Icons legen wir in den
# Haiku-typischen Pfad, ein post-install Skript ruft mimeset auf.
if(PLATFORM_HAIKU)
install(FILES resources/icon_256.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/BareCode
RENAME BareCode.png
)
# mimeset nach der Installation ausführen um MIME-Typ zu registrieren
install(CODE "
execute_process(
COMMAND mimeset -f \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/BareCode\"
RESULT_VARIABLE _mimeset_result
)
if(NOT _mimeset_result EQUAL 0)
message(WARNING \"mimeset konnte nicht ausgeführt werden MIME-Typ muss manuell gesetzt werden.\")
endif()
")
endif()
# ---- macOS ----------------------------------------------------------------
if(PLATFORM_MACOS)
set_target_properties(BareCode PROPERTIES
MACOSX_BUNDLE TRUE
MACOSX_BUNDLE_BUNDLE_NAME "BareCode"
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION}
)
endif()