From 18fd1637a6a43ca618ef1bd069fba5783cb96176 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 28 Dec 2021 18:05:25 -0600 Subject: [PATCH] Prefer pkg-config for finding MMAL libraries --- CMakeLists.txt | 16 ++++++++++------ .../{FindBroadcom-MMAL.cmake => FindMMAL.cmake} | 8 ++++---- 2 files changed, 14 insertions(+), 10 deletions(-) rename cmake/{FindBroadcom-MMAL.cmake => FindMMAL.cmake} (65%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b707f37..b7c1bc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,6 @@ set(MOONLIGHT_DEFINITIONS) find_package(ALSA) find_package(Opus REQUIRED) find_package(Broadcom-OMX) -find_package(Broadcom-MMAL) find_package(Freescale) find_package(Amlogic) find_package(Rockchip) @@ -51,6 +50,11 @@ if (ENABLE_CEC) pkg_check_modules(CEC libcec>=4) endif() +pkg_check_modules(MMAL mmal) +if (NOT MMAL_FOUND) + find_package(MMAL) +endif() + set(VDPAU_ACCEL_FOUND FALSE) set(VA_ACCEL_FOUND FALSE) set(SOFTWARE_FOUND FALSE) @@ -110,12 +114,12 @@ if(BROADCOM-OMX_FOUND) install(TARGETS moonlight-pi DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -if(BROADCOM-MMAL_FOUND) +if(MMAL_FOUND) list(APPEND MOONLIGHT_DEFINITIONS HAVE_MMAL) list(APPEND MOONLIGHT_OPTIONS MMAL) add_library(moonlight-mmal SHARED ./src/video/mmal.c) - target_include_directories(moonlight-mmal PRIVATE ${BROADCOM_INCLUDE_DIRS} ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR}) - target_link_libraries(moonlight-mmal gamestream ${BROADCOM_MMAL_LIBRARIES}) + target_include_directories(moonlight-mmal PRIVATE ${MMAL_INCLUDE_DIRS} ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR}) + target_link_libraries(moonlight-mmal gamestream ${MMAL_LIBRARIES}) install(TARGETS moonlight-mmal DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() @@ -187,12 +191,12 @@ if (PULSE_FOUND) target_link_libraries(moonlight ${PULSE_LIBRARIES}) endif() -if (AMLOGIC_FOUND OR BROADCOM-OMX_FOUND OR BROADCOM-MMAL_FOUND OR FREESCALE_FOUND OR ROCKCHIP_FOUND OR X11_FOUND) +if (AMLOGIC_FOUND OR BROADCOM-OMX_FOUND OR 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-OMX_FOUND AND NOT BROADCOM-MMAL_FOUND AND NOT FREESCALE_FOUND AND NOT ROCKCHIP_FOUND AND NOT SOFTWARE_FOUND) +if(NOT AMLOGIC_FOUND AND NOT BROADCOM-OMX_FOUND AND NOT 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-MMAL.cmake b/cmake/FindMMAL.cmake similarity index 65% rename from cmake/FindBroadcom-MMAL.cmake rename to cmake/FindMMAL.cmake index 602f298..e05c86d 100644 --- a/cmake/FindBroadcom-MMAL.cmake +++ b/cmake/FindMMAL.cmake @@ -2,7 +2,7 @@ find_path(BROADCOM_INCLUDE_DIR NAMES bcm_host.h DOC "Broadcom include directory" PATHS /opt/vc/include) -mark_as_advanced(BCM_INCLUDE_DIR) +mark_as_advanced(BROADCOM_INCLUDE_DIR) find_library(VCOS_LIBRARY NAMES libvcos.so @@ -35,7 +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-MMAL DEFAULT_MSG BROADCOM_INCLUDE_DIR VCOS_LIBRARY MMAL_CORE_LIBRARY MMAL_UTIL_LIBRARY MMAL_VC_CLIENT_LIBRARY BCM_HOST_LIBRARY) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(MMAL DEFAULT_MSG BROADCOM_INCLUDE_DIR VCOS_LIBRARY MMAL_CORE_LIBRARY MMAL_UTIL_LIBRARY MMAL_VC_CLIENT_LIBRARY BCM_HOST_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) \ No newline at end of file +set(MMAL_LIBRARIES ${BCM_HOST_LIBRARY} ${VCOS_LIBRARY} ${MMAL_CORE_LIBRARY} ${MMAL_UTIL_LIBRARY} ${MMAL_VC_CLIENT_LIBRARY}) +set(MMAL_INCLUDE_DIRS ${BROADCOM_INCLUDE_DIR}) \ No newline at end of file