Anpassungen für Haiku
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user