CMake: GStreamer Fixes
This commit is contained in:
@@ -36,7 +36,6 @@ jobs:
|
||||
ARTIFACT: QGroundControl.apk
|
||||
PACKAGE: QGroundControl
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore
|
||||
QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore
|
||||
QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
|
||||
@@ -35,7 +35,6 @@ jobs:
|
||||
ARTIFACT: QGroundControl.apk
|
||||
PACKAGE: QGroundControl
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore
|
||||
QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore
|
||||
QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
|
||||
@@ -36,7 +36,6 @@ jobs:
|
||||
ARTIFACT: QGroundControl.apk
|
||||
PACKAGE: QGroundControl
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/deploy/android/android_release.keystore
|
||||
QT_ANDROID_KEYSTORE_ALIAS: QGCAndroidKeyStore
|
||||
QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
env:
|
||||
ARTIFACT: QGroundControl-installer.exe
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
GST_VERSION: 1.24.12
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -23,7 +23,6 @@ jobs:
|
||||
ARTIFACT: QGroundControl.app
|
||||
PACKAGE: QGroundControl
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -37,7 +37,6 @@ jobs:
|
||||
ARTIFACT: QGroundControl-x86_64.AppImage
|
||||
PACKAGE: QGroundControl-x86_64
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
ARTIFACT: QGroundControl-installer.exe
|
||||
PACKAGE: QGroundControl-installer
|
||||
QT_VERSION: 6.8.2
|
||||
GST_VERSION: 1.22.12
|
||||
GST_VERSION: 1.24.12
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
if(ANDROID OR IOS)
|
||||
if(DEFINED ENV{GST_VERSION})
|
||||
set(QGC_GST_TARGET_VERSION $ENV{GST_VERSION} CACHE STRING "Environment Provided GStreamer Version")
|
||||
else()
|
||||
set(QGC_GST_TARGET_VERSION 1.22.12 CACHE STRING "Requested GStreamer Version")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ANDROID OR IOS)
|
||||
set(QGC_GST_TARGET_VERSION 1.22.12)
|
||||
set(QGC_GST_STATIC_BUILD ON)
|
||||
endif()
|
||||
|
||||
set(PKG_CONFIG_ARGN)
|
||||
if(QGC_GST_STATIC_BUILD)
|
||||
list(APPEND PKG_CONFIG_ARGN --static)
|
||||
list(APPEND PKG_CONFIG_ARGN "--static")
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
@@ -26,11 +20,14 @@ if(WIN32)
|
||||
else()
|
||||
set(GSTREAMER_PREFIX "C:/gstreamer/1.0/msvc_x86_64")
|
||||
endif()
|
||||
set(ENV{PKG_CONFIG} ${GSTREAMER_PREFIX}/bin)
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_PREFIX}/lib/pkgconfig;${GSTREAMER_PREFIX}/lib/gstreamer-1.0/pkgconfig;$ENV{PKG_CONFIG_PATH}")
|
||||
set(GSTREAMER_LIB_PATH "${GSTREAMER_PREFIX}/lib")
|
||||
set(GSTREAMER_PLUGIN_PATH "${GSTREAMER_LIB_PATH}/gstreamer-1.0")
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_PREFIX}/include")
|
||||
set(ENV{PKG_CONFIG} "${GSTREAMER_PREFIX}/bin")
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_LIB_PATH}/pkgconfig;${GSTREAMER_PLUGIN_PATH}/pkgconfig;$ENV{PKG_CONFIG_PATH}")
|
||||
cmake_path(CONVERT "${GSTREAMER_PREFIX}" TO_CMAKE_PATH_LIST PREFIX_PATH NORMALIZE)
|
||||
cmake_path(CONVERT "${GSTREAMER_PREFIX}/lib" TO_CMAKE_PATH_LIST LIBDIR_PATH NORMALIZE)
|
||||
cmake_path(CONVERT "${GSTREAMER_PREFIX}/include" TO_CMAKE_PATH_LIST INCLUDE_PATH NORMALIZE)
|
||||
cmake_path(CONVERT "${GSTREAMER_LIB_PATH}" TO_CMAKE_PATH_LIST LIBDIR_PATH NORMALIZE)
|
||||
cmake_path(CONVERT "${GSTREAMER_INCLUDE_PATH}" TO_CMAKE_PATH_LIST INCLUDE_PATH NORMALIZE)
|
||||
list(APPEND PKG_CONFIG_ARGN
|
||||
--dont-define-prefix
|
||||
--define-variable=prefix=${PREFIX_PATH}
|
||||
@@ -41,75 +38,79 @@ elseif(MACOS)
|
||||
list(APPEND CMAKE_FRAMEWORK_PATH "/Library/Frameworks")
|
||||
set(GSTREAMER_FRAMEWORK_PATH "/Library/Frameworks/GStreamer.framework" CACHE PATH "GStreamer Framework Path")
|
||||
set(GSTREAMER_PREFIX "${GSTREAMER_FRAMEWORK_PATH}/Versions/1.0")
|
||||
set(GSTREAMER_LIB_PATH "${GSTREAMER_PREFIX}/lib")
|
||||
set(GSTREAMER_PLUGIN_PATH "${GSTREAMER_LIB_PATH}/gstreamer-1.0")
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_FRAMEWORK_PATH}/Headers")
|
||||
set(ENV{PKG_CONFIG} "${GSTREAMER_PREFIX}/bin")
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_PREFIX}/lib/pkgconfig:${GSTREAMER_PREFIX}/lib/gstreamer-1.0/pkgconfig:$ENV{PKG_CONFIG_PATH}")
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_LIB_PATH}/pkgconfig:${GSTREAMER_PLUGIN_PATH}/pkgconfig:$ENV{PKG_CONFIG_PATH}")
|
||||
elseif(LINUX)
|
||||
set(GSTREAMER_PREFIX "/usr")
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_PREFIX}/lib/x86_64-linux-gnu/pkgconfig:${GSTREAMER_PREFIX}/lib/x86_64-linux-gnu/gstreamer-1.0/pkgconfig:$ENV{PKG_CONFIG_PATH}")
|
||||
if(EXISTS "${GSTREAMER_PREFIX}/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu")
|
||||
set(GSTREAMER_LIB_PATH "${GSTREAMER_PREFIX}/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu")
|
||||
else()
|
||||
set(GSTREAMER_LIB_PATH "${GSTREAMER_PREFIX}/lib")
|
||||
endif()
|
||||
set(GSTREAMER_PLUGIN_PATH "${GSTREAMER_LIB_PATH}/gstreamer-1.0")
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_PREFIX}/include")
|
||||
set(ENV{PKG_CONFIG_PATH} "${GSTREAMER_LIB_PATH}/pkgconfig:$ENV{PKG_CONFIG_PATH}")
|
||||
elseif(IOS)
|
||||
list(APPEND CMAKE_FRAMEWORK_PATH "~/Library/Developer/GStreamer/iPhone.sdk")
|
||||
if(DEFINED ENV{GSTREAMER_PREFIX_IOS} AND EXISTS $ENV{GSTREAMER_PREFIX_IOS})
|
||||
set(GSTREAMER_PREFIX_IOS $ENV{GSTREAMER_PREFIX_IOS})
|
||||
elseif(EXISTS "~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework")
|
||||
set(GSTREAMER_PREFIX_IOS "~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework")
|
||||
set(GSTREAMER_FRAMEWORK_PATH "~/Library/Developer/GStreamer/iPhone.sdk/GStreamer.framework")
|
||||
if(EXISTS "${GSTREAMER_FRAMEWORK_PATH}")
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_FRAMEWORK_PATH}/Headers")
|
||||
else()
|
||||
FetchContent_Declare(gstreamer
|
||||
DOWNLOAD_EXTRACT_TIMESTAMP true
|
||||
include(CPM)
|
||||
CPMAddPackage(
|
||||
NAME gstreamer
|
||||
VERSION ${QGC_GST_TARGET_VERSION}
|
||||
URL "https://gstreamer.freedesktop.org/data/pkg/ios/${QGC_GST_TARGET_VERSION}/gstreamer-1.0-devel-${QGC_GST_TARGET_VERSION}-ios-universal.pkg"
|
||||
)
|
||||
FetchContent_MakeAvailable(gstreamer)
|
||||
set(GSTREAMER_PREFIX_IOS ${gstreamer_SOURCE_DIR})
|
||||
set(GSTREAMER_PREFIX ${gstreamer_SOURCE_DIR})
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_PREFIX}/include")
|
||||
endif()
|
||||
set(GSTREAMER_PREFIX ${GSTREAMER_PREFIX_IOS})
|
||||
elseif(ANDROID)
|
||||
set(GSTREAMER_ARCHIVE "gstreamer-1.0-android-universal-${QGC_GST_TARGET_VERSION}.tar.xz")
|
||||
include(CPM)
|
||||
CPMAddPackage(
|
||||
NAME gstreamer
|
||||
VERSION ${QGC_GST_TARGET_VERSION}
|
||||
URL "https://gstreamer.freedesktop.org/data/pkg/android/${QGC_GST_TARGET_VERSION}/${GSTREAMER_ARCHIVE}"
|
||||
)
|
||||
set(GSTREAMER_PREFIX_ANDROID "${gstreamer_SOURCE_DIR}")
|
||||
|
||||
if(${CMAKE_ANDROID_ARCH_ABI} STREQUAL armeabi-v7a)
|
||||
set(GSTREAMER_PREFIX ${GSTREAMER_PREFIX_ANDROID}/armv7)
|
||||
set(GSTREAMER_PREFIX "${GSTREAMER_PREFIX_ANDROID}/armv7")
|
||||
elseif(${CMAKE_ANDROID_ARCH_ABI} STREQUAL arm64-v8a)
|
||||
set(GSTREAMER_PREFIX ${GSTREAMER_PREFIX_ANDROID}/arm64)
|
||||
set(GSTREAMER_PREFIX "${GSTREAMER_PREFIX_ANDROID}/arm64")
|
||||
elseif(${CMAKE_ANDROID_ARCH_ABI} STREQUAL x86)
|
||||
set(GSTREAMER_PREFIX ${GSTREAMER_PREFIX_ANDROID}/x86)
|
||||
set(GSTREAMER_PREFIX "${GSTREAMER_PREFIX_ANDROID}/x86")
|
||||
elseif(${CMAKE_ANDROID_ARCH_ABI} STREQUAL x86_64)
|
||||
set(GSTREAMER_PREFIX ${GSTREAMER_PREFIX_ANDROID}/x86_64)
|
||||
set(GSTREAMER_PREFIX "${GSTREAMER_PREFIX_ANDROID}/x86_64")
|
||||
endif()
|
||||
set(GSTREAMER_LIB_PATH "${GSTREAMER_PREFIX}/lib")
|
||||
set(GSTREAMER_PLUGIN_PATH "${GSTREAMER_LIB_PATH}/gstreamer-1.0")
|
||||
set(GSTREAMER_INCLUDE_PATH "${GSTREAMER_PREFIX}/include")
|
||||
|
||||
set(ENV{PKG_CONFIG_PATH} "")
|
||||
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH OFF)
|
||||
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
|
||||
if(CMAKE_HOST_WIN32)
|
||||
set(ENV{PKG_CONFIG} "${GSTREAMER_PREFIX}/share/gst-android/ndk-build/tools/windows")
|
||||
set(ENV{PKG_CONFIG_LIBDIR} "${GSTREAMER_PREFIX}/lib/pkgconfig;${GSTREAMER_PREFIX}/lib/gstreamer-1.0/pkgconfig")
|
||||
set(PKG_CONFIG_EXECUTABLE "$ENV{PKG_CONFIG}/pkg-config.exe")
|
||||
elseif(CMAKE_HOST_LINUX OR CMAKE_HOST_APPLE)
|
||||
set(ENV{PKG_CONFIG_LIBDIR} "${GSTREAMER_PREFIX}/lib/pkgconfig:${GSTREAMER_PREFIX}/lib/gstreamer-1.0/pkgconfig")
|
||||
set(ENV{PKG_CONFIG_LIBDIR} "${GSTREAMER_LIB_PATH}/pkgconfig;${GSTREAMER_PLUGIN_PATH}/pkgconfig")
|
||||
elseif(CMAKE_HOST_UNIX)
|
||||
set(ENV{PKG_CONFIG_LIBDIR} "${GSTREAMER_LIB_PATH}/pkgconfig:${GSTREAMER_PLUGIN_PATH}/pkgconfig")
|
||||
endif()
|
||||
|
||||
list(APPEND PKG_CONFIG_ARGN
|
||||
--dont-define-prefix
|
||||
--define-variable=prefix=${GSTREAMER_PREFIX}
|
||||
--define-variable=libdir=${GSTREAMER_PREFIX}/lib
|
||||
--define-variable=includedir=${GSTREAMER_PREFIX}/include
|
||||
--define-variable=libdir=${GSTREAMER_LIB_PATH}
|
||||
--define-variable=includedir=${GSTREAMER_INCLUDE_PATH}
|
||||
)
|
||||
endif()
|
||||
|
||||
list(PREPEND CMAKE_PREFIX_PATH ${GSTREAMER_PREFIX})
|
||||
cmake_print_variables(GSTREAMER_PREFIX)
|
||||
|
||||
# TODO: find_path, Change x86_64-linux-gnu based on host
|
||||
if(LINUX)
|
||||
set(GSTREAMER_LIB_PATH ${GSTREAMER_PREFIX}/lib/x86_64-linux-gnu)
|
||||
elseif(MACOS OR ANDROID OR WIN32)
|
||||
set(GSTREAMER_LIB_PATH ${GSTREAMER_PREFIX}/lib)
|
||||
elseif(IOS)
|
||||
|
||||
endif()
|
||||
set(GSTREAMER_PLUGIN_PATH ${GSTREAMER_LIB_PATH}/gstreamer-1.0)
|
||||
cmake_print_variables(GSTREAMER_LIB_PATH)
|
||||
cmake_print_variables(GSTREAMER_PREFIX GSTREAMER_LIB_PATH GSTREAMER_PLUGIN_PATH)
|
||||
|
||||
################################################################################
|
||||
|
||||
@@ -117,21 +118,20 @@ message(STATUS "PKG_CONFIG $ENV{PKG_CONFIG}")
|
||||
message(STATUS "PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH}")
|
||||
message(STATUS "PKG_CONFIG_LIBDIR $ENV{PKG_CONFIG_LIBDIR}")
|
||||
find_dependency(PkgConfig)
|
||||
|
||||
cmake_print_variables(PKG_CONFIG_EXECUTABLE PKG_CONFIG_ARGN)
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
find_dependency(GObject)
|
||||
|
||||
set(GStreamer_VERSION ${QGC_GST_TARGET_VERSION})
|
||||
pkg_check_modules(GStreamer gstreamer-1.0)
|
||||
cmake_print_variables(GStreamer_VERSION)
|
||||
|
||||
# Use Latest Revisions for each minor version: 1.16.3, 1.18.6, 1.20.7, 1.22.12, 1.24.8
|
||||
# Use Latest Revisions for each minor version: 1.16.3, 1.18.6, 1.20.7, 1.22.12, 1.24.12
|
||||
string(REPLACE "." ";" GST_VERSION_LIST ${GStreamer_VERSION})
|
||||
list(GET GST_VERSION_LIST 0 GST_VERSION_MAJOR)
|
||||
list(GET GST_VERSION_LIST 1 GST_VERSION_MINOR)
|
||||
list(GET GST_VERSION_LIST 2 GST_VERSION_PATCH)
|
||||
cmake_print_variables(GST_VERSION_MAJOR GST_VERSION_MINOR GST_VERSION_PATCH)
|
||||
|
||||
if(GST_VERSION_MINOR EQUAL 16)
|
||||
set(GST_VERSION_PATCH 3)
|
||||
@@ -142,7 +142,7 @@ elseif(GST_VERSION_MINOR EQUAL 20)
|
||||
elseif(GST_VERSION_MINOR EQUAL 22)
|
||||
set(GST_VERSION_PATCH 12)
|
||||
elseif(GST_VERSION_MINOR EQUAL 24)
|
||||
set(GST_VERSION_PATCH 8)
|
||||
set(GST_VERSION_PATCH 12)
|
||||
endif()
|
||||
|
||||
set(GST_PLUGINS_VERSION ${GST_VERSION_MAJOR}.${GST_VERSION_MINOR}.${GST_VERSION_PATCH})
|
||||
@@ -192,30 +192,6 @@ endif()
|
||||
|
||||
################################################################################
|
||||
|
||||
if(Allocators IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Allocators gstreamer-allocators-1.0)
|
||||
endif()
|
||||
|
||||
if(App IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(App gstreamer-app-1.0)
|
||||
endif()
|
||||
|
||||
if(Audio IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Audio gstreamer-audio-1.0)
|
||||
endif()
|
||||
|
||||
if(Codecparsers IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Codecparsers gstreamer-codecparsers-1.0)
|
||||
endif()
|
||||
|
||||
if(Controller IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Controller gstreamer-controller-1.0)
|
||||
endif()
|
||||
|
||||
if(Fft IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Fft gstreamer-fft-1.0)
|
||||
endif()
|
||||
|
||||
if(GlEgl IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(GlEgl gstreamer-gl-egl-1.0)
|
||||
endif()
|
||||
@@ -232,72 +208,11 @@ if(GlX11 IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(GlX11 gstreamer-gl-x11-1.0)
|
||||
endif()
|
||||
|
||||
if(Mpegts IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Mpegts gstreamer-mpegts-1.0)
|
||||
endif()
|
||||
|
||||
if(Net IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Net gstreamer-net-1.0)
|
||||
endif()
|
||||
|
||||
if(Pbutils IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Pbutils gstreamer-pbutils-1.0)
|
||||
endif()
|
||||
|
||||
if(Photography IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Photography gstreamer-photography-1.0)
|
||||
endif()
|
||||
|
||||
if(Play IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Play gstreamer-play-1.0)
|
||||
endif()
|
||||
|
||||
if(PluginsBad IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(PluginsBad gstreamer-plugins-bad-1.0)
|
||||
endif()
|
||||
|
||||
if(PluginsBase IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(PluginsBase gstreamer-plugins-base-1.0)
|
||||
endif()
|
||||
|
||||
if(PluginsGood IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(PluginsGood gstreamer-plugins-good-1.0)
|
||||
endif()
|
||||
|
||||
if(Riff IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Riff gstreamer-riff-1.0)
|
||||
endif()
|
||||
|
||||
if(Rtp IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Rtp gstreamer-rtp-1.0)
|
||||
endif()
|
||||
|
||||
if(Sdp IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Sdp gstreamer-sdp-1.0)
|
||||
endif()
|
||||
|
||||
if(Rtsp IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Rtsp gstreamer-rtsp-1.0)
|
||||
endif()
|
||||
|
||||
if(Tag IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Tag gstreamer-tag-1.0)
|
||||
endif()
|
||||
|
||||
if(Va IN_LIST GStreamer_FIND_COMPONENTS)
|
||||
find_gstreamer_component(Va gstreamer-va-1.0)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
|
||||
# Create target GStreamer::GStreamer
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GStreamer
|
||||
REQUIRED_VARS
|
||||
GStreamer_Core_FOUND
|
||||
GStreamer_Base_FOUND
|
||||
GStreamer_Video_FOUND
|
||||
GStreamer_Gl_FOUND
|
||||
VERSION_VAR GStreamer_VERSION
|
||||
HANDLE_COMPONENTS
|
||||
)
|
||||
|
||||
@@ -323,31 +238,27 @@ if(QGC_GST_STATIC_BUILD)
|
||||
target_compile_definitions(GStreamer::GStreamer INTERFACE QGC_GST_STATIC_BUILD)
|
||||
endif()
|
||||
|
||||
target_include_directories(GStreamer::GStreamer
|
||||
INTERFACE
|
||||
${GSTREAMER_PREFIX}/include
|
||||
${GSTREAMER_PREFIX}/include/glib-2.0
|
||||
# ${GSTREAMER_PREFIX}/include/graphene-1.0
|
||||
${GSTREAMER_PREFIX}/include/gstreamer-1.0
|
||||
${GSTREAMER_LIB_PATH}/glib-2.0/include
|
||||
# ${GSTREAMER_LIB_PATH}/graphene-1.0/include
|
||||
${GSTREAMER_LIB_PATH}/gstreamer-1.0/include
|
||||
${GSTREAMER_PLUGIN_PATH}/include
|
||||
)
|
||||
|
||||
target_link_directories(GStreamer::GStreamer INTERFACE ${GSTREAMER_LIB_PATH} ${GSTREAMER_PLUGIN_PATH})
|
||||
|
||||
if(MACOS AND EXISTS ${GSTREAMER_FRAMEWORK_PATH})
|
||||
target_link_libraries(GStreamer::GStreamer INTERFACE "-F /Library/Frameworks -framework GStreamer")
|
||||
if(EXISTS ${GSTREAMER_FRAMEWORK_PATH})
|
||||
if(MACOS)
|
||||
target_link_libraries(GStreamer::GStreamer INTERFACE "-F /Library/Frameworks -framework GStreamer")
|
||||
elseif(IOS)
|
||||
target_link_libraries(GStreamer::GStreamer INTERFACE "-F ~/Library/Developer/GStreamer/iPhone.sdk -framework GStreamer -framework AVFoundation -framework CoreMedia -framework CoreVideo -framework VideoToolbox -liconv -lresolv")
|
||||
endif()
|
||||
target_include_directories(GStreamer::GStreamer INTERFACE "${GSTREAMER_INCLUDE_PATH}/Headers")
|
||||
return()
|
||||
endif()
|
||||
|
||||
target_link_directories(GStreamer::GStreamer INTERFACE ${GSTREAMER_LIB_PATH})
|
||||
|
||||
################################################################################
|
||||
|
||||
# TODO: https://gstreamer.freedesktop.org/documentation/qt6d3d11/index.html#qml6d3d11sink-page
|
||||
|
||||
add_library(GStreamer::Plugins INTERFACE IMPORTED)
|
||||
target_link_directories(GStreamer::Plugins INTERFACE ${GSTREAMER_PLUGIN_PATH})
|
||||
|
||||
set(GST_PLUGINS
|
||||
gstapp
|
||||
gstcoreelements
|
||||
gstisomp4
|
||||
gstlibav
|
||||
@@ -361,11 +272,10 @@ set(GST_PLUGINS
|
||||
gstsdpelem
|
||||
gsttcp
|
||||
gstudp
|
||||
gstva
|
||||
gstvaapi
|
||||
gstvideoparsersbad
|
||||
gstx264
|
||||
gstva
|
||||
gstapp
|
||||
gstvaapi
|
||||
# gstqml6
|
||||
)
|
||||
if(ANDROID)
|
||||
@@ -396,9 +306,7 @@ foreach(plugin IN LISTS GST_PLUGINS)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(NOT MACOS)
|
||||
target_link_libraries(GStreamer::GStreamer INTERFACE GStreamer::Plugins)
|
||||
endif()
|
||||
target_link_libraries(GStreamer::GStreamer INTERFACE GStreamer::Plugins)
|
||||
|
||||
################################################################################
|
||||
|
||||
|
||||
@@ -39,12 +39,12 @@ endif()
|
||||
|
||||
target_link_libraries(GStreamerReceiver
|
||||
PRIVATE
|
||||
Utilities
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
gstqml6gl
|
||||
Settings
|
||||
Utilities
|
||||
VideoReceiver
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
)
|
||||
|
||||
target_compile_definitions(GStreamerReceiver PUBLIC QGC_GST_STREAMING)
|
||||
|
||||
@@ -41,9 +41,6 @@ GST_PLUGIN_STATIC_DECLARE(mpegtsdemux);
|
||||
GST_PLUGIN_STATIC_DECLARE(opengl);
|
||||
GST_PLUGIN_STATIC_DECLARE(tcp);
|
||||
GST_PLUGIN_STATIC_DECLARE(app);
|
||||
// #ifndef Q_OS_ANDROID
|
||||
// GST_PLUGIN_STATIC_DECLARE(va);
|
||||
// #endif
|
||||
#ifdef Q_OS_ANDROID
|
||||
GST_PLUGIN_STATIC_DECLARE(androidmedia);
|
||||
#elif defined(Q_OS_IOS)
|
||||
@@ -149,9 +146,6 @@ static void _registerPlugins()
|
||||
GST_PLUGIN_STATIC_REGISTER(opengl);
|
||||
GST_PLUGIN_STATIC_REGISTER(tcp);
|
||||
GST_PLUGIN_STATIC_REGISTER(app);
|
||||
// #ifndef Q_OS_ANDROID
|
||||
// GST_PLUGIN_STATIC_REGISTER(va);
|
||||
// #endif
|
||||
#ifdef Q_OS_ANDROID
|
||||
GST_PLUGIN_STATIC_REGISTER(androidmedia);
|
||||
#elif defined(Q_OS_IOS)
|
||||
|
||||
@@ -8,26 +8,19 @@ if(MACOS)
|
||||
find_library(GSTREAMER_FRAMEWORK GStreamer)
|
||||
set(GST_PLUGINS_VERSION 1.24.12)
|
||||
set(GSTREAMER_FRAMEWORK_PATH "/Library/Frameworks/GStreamer.framework")
|
||||
target_link_libraries(gstqml6gl
|
||||
PUBLIC
|
||||
"$<LINK_LIBRARY:FRAMEWORK,/Library/Frameworks/GStreamer.framework>"
|
||||
)
|
||||
target_include_directories(gstqml6gl
|
||||
PUBLIC
|
||||
/Library/Frameworks/GStreamer.framework/Headers
|
||||
)
|
||||
target_link_libraries(gstqml6gl PUBLIC "$<LINK_LIBRARY:FRAMEWORK,${GSTREAMER_FRAMEWORK_PATH}>")
|
||||
target_include_directories(gstqml6gl PUBLIC "${GSTREAMER_FRAMEWORK_PATH}/Headers")
|
||||
else()
|
||||
set(GST_COMPONENTS Allocators App Audio Codecparsers Controller Fft GlEGL GlPrototypes GlWayland GlX11 Mpegts Net Pbutils Photography Play Riff Rtp Rtsp Sdp Tag Va)
|
||||
set(GST_COMPONENTS GlEgl GlPrototypes GlWayland GlX11)
|
||||
find_package(GStreamer REQUIRED COMPONENTS OPTIONAL_COMPONENTS ${GST_COMPONENTS})
|
||||
target_link_libraries(gstqml6gl PUBLIC GStreamer::GStreamer)
|
||||
endif()
|
||||
|
||||
target_link_libraries(gstqml6gl
|
||||
PRIVATE
|
||||
Qt6::GuiPrivate
|
||||
PUBLIC
|
||||
Qt6::Core
|
||||
Qt6::Gui
|
||||
Qt6::GuiPrivate
|
||||
Qt6::Qml
|
||||
Qt6::Quick
|
||||
)
|
||||
@@ -41,14 +34,12 @@ endforeach()
|
||||
################################################################################
|
||||
|
||||
if(LINUX)
|
||||
# if(NOT QGC_GST_STATIC_BUILD)
|
||||
install(DIRECTORY ${GSTREAMER_LIB_PATH}/gstreamer1.0 DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(CODE "execute_process(COMMAND chmod +x \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner\")")
|
||||
install(CODE "execute_process(COMMAND chmod +x \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gstreamer1.0/gstreamer-1.0/gst-ptp-helper\")")
|
||||
install(DIRECTORY ${GSTREAMER_LIB_PATH}/gio DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
get_target_property(LINKED_PLUGINS GStreamer::Plugins INTERFACE_LINK_LIBRARIES)
|
||||
install(FILES ${LINKED_PLUGINS} DESTINATION ${CMAKE_INSTALL_LIBDIR}/gstreamer-1.0)
|
||||
# endif()
|
||||
install(DIRECTORY ${GSTREAMER_LIB_PATH}/gstreamer1.0 DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(CODE "execute_process(COMMAND chmod +x \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner\")")
|
||||
install(CODE "execute_process(COMMAND chmod +x \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/gstreamer1.0/gstreamer-1.0/gst-ptp-helper\")")
|
||||
install(DIRECTORY ${GSTREAMER_LIB_PATH}/gio DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
get_target_property(LINKED_PLUGINS GStreamer::Plugins INTERFACE_LINK_LIBRARIES)
|
||||
install(FILES ${LINKED_PLUGINS} DESTINATION ${CMAKE_INSTALL_LIBDIR}/gstreamer-1.0)
|
||||
elseif(WIN32)
|
||||
cmake_path(CONVERT "${GSTREAMER_PREFIX}/bin/*.dll" TO_CMAKE_PATH_LIST GST_WIN_BINS_PATH)
|
||||
file(GLOB GST_WIN_BINS ${GST_WIN_BINS_PATH})
|
||||
@@ -82,9 +73,7 @@ elseif(MACOS)
|
||||
PATTERN "*/pkgconfig" EXCLUDE
|
||||
PATTERN "*/share" EXCLUDE
|
||||
)
|
||||
target_compile_definitions(gstqml6gl PUBLIC QGC_GST_MACOS_FRAMEWORK)
|
||||
elseif(ANDROID)
|
||||
|
||||
target_compile_definitions(gstqml6gl INTERFACE QGC_GST_MACOS_FRAMEWORK)
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
@@ -124,6 +113,7 @@ if(GStreamer_VERSION VERSION_GREATER_EQUAL 1.22)
|
||||
include(CPM)
|
||||
CPMAddPackage(
|
||||
NAME gstreamer_good_plugins
|
||||
VERSION ${GST_PLUGINS_VERSION}
|
||||
# URL https://gitlab.freedesktop.org/gstreamer/gstreamer/-/archive/${GST_PLUGINS_VERSION}/gstreamer-${GST_PLUGINS_VERSION}.zip?path=subprojects/gst-plugins-good/ext/qt6
|
||||
URL https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${GST_PLUGINS_VERSION}.tar.xz
|
||||
)
|
||||
@@ -171,13 +161,8 @@ if(ANDROID)
|
||||
elseif(WIN32)
|
||||
target_compile_definitions(gstqml6gl PRIVATE HAVE_QT_WIN32)
|
||||
elseif(MACOS)
|
||||
# appleframeworks
|
||||
# Foundation, QuartzCore, CoreFoundation
|
||||
# Cocoa
|
||||
target_compile_definitions(gstqml6gl PRIVATE HAVE_QT_MAC)
|
||||
elseif(IOS)
|
||||
# appleframeworks
|
||||
# Foundation, CoreFoundation, CoreGraphics, QuartzCore, UIkit
|
||||
target_compile_definitions(gstqml6gl PRIVATE HAVE_QT_IOS)
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user