Prefer pkg-config for finding MMAL libraries

This commit is contained in:
Cameron Gutman 2021-12-28 18:05:25 -06:00
parent 807565de8b
commit 18fd1637a6
2 changed files with 14 additions and 10 deletions

View File

@ -13,7 +13,6 @@ set(MOONLIGHT_DEFINITIONS)
find_package(ALSA) find_package(ALSA)
find_package(Opus REQUIRED) find_package(Opus REQUIRED)
find_package(Broadcom-OMX) find_package(Broadcom-OMX)
find_package(Broadcom-MMAL)
find_package(Freescale) find_package(Freescale)
find_package(Amlogic) find_package(Amlogic)
find_package(Rockchip) find_package(Rockchip)
@ -51,6 +50,11 @@ if (ENABLE_CEC)
pkg_check_modules(CEC libcec>=4) pkg_check_modules(CEC libcec>=4)
endif() endif()
pkg_check_modules(MMAL mmal)
if (NOT MMAL_FOUND)
find_package(MMAL)
endif()
set(VDPAU_ACCEL_FOUND FALSE) set(VDPAU_ACCEL_FOUND FALSE)
set(VA_ACCEL_FOUND FALSE) set(VA_ACCEL_FOUND FALSE)
set(SOFTWARE_FOUND FALSE) set(SOFTWARE_FOUND FALSE)
@ -110,12 +114,12 @@ if(BROADCOM-OMX_FOUND)
install(TARGETS moonlight-pi DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS moonlight-pi DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif() endif()
if(BROADCOM-MMAL_FOUND) if(MMAL_FOUND)
list(APPEND MOONLIGHT_DEFINITIONS HAVE_MMAL) list(APPEND MOONLIGHT_DEFINITIONS HAVE_MMAL)
list(APPEND MOONLIGHT_OPTIONS MMAL) list(APPEND MOONLIGHT_OPTIONS MMAL)
add_library(moonlight-mmal SHARED ./src/video/mmal.c) 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_include_directories(moonlight-mmal PRIVATE ${MMAL_INCLUDE_DIRS} ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR})
target_link_libraries(moonlight-mmal gamestream ${BROADCOM_MMAL_LIBRARIES}) target_link_libraries(moonlight-mmal gamestream ${MMAL_LIBRARIES})
install(TARGETS moonlight-mmal DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS moonlight-mmal DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif() endif()
@ -187,12 +191,12 @@ if (PULSE_FOUND)
target_link_libraries(moonlight ${PULSE_LIBRARIES}) target_link_libraries(moonlight ${PULSE_LIBRARIES})
endif() 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_DEFINITIONS HAVE_EMBEDDED)
list(APPEND MOONLIGHT_OPTIONS EMBEDDED) list(APPEND MOONLIGHT_OPTIONS EMBEDDED)
endif() 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") message(FATAL_ERROR "No video output available")
endif() endif()

View File

@ -2,7 +2,7 @@ find_path(BROADCOM_INCLUDE_DIR
NAMES bcm_host.h NAMES bcm_host.h
DOC "Broadcom include directory" DOC "Broadcom include directory"
PATHS /opt/vc/include) PATHS /opt/vc/include)
mark_as_advanced(BCM_INCLUDE_DIR) mark_as_advanced(BROADCOM_INCLUDE_DIR)
find_library(VCOS_LIBRARY find_library(VCOS_LIBRARY
NAMES libvcos.so NAMES libvcos.so
@ -35,7 +35,7 @@ find_library(MMAL_VC_CLIENT_LIBRARY
mark_as_advanced(MMAL_VC_CLIENT_LIBRARY) mark_as_advanced(MMAL_VC_CLIENT_LIBRARY)
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 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(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(MMAL_INCLUDE_DIRS ${BROADCOM_INCLUDE_DIR})