chore: baseline usable version
This commit is contained in:
77
cmake/QEmbyPackaging.cmake
Normal file
77
cmake/QEmbyPackaging.cmake
Normal file
@@ -0,0 +1,77 @@
|
||||
include_guard(GLOBAL)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(_qemby_runtime_install_dir "${CMAKE_INSTALL_BINDIR}")
|
||||
if(QEMBY_RUNTIME_LIB_SUBDIR)
|
||||
set(_qemby_runtime_install_dir
|
||||
"${CMAKE_INSTALL_LIBDIR}/${QEMBY_RUNTIME_LIB_SUBDIR}")
|
||||
endif()
|
||||
|
||||
foreach(_qemby_runtime_target IN ITEMS qEmbyApp qEmbyCore QWKCore QWKWidgets)
|
||||
if(TARGET "${_qemby_runtime_target}")
|
||||
set_target_properties("${_qemby_runtime_target}" PROPERTIES
|
||||
INSTALL_RPATH "$ORIGIN"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(_qemby_qwk_install_targets)
|
||||
foreach(_qemby_qwk_target IN ITEMS QWKCore QWKWidgets)
|
||||
if(TARGET "${_qemby_qwk_target}")
|
||||
list(APPEND _qemby_qwk_install_targets "${_qemby_qwk_target}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(_qemby_qwk_install_targets)
|
||||
install(TARGETS ${_qemby_qwk_install_targets}
|
||||
LIBRARY DESTINATION "${_qemby_runtime_install_dir}"
|
||||
RUNTIME DESTINATION "${_qemby_runtime_install_dir}"
|
||||
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(QEMBY_RUNTIME_LIB_SUBDIR)
|
||||
set(_qemby_launcher_exec
|
||||
"${CMAKE_INSTALL_LIBDIR}/${QEMBY_RUNTIME_LIB_SUBDIR}/qEmbyApp")
|
||||
else()
|
||||
set(_qemby_launcher_exec "${CMAKE_INSTALL_BINDIR}/qEmbyApp")
|
||||
endif()
|
||||
|
||||
set(_qemby_launcher "${CMAKE_CURRENT_BINARY_DIR}/qemby")
|
||||
file(WRITE "${_qemby_launcher}"
|
||||
"#!/bin/sh\n"
|
||||
"prefix_dir=$(CDPATH= cd -- \"$(dirname -- \"$0\")/..\" && pwd)\n"
|
||||
"exec \"$prefix_dir/${_qemby_launcher_exec}\" \"$@\"\n"
|
||||
)
|
||||
install(PROGRAMS "${_qemby_launcher}"
|
||||
DESTINATION "${CMAKE_INSTALL_BINDIR}"
|
||||
)
|
||||
|
||||
set(_qemby_desktop_file "${CMAKE_CURRENT_BINARY_DIR}/qemby.desktop")
|
||||
file(WRITE "${_qemby_desktop_file}"
|
||||
"[Desktop Entry]\n"
|
||||
"Type=Application\n"
|
||||
"Name=qEmby\n"
|
||||
"Comment=Desktop client for Emby and Jellyfin media servers\n"
|
||||
"Exec=qemby\n"
|
||||
"Icon=qemby\n"
|
||||
"Terminal=false\n"
|
||||
"Categories=AudioVideo;Video;Player;\n"
|
||||
)
|
||||
install(FILES "${_qemby_desktop_file}"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/applications"
|
||||
)
|
||||
|
||||
install(FILES "${CMAKE_SOURCE_DIR}/src/qEmbyApp/resources/svg/qemby_logo.svg"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps"
|
||||
RENAME qemby.svg
|
||||
)
|
||||
endif()
|
||||
|
||||
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
|
||||
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
||||
set(CPACK_PACKAGE_VENDOR "qEmby")
|
||||
|
||||
include(CPack)
|
||||
Reference in New Issue
Block a user