File: FindILClient.cmake

package info (click to toggle)
chiaki 2.2.0-1.2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 5,312 kB
  • sloc: ansic: 17,616; cpp: 7,901; xml: 2,691; sh: 395; python: 96; makefile: 6
file content (57 lines) | stat: -rw-r--r-- 1,539 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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()