1
0
mirror of https://git.sr.ht/~thestr4ng3r/chiaki synced 2025-03-12 05:25:23 -07:00
chiaki/cmake/FindILClient.cmake
2020-11-14 19:51:08 +01:00

58 lines
1.5 KiB
CMake

# Provides ILClient::ILClient
# (Raspberry Pi-specific video decoding stuff, very specific for libraspberrypi0 and libraspberrypi-doc)
set(_required_libs
/opt/vc/lib/libbcm_host.so
/opt/vc/lib/libvcilcs.a
/opt/vc/lib/libvchiq_arm.so
/opt/vc/lib/libvcos.so)
unset(_libvars)
foreach(_lib ${_required_libs})
get_filename_component(_libname "${_lib}" NAME_WE)
set(_libvar "ILClient_${_libname}_LIBRARY")
list(APPEND _libvars "${_libvar}")
if(EXISTS "${_lib}")
set("${_libvar}" "${_lib}")
else()
set("${_libvar}" "${_libvar}-NOTFOUND")
endif()
endforeach()
find_path(ILClient_INCLUDE_DIR bcm_host.h
PATHS /opt/vc/include
NO_DEFAULT_PATH)
find_path(ILClient_SOURCE_DIR ilclient.c
PATHS /opt/vc/src/hello_pi/libs/ilclient)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(ILClient
FOUND_VAR ILClient_FOUND
REQUIRED_VARS
${_libvars}
ILClient_INCLUDE_DIR
ILClient_SOURCE_DIR)
if(ILClient_FOUND)
if(NOT TARGET ILClient::ILClient)
# see /opt/vc/src/hello_pi/libs/ilclient/Makefile
add_library(ilclient STATIC
"${ILClient_SOURCE_DIR}/ilclient.c"
"${ILClient_SOURCE_DIR}/ilcore.c")
target_include_directories(ilclient PUBLIC
"${ILClient_INCLUDE_DIR}"
"${ILClient_SOURCE_DIR}")
target_compile_definitions(ilclient PUBLIC
HAVE_LIBOPENMAX=2
OMX
OMX_SKIP64BIT
USE_EXTERNAL_OMX
HAVE_LIBBCM_HOST
USE_EXTERNAL_LIBBCM_HOST
USE_VCHIQ_ARM)
target_link_libraries(ilclient PUBLIC ${_required_libs})
add_library(ILClient::ILClient ALIAS ilclient)
endif()
endif()