xref: /OK3568_Linux_fs/yocto/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Library for interfacing with IIO devices"
2*4882a593SmuzhiyunHOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
3*4882a593SmuzhiyunSECTION = "libs"
4*4882a593SmuzhiyunLICENSE = "LGPL-2.1-or-later"
5*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunSRCREV = "92d6a35f3d8d721cda7d6fe664b435311dd368b4"
8*4882a593SmuzhiyunPV = "0.23"
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunSRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=master \
11*4882a593Smuzhiyun           file://0001-CMake-Move-include-CheckCSourceCompiles-before-its-m.patch \
12*4882a593Smuzhiyun"
13*4882a593SmuzhiyunUPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunS = "${WORKDIR}/git"
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunSETUPTOOLS_SETUP_PATH ?= "${B}/bindings/python/"
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunDEPENDS = " \
20*4882a593Smuzhiyun    flex-native bison-native libaio \
21*4882a593Smuzhiyun"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyuninherit cmake python3native systemd setuptools3
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunEXTRA_OECMAKE = " \
26*4882a593Smuzhiyun    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
27*4882a593Smuzhiyun    -DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
28*4882a593Smuzhiyun    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
29*4882a593Smuzhiyun"
30*4882a593Smuzhiyun
31*4882a593SmuzhiyunPACKAGECONFIG ??= " \
32*4882a593Smuzhiyun    usb_backend network_backend serial_backend xml_backend \
33*4882a593Smuzhiyun    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'dnssd', '', d)} \
34*4882a593Smuzhiyun"
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun# network_backend, serial_backend and usb_backend depend on xml_backend, so don't switch it off
37*4882a593SmuzhiyunXML_BACKEND_DISABLE = "${@bb.utils.contains_any('PACKAGECONFIG', 'network_backend serial_backend usb_backend', '', '-DWITH_XML_BACKEND=off', d)}"
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunPACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1 libxml2"
40*4882a593SmuzhiyunPACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
41*4882a593SmuzhiyunPACKAGECONFIG[serial_backend] = "-DWITH_SERIAL_BACKEND=ON -DWITH_XML_BACKEND=ON,-DWITH_SERIAL_BACKEND=off,libserialport libxml2"
42*4882a593SmuzhiyunPACKAGECONFIG[xml_backend] = "-DWITH_XML_BACKEND=ON,${XML_BACKEND_DISABLE},libxml2"
43*4882a593SmuzhiyunPACKAGECONFIG[dnssd] = "-DHAVE_DNS_SD=ON,-DHAVE_DNS_SD=off,avahi"
44*4882a593SmuzhiyunPACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"
45*4882a593Smuzhiyun
46*4882a593SmuzhiyunPACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}"
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun# Inheriting setuptools3 incorrectly adds the dependency on ${PYTHON_PN}-core
49*4882a593Smuzhiyun# to ${PN} instead of to ${PN}-${PYTHON_PN} where it belongs.
50*4882a593SmuzhiyunRDEPENDS:${PN}:remove = "${PYTHON_PN}-core"
51*4882a593SmuzhiyunRDEPENDS:${PN}-${PYTHON_PN} = "${PN} ${PYTHON_PN}-core ${PYTHON_PN}-ctypes ${PYTHON_PN}-stringold"
52*4882a593Smuzhiyun
53*4882a593SmuzhiyunFILES:${PN}-iiod = " \
54*4882a593Smuzhiyun    ${sbindir}/iiod \
55*4882a593Smuzhiyun    ${systemd_system_unitdir}/iiod.service \
56*4882a593Smuzhiyun"
57*4882a593SmuzhiyunFILES:${PN}-tests = "${bindir}"
58*4882a593SmuzhiyunFILES:${PN}-${PYTHON_PN} = "${PYTHON_SITEPACKAGES_DIR}"
59*4882a593Smuzhiyun
60*4882a593SmuzhiyunSYSTEMD_PACKAGES = "${PN}-iiod"
61*4882a593SmuzhiyunSYSTEMD_SERVICE:${PN}-iiod = "iiod.service"
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun# Explicitly define do_configure, do_compile and do_install because both cmake and setuptools3 have
64*4882a593Smuzhiyun# EXPORT_FUNCTIONS do_configure do_compile do_install
65*4882a593Smuzhiyundo_configure() {
66*4882a593Smuzhiyun    cmake_do_configure
67*4882a593Smuzhiyun}
68*4882a593Smuzhiyun
69*4882a593Smuzhiyundo_compile() {
70*4882a593Smuzhiyun    if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
71*4882a593Smuzhiyun        setuptools3_do_compile
72*4882a593Smuzhiyun    fi
73*4882a593Smuzhiyun    cmake_do_compile
74*4882a593Smuzhiyun}
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunPIP_INSTALL_PACKAGE = "pylibiio"
77*4882a593Smuzhiyundo_install() {
78*4882a593Smuzhiyun    if ${@bb.utils.contains('PACKAGECONFIG', 'libiio-python3', 'true', 'false', d)}; then
79*4882a593Smuzhiyun        setuptools3_do_install
80*4882a593Smuzhiyun    fi
81*4882a593Smuzhiyun    cmake_do_install
82*4882a593Smuzhiyun}
83