xref: /OK3568_Linux_fs/yocto/meta-rockchip/recipes-multimedia/rockchip-rkaiq/rockchip-rkaiq.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1# Copyright (C) 2022, 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}-server ${PN}-iqfiles"
10
11DEPENDS = "coreutils-native chrpath-replacement-native xxd-native rockchip-librga"
12RDEPENDS:${PN}-server = "${PN}"
13
14PACKAGE_ARCH = "${MACHINE_ARCH}"
15
16inherit local-git
17
18SRCREV = "be96b36bab4c3533f7cd011385539b565578ab8b"
19SRC_URI = " \
20	git://github.com/JeffyCN/mirrors.git;protocol=https;nobranch=1;branch=rkaiq-2023_04_04; \
21	file://rkaiq_daemons.sh \
22"
23
24S = "${WORKDIR}/git"
25
26inherit pkgconfig cmake
27
28EXTRA_OECMAKE = "     \
29    -DARCH=${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'aarch64', 'arm', d)} \
30    -DISP_HW_VERSION=-DISP_HW_V${@d.getVar('RK_ISP_VERSION').replace('.','')} \
31    -DRKAIQ_TARGET_SOC=${@d.getVar('SOC_FAMILY').replace('rk3568','rk356x')} \
32"
33
34do_generate_toolchain_file:append () {
35	echo "set( CMAKE_SYSROOT ${STAGING_DIR_HOST} )" >> \
36		${WORKDIR}/toolchain.cmake
37	echo "set( CMAKE_SYSROOT_COMPILE ${STAGING_DIR_HOST} )" >> \
38		${WORKDIR}/toolchain.cmake
39
40	sed -i "s/\(\${CMAKE_C_COMPILER}\)/\1 -I\${CMAKE_SYSROOT}\/usr\/include/" \
41		${S}/rkaiq/iq_parser_v2/CMakeLists.txt
42
43	sed -i 's/if ( !pattr )/if ( pattr )/' ${S}/rkaiq/iq_parser/xmltags.cpp
44	sed -i '/\<prebuilts\>/d' ${S}/rkaiq_3A_server/CMakeLists.txt
45	sed -i 's/\(add_library(.* STATIC IMPORTED\))/\1 GLOBAL)/' ${S}/rkaiq/algos/CMakeLists.txt
46}
47
48do_install:append () {
49	# rkaiq installed 3A server to the wrong dir.
50	[ -d ${D}/usr/usr ] && mv ${D}/usr/usr/* ${D}/usr/
51	rm -rf ${D}/usr/etc ${D}/usr/usr ${D}/usr/bin/*demo
52
53	chrpath -d ${D}/usr/lib/libsmartIr.so
54
55	install -d ${D}${sysconfdir}/iqfiles
56
57	case "${RK_ISP_VERSION}" in
58		2.0)
59			install -m 0644 ${S}/rkaiq/iqfiles/isp20/*.json \
60				${D}${sysconfdir}/iqfiles/
61			;;
62		2.1)
63			install -m 0644 ${S}/rkaiq/iqfiles/isp21/*.json \
64				${D}${sysconfdir}/iqfiles/
65			;;
66		3.0)
67			install -m 0644 ${S}/rkaiq/iqfiles/isp3x/*.json \
68				${D}${sysconfdir}/iqfiles/
69			;;
70		3.2_LITE)
71			install -m 0644 ${S}/rkaiq/iqfiles/isp32_lite/*.json \
72				${D}${sysconfdir}/iqfiles/
73			;;
74	esac
75
76	install -d ${D}${sysconfdir}/init.d
77	install -m 0755 ${WORKDIR}/rkaiq_daemons.sh ${D}${sysconfdir}/init.d/
78}
79
80inherit update-rc.d
81
82INITSCRIPT_PACKAGES = "${PN}-server"
83INITSCRIPT_NAME:${PN}-server = "rkaiq_daemons.sh"
84INITSCRIPT_PARAMS:${PN}-server = "start 70 5 4 3 2 . stop 30 0 1 6 ."
85
86FILES:${PN}-dev = "${includedir}"
87FILES:${PN}-server = " \
88	${bindir}/rkaiq_3A_server \
89	${sysconfdir}/init.d/ \
90"
91FILES:${PN}-iqfiles = "${sysconfdir}/iqfiles/"
92FILES:${PN} = "${libdir}"
93