Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix mac gstreamer bundling #12387

Merged
merged 4 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
ARTIFACT: QGroundControl.dmg
PACKAGE: QGroundControl
QT_VERSION: 6.8.1
GST_VERSION: 1.22.12
GST_VERSION: 1.24.12
CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules

steps:
Expand Down Expand Up @@ -63,7 +63,6 @@ jobs:
for package in *.pkg ;
do sudo installer -verbose -pkg "$package" -target /
done
echo "PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/lib/pkgconfig:/Library/Frameworks/GStreamer.framework/lib/gstreamer-1.0/pkgconfig:${{ env.PKG_CONFIG_PATH }}" >> "$GITHUB_ENV"
- name: Setup Caching
uses: ./.github/actions/cache
Expand Down
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,6 @@ if(ANDROID)
# message(STATUS "QT_ANDROID_KEYSTORE_PATH $ENV{QT_ANDROID_KEYSTORE_PATH}")
# message(STATUS "QT_ANDROID_KEYSTORE_ALIAS $ENV{QT_ANDROID_KEYSTORE_ALIAS}")
# QT_ANDROID_KEYSTORE_STORE_PASS, QT_ANDROID_KEYSTORE_KEY_PASS
elseif(MACOS)
set(QGC_ENABLE_GST_VIDEOSTREAMING OFF CACHE BOOL "" FORCE)
endif()

find_package(Qt6
Expand Down Expand Up @@ -501,6 +499,7 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
Qt6::Core5Compat
Qt6::Quick
Qt6::Widgets
Qt6::Svg
QGC
QmlControls
)
Expand Down
36 changes: 17 additions & 19 deletions src/VideoManager/VideoReceiver/GStreamer/gstqml6gl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ if(MACOS)
# So for now we hack in a simple hardwired setup which does work
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>"
Expand Down Expand Up @@ -68,26 +69,23 @@ elseif(WIN32)
file(GLOB GST_HELPER_BINS ${GST_HELPER_BINS_PATH})
install(FILES ${GST_HELPER_BINS} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/gstreamer-1.0)
elseif(MACOS)
if(EXISTS "${GSTREAMER_FRAMEWORK_PATH}")
# install(
# IMPORTED_RUNTIME_ARTIFACTS GStreamer::GStreamer
# FRAMEWORK DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks/GStreamer.framework"
# )
install(
DIRECTORY "${GSTREAMER_FRAMEWORK_PATH}"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks"
PATTERN "*.la" EXCLUDE
PATTERN "*.a" EXCLUDE
PATTERN "*/bin" EXCLUDE
PATTERN "*/etc" EXCLUDE
PATTERN "*/gst-validate-launcher" EXCLUDE
PATTERN "*/Headers" EXCLUDE
PATTERN "*/include" EXCLUDE
PATTERN "*/pkgconfig" EXCLUDE
PATTERN "*/share" EXCLUDE
)
target_compile_definitions(gstqml6gl PUBLIC QGC_GST_MACOS_FRAMEWORK)
if(NOT EXISTS "${GSTREAMER_FRAMEWORK_PATH}")
message(FATAL_ERROR "GStreamer.framework not found at ${GSTREAMER_FRAMEWORK_PATH}")
endif()
install(
DIRECTORY "${GSTREAMER_FRAMEWORK_PATH}"
DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}.app/Contents/Frameworks"
PATTERN "*.la" EXCLUDE
PATTERN "*.a" EXCLUDE
PATTERN "*/bin" EXCLUDE
PATTERN "*/etc" EXCLUDE
PATTERN "*/gst-validate-launcher" EXCLUDE
PATTERN "*/Headers" EXCLUDE
PATTERN "*/include" EXCLUDE
PATTERN "*/pkgconfig" EXCLUDE
PATTERN "*/share" EXCLUDE
)
target_compile_definitions(gstqml6gl PUBLIC QGC_GST_MACOS_FRAMEWORK)
elseif(ANDROID)
if(CMAKE_HOST_WIN32)
cmake_path(CONVERT "${GSTREAMER_PREFIX}/share/gst-android/ndk-build/tools/windows/*.dll" TO_CMAKE_PATH_LIST GST_WIN_TOOLS_PATH)
Expand Down
Loading