chore: baseline usable version
This commit is contained in:
68
cmake/QEmbyPlatformDeps.cmake
Normal file
68
cmake/QEmbyPlatformDeps.cmake
Normal 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()
|
||||
Reference in New Issue
Block a user