From ba8a23725d941732eda5a9b52c40817331640c4b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 19 Dec 2021 16:06:12 -0600 Subject: [PATCH] Fix build on Bullseye --- CMakeLists.txt | 11 +++--- ...Broadcom.cmake => FindBroadcom-MMAL.cmake} | 18 ++-------- cmake/FindBroadcom-OMX.cmake | 36 +++++++++++++++++++ 3 files changed, 45 insertions(+), 20 deletions(-) rename cmake/{FindBroadcom.cmake => FindBroadcom-MMAL.cmake} (63%) create mode 100644 cmake/FindBroadcom-OMX.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 069feaf..e0d2fa3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,8 @@ set(MOONLIGHT_DEFINITIONS) find_package(ALSA) find_package(Opus REQUIRED) -find_package(Broadcom) +find_package(Broadcom-OMX) +find_package(Broadcom-MMAL) find_package(Freescale) find_package(Amlogic) find_package(Rockchip) @@ -98,7 +99,7 @@ if(AMLOGIC_FOUND) install(TARGETS moonlight-aml DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -if(BROADCOM_FOUND) +if(BROADCOM-OMX_FOUND) list(APPEND MOONLIGHT_DEFINITIONS HAVE_PI) list(APPEND MOONLIGHT_OPTIONS PI) aux_source_directory(./third_party/ilclient ILCLIENT_SRC_LIST) @@ -107,7 +108,9 @@ if(BROADCOM_FOUND) target_link_libraries(moonlight-pi gamestream ${BROADCOM_OMX_LIBRARIES} ${OPUS_LIBRARY}) set_property(TARGET moonlight-pi PROPERTY COMPILE_DEFINITIONS ${BROADCOM_OMX_DEFINITIONS}) install(TARGETS moonlight-pi DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() +if(BROADCOM-MMAL_FOUND) list(APPEND MOONLIGHT_DEFINITIONS HAVE_MMAL) list(APPEND MOONLIGHT_OPTIONS MMAL) add_library(moonlight-mmal SHARED ./src/video/mmal.c) @@ -184,12 +187,12 @@ if (PULSE_FOUND) target_link_libraries(moonlight ${PULSE_LIBRARIES}) endif() -if (AMLOGIC_FOUND OR BROADCOM_FOUND OR FREESCALE_FOUND OR ROCKCHIP_FOUND OR X11_FOUND) +if (AMLOGIC_FOUND OR BROADCOM-OMX_FOUND OR BROADCOM-MMAL_FOUND OR FREESCALE_FOUND OR ROCKCHIP_FOUND OR X11_FOUND) list(APPEND MOONLIGHT_DEFINITIONS HAVE_EMBEDDED) list(APPEND MOONLIGHT_OPTIONS EMBEDDED) endif() -if(NOT AMLOGIC_FOUND AND NOT BROADCOM_FOUND AND NOT FREESCALE_FOUND AND NOT ROCKCHIP_FOUND AND NOT SOFTWARE_FOUND) +if(NOT AMLOGIC_FOUND AND NOT BROADCOM-OMX_FOUND AND NOT BROADCOM-MMAL_FOUND AND NOT FREESCALE_FOUND AND NOT ROCKCHIP_FOUND AND NOT SOFTWARE_FOUND) message(FATAL_ERROR "No video output available") endif() diff --git a/cmake/FindBroadcom.cmake b/cmake/FindBroadcom-MMAL.cmake similarity index 63% rename from cmake/FindBroadcom.cmake rename to cmake/FindBroadcom-MMAL.cmake index 250498c..602f298 100644 --- a/cmake/FindBroadcom.cmake +++ b/cmake/FindBroadcom-MMAL.cmake @@ -10,18 +10,6 @@ find_library(VCOS_LIBRARY PATHS /opt/vc/lib) mark_as_advanced(VCOS_LIBRARY) -find_library(VCHIQ_LIBRARY - NAMES libvchiq_arm.so - DOC "Path to VCHIQ Library" - PATHS /opt/vc/lib) -mark_as_advanced(VCHIQ_LIBRARY) - -find_library(OPENMAXIL_LIBRARY - NAMES libopenmaxil.so - DOC "Path to OpenMAX IL Library" - PATHS /opt/vc/lib) -mark_as_advanced(OPENMAXIL_LIBRARY) - find_library(BCM_HOST_LIBRARY NAMES libbcm_host.so DOC "Path to Broadcom Host Library" @@ -47,9 +35,7 @@ find_library(MMAL_VC_CLIENT_LIBRARY mark_as_advanced(MMAL_VC_CLIENT_LIBRARY) include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Broadcom DEFAULT_MSG BROADCOM_INCLUDE_DIR VCOS_LIBRARY VCHIQ_LIBRARY OPENMAXIL_LIBRARY BCM_HOST_LIBRARY) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Broadcom-MMAL DEFAULT_MSG BROADCOM_INCLUDE_DIR VCOS_LIBRARY MMAL_CORE_LIBRARY MMAL_UTIL_LIBRARY MMAL_VC_CLIENT_LIBRARY BCM_HOST_LIBRARY) -set(BROADCOM_OMX_LIBRARIES ${BCM_HOST_LIBRARY} ${OPENMAXIL_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY}) set(BROADCOM_MMAL_LIBRARIES ${BCM_HOST_LIBRARY} ${VCOS_LIBRARY} ${MMAL_CORE_LIBRARY} ${MMAL_UTIL_LIBRARY} ${MMAL_VC_CLIENT_LIBRARY}) -set(BROADCOM_INCLUDE_DIRS ${BROADCOM_INCLUDE_DIR} ${BROADCOM_INCLUDE_DIR}/interface/vmcs_host/linux ${BROADCOM_INCLUDE_DIR}/interface/vcos/pthreads) -set(BROADCOM_OMX_DEFINITIONS USE_VCHIQ_ARM HAVE_LIBOPENMAX=2 OMX OMX_SKIP64BIT USE_EXTERNAL_OMX HAVE_LIBBCM_HOST USE_EXTERNAL_LIBBCM_HOST) +set(BROADCOM_INCLUDE_DIRS ${BROADCOM_INCLUDE_DIR} ${BROADCOM_INCLUDE_DIR}/interface/vmcs_host/linux ${BROADCOM_INCLUDE_DIR}/interface/vcos/pthreads) \ No newline at end of file diff --git a/cmake/FindBroadcom-OMX.cmake b/cmake/FindBroadcom-OMX.cmake new file mode 100644 index 0000000..dabffc5 --- /dev/null +++ b/cmake/FindBroadcom-OMX.cmake @@ -0,0 +1,36 @@ +find_path(BROADCOM_INCLUDE_DIR + NAMES bcm_host.h + DOC "Broadcom include directory" + PATHS /opt/vc/include) +mark_as_advanced(BCM_INCLUDE_DIR) + +find_library(VCOS_LIBRARY + NAMES libvcos.so + DOC "Path to VCOS Library" + PATHS /opt/vc/lib) +mark_as_advanced(VCOS_LIBRARY) + +find_library(VCHIQ_LIBRARY + NAMES libvchiq_arm.so + DOC "Path to VCHIQ Library" + PATHS /opt/vc/lib) +mark_as_advanced(VCHIQ_LIBRARY) + +find_library(OPENMAXIL_LIBRARY + NAMES libopenmaxil.so + DOC "Path to OpenMAX IL Library" + PATHS /opt/vc/lib) +mark_as_advanced(OPENMAXIL_LIBRARY) + +find_library(BCM_HOST_LIBRARY + NAMES libbcm_host.so + DOC "Path to Broadcom Host Library" + PATHS /opt/vc/lib) +mark_as_advanced(BCM_HOST_LIBRARY) + +include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Broadcom-OMX DEFAULT_MSG BROADCOM_INCLUDE_DIR VCOS_LIBRARY VCHIQ_LIBRARY OPENMAXIL_LIBRARY BCM_HOST_LIBRARY) + +set(BROADCOM_OMX_LIBRARIES ${BCM_HOST_LIBRARY} ${OPENMAXIL_LIBRARY} ${VCHIQ_LIBRARY} ${VCOS_LIBRARY}) +set(BROADCOM_INCLUDE_DIRS ${BROADCOM_INCLUDE_DIR} ${BROADCOM_INCLUDE_DIR}/interface/vmcs_host/linux ${BROADCOM_INCLUDE_DIR}/interface/vcos/pthreads) +set(BROADCOM_OMX_DEFINITIONS USE_VCHIQ_ARM HAVE_LIBOPENMAX=2 OMX OMX_SKIP64BIT USE_EXTERNAL_OMX HAVE_LIBBCM_HOST USE_EXTERNAL_LIBBCM_HOST)