xref: /OK3568_Linux_fs/yocto/meta-rockchip/recipes-multimedia/rockchip-rkisp/rockchip-rkisp.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# Copyright (C) 2019, Fuzhou Rockchip Electronics Co., Ltd
2# Released under the MIT license (see COPYING.MIT for the terms)
3
4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://NOTICE;md5=9645f39e9db895a4aa6e02cb57294595"
6
7FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
8
9PACKAGES:append = " ${PN}-tests ${PN}-server ${PN}-iqfiles"
10
11DEPENDS = "coreutils-native chrpath-replacement-native libdrm"
12RDEPENDS:${PN}-tests = "${PN}"
13RDEPENDS:${PN}-server = "${PN}"
14
15inherit local-git
16
17SRCREV = "fafcd69874d20a7737425cc16a70619b220f8a2e"
18SRC_URI = " \
19	git://github.com/JeffyCN/mirrors.git;protocol=https;branch=camera_engine_rkisp; \
20	file://rkisp_daemons.sh \
21"
22
23S = "${WORKDIR}/git"
24
25do_configure() {
26	if echo ${TUNE_FEATURES} | grep -wq arm; then
27		ln -sf glib-2.0-32 ext/rkisp/usr/include/glib-2.0
28		ln -sf lib32 ext/rkisp/usr/lib
29		ln -sf lib32 plugins/3a/rkiq/aec/lib
30		ln -sf lib32 plugins/3a/rkiq/af/lib
31		ln -sf lib32 plugins/3a/rkiq/awb/lib
32	else
33		ln -sf glib-2.0-64 ext/rkisp/usr/include/glib-2.0
34		ln -sf lib64 ext/rkisp/usr/lib
35		ln -sf lib64 plugins/3a/rkiq/aec/lib
36		ln -sf lib64 plugins/3a/rkiq/af/lib
37		ln -sf lib64 plugins/3a/rkiq/awb/lib
38	fi
39}
40
41do_compile() {
42	if echo ${TUNE_FEATURES} | grep -wq arm; then
43		ARCH=arm
44	else
45		ARCH=aarch64
46	fi
47
48	sed -i 's/(cmd)/((unsigned long)cmd)/' ${S}/xcore/fake_v4l2_device.h
49
50	oe_runmake ARCH="${ARCH}" \
51		TARGET_GCC="${CC} ${CFLAGS} ${LDFLAGS}" \
52		TARGET_GPP="${CXX} ${CPPFLAGS} ${LDFLAGS} -Wno-error=cpp" \
53		TARGET_LD="${LD} ${LDFLAGS}" TARGET_AR="${AR}"
54}
55
56do_install() {
57	chrpath -d build/bin/*
58
59	install -d ${D}${bindir}
60	install -m 0755 build/bin/rkisp_demo ${D}${bindir}
61	install -m 0755 build/bin/rkisp_3A_server ${D}${bindir}
62
63	install -d ${D}${sysconfdir}/iqfiles
64	install -m 0644 iqfiles/*.xml ${D}${sysconfdir}/iqfiles/
65
66	install -d ${D}${libdir}
67	install -m 0644 build/lib/librkisp.so ${D}${libdir}
68
69	chrpath -d ${D}${libdir}/librkisp.so
70
71	install -d ${D}${libdir}/rkisp/ae
72	install -m 0644 plugins/3a/rkiq/aec/lib/librkisp_aec.so \
73		${D}${libdir}/rkisp/ae/
74
75	install -d ${D}${libdir}/rkisp/af
76	install -m 0644 plugins/3a/rkiq/af/lib/librkisp_af.so \
77		${D}${libdir}/rkisp/af/
78
79	install -d ${D}${libdir}/rkisp/awb
80	install -m 0644 plugins/3a/rkiq/awb/lib/librkisp_awb.so \
81		${D}${libdir}/rkisp/awb/
82
83	chrpath -d ${D}${libdir}/rkisp/*/*.so
84
85	install -d ${D}${includedir}/camera_engine_rkisp/interface
86	install -m 0644 interface/*.h \
87		${D}${includedir}/camera_engine_rkisp/interface/
88
89	install -d ${D}${sysconfdir}/init.d
90	install -m 0755 ${WORKDIR}/rkisp_daemons.sh ${D}${sysconfdir}/init.d/
91}
92
93inherit update-rc.d
94
95INITSCRIPT_PACKAGES = "${PN}-server"
96INITSCRIPT_NAME:${PN}-server = "rkisp_daemons.sh"
97INITSCRIPT_PARAMS:${PN}-server = "start 70 5 4 3 2 . stop 30 0 1 6 ."
98
99INSANE_SKIP:${PN} = "already-stripped ldflags"
100
101FILES:${PN}-dev = "${includedir}"
102FILES:${PN}-tests = "${bindir}/rkisp_demo"
103FILES:${PN}-server = " \
104	${bindir}/rkisp_3A_server \
105	${sysconfdir}/init.d/ \
106"
107FILES:${PN}-iqfiles = "${sysconfdir}/iqfiles/"
108FILES:${PN} = "${libdir}"
109