chore: baseline usable version

This commit is contained in:
dela
2026-06-10 11:17:51 +08:00
commit a2f82a86b6
932 changed files with 172551 additions and 0 deletions

View 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)

View File

@@ -0,0 +1,68 @@
include_guard(GLOBAL)
function(qemby_append_default_qt_prefixes)
set(_qemby_qt_prefixes)
if(QEMBY_QT_ROOT)
list(APPEND _qemby_qt_prefixes
"${QEMBY_QT_ROOT}"
"${QEMBY_QT_ROOT}/lib/cmake"
)
endif()
if(DEFINED ENV{QTDIR} AND NOT "$ENV{QTDIR}" STREQUAL "")
list(APPEND _qemby_qt_prefixes
"$ENV{QTDIR}"
"$ENV{QTDIR}/lib/cmake"
)
endif()
if(WIN32)
list(APPEND _qemby_qt_prefixes
"E:/Qt6/6.9.2/msvc2022_64"
"E:/Qt6/6.9.2/msvc2022_64/lib/cmake"
)
endif()
foreach(_qemby_qt_prefix IN LISTS _qemby_qt_prefixes)
if(EXISTS "${_qemby_qt_prefix}")
list(APPEND CMAKE_PREFIX_PATH "${_qemby_qt_prefix}")
endif()
endforeach()
if(CMAKE_PREFIX_PATH)
list(REMOVE_DUPLICATES CMAKE_PREFIX_PATH)
endif()
set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH}" PARENT_SCOPE)
endfunction()
function(qemby_link_libmpv target)
if(NOT TARGET "${target}")
message(FATAL_ERROR "qemby_link_libmpv: target '${target}' does not exist")
endif()
if(WIN32)
set(_qemby_mpv_root "${CMAKE_SOURCE_DIR}/libs/libmpv")
set(_qemby_mpv_include_dir "${_qemby_mpv_root}/include")
find_library(MPV_LIBRARY
NAMES mpv libmpv mpv-2 libmpv-2
PATHS "${_qemby_mpv_root}/lib"
NO_DEFAULT_PATH
)
if(NOT MPV_LIBRARY OR NOT EXISTS "${_qemby_mpv_include_dir}/mpv/client.h")
message(FATAL_ERROR
"Could not find bundled libmpv. Place the libmpv SDK under libs/libmpv.")
endif()
target_include_directories("${target}" PRIVATE "${_qemby_mpv_include_dir}")
target_link_libraries("${target}" PRIVATE "${MPV_LIBRARY}")
return()
endif()
find_package(PkgConfig REQUIRED)
pkg_check_modules(MPV REQUIRED IMPORTED_TARGET mpv)
target_link_libraries("${target}" PRIVATE PkgConfig::MPV)
endfunction()