libqmi: switch to meson build tools

Using https://gitlab.freedesktop.org/mobile-broadband/libqmi.git to download the source code.
Enabled lto and additional gcc flags for perfomance and less size.
Added support for selecting qmi message collection.
Selected basic qmi message collection by default (modemmanager requires it).
Modified to use meson as upstream has abandoned autotools.
Removed BUILD_PARALLEL options. These are default with ninja/meson.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
This commit is contained in:
Maxim Anisimov 2022-03-26 12:04:26 +03:00 committed by Rosen Penev
parent 189f078a35
commit f7cbd44540
2 changed files with 47 additions and 19 deletions

View file

@ -13,4 +13,19 @@ config LIBQMI_WITH_QRTR_GLIB
help help
Compile libqmi with QRTR support Compile libqmi with QRTR support
choice
prompt "Select QMI message collection to build"
default LIBQMI_COLLECTION_BASIC
config LIBQMI_COLLECTION_MINIMAL
depends on !MODEMMANAGER_WITH_QMI
bool "minimal"
config LIBQMI_COLLECTION_BASIC
bool "basic (default)"
config LIBQMI_COLLECTION_FULL
bool "full"
endchoice
endmenu endmenu

View file

@ -11,17 +11,22 @@ PKG_NAME:=libqmi
PKG_VERSION:=1.30.4 PKG_VERSION:=1.30.4
PKG_RELEASE:=$(AUTORELEASE) PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://www.freedesktop.org/software/libqmi PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
PKG_HASH:=00d7da30a4f8d1185f37cba289cfaf1dfcd04a58f2f76d6acfdf5b85312d6ed6 PKG_SOURCE_VERSION:=$(PKG_VERSION)
PKG_MIRROR_HASH:=537eae29c36aba9757afd86e48b91c37c3fe3232037ad11fdd426297f6040a6b
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com> PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
PKG_INSTALL:=1 PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=python3/host
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
TARGET_LDFLAGS += -Wl,--gc-sections
define Package/libqmi/config define Package/libqmi/config
source "$(SOURCE)/Config.in" source "$(SOURCE)/Config.in"
@ -59,26 +64,31 @@ define Package/libqmi-utils/description
Utils to talk to QMI enabled modems Utils to talk to QMI enabled modems
endef endef
CONFIGURE_ARGS += \ MESON_ARGS += \
--disable-static \ -Dudev=false \
--disable-gtk-doc \ -Dintrospection=false \
--disable-gtk-doc-html \ -Dman=false \
--disable-gtk-doc-pdf \ -Dbash_completion=false \
--disable-silent-rules \ -Db_lto=true
--enable-firmware-update \
--without-udev \
--without-udev-base-dir
ifeq ($(CONFIG_LIBQMI_WITH_MBIM_QMUX),y) ifeq ($(CONFIG_LIBQMI_WITH_MBIM_QMUX),y)
CONFIGURE_ARGS += --enable-mbim-qmux MESON_ARGS += -Dmbim_qmux=true
else else
CONFIGURE_ARGS += --disable-mbim-qmux MESON_ARGS += -Dmbim_qmux=false
endif endif
ifeq ($(CONFIG_LIBQMI_WITH_QRTR_GLIB),y) ifeq ($(CONFIG_LIBQMI_WITH_QRTR_GLIB),y)
CONFIGURE_ARGS += --enable-qrtr MESON_ARGS += -Dqrtr=true
else else
CONFIGURE_ARGS += --disable-qrtr MESON_ARGS += -Dqrtr=false
endif
ifeq ($(CONFIG_LIBQMI_COLLECTION_MINIMAL),y)
MESON_ARGS += -Dcollection=minimal
else ifeq ($(CONFIG_LIBQMI_COLLECTION_BASIC),y)
MESON_ARGS += -Dcollection=basic
else
MESON_ARGS += -Dcollection=full
endif endif
define Build/InstallDev define Build/InstallDev
@ -99,12 +109,15 @@ define Build/InstallDev
endef endef
define Package/libqmi/install define Package/libqmi/install
$(INSTALL_DIR) $(1)/usr/lib $(INSTALL_DIR) \
$(1)/usr/lib \
$(1)/usr/libexec
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/lib/libqmi*.so.* \ $(PKG_INSTALL_DIR)/usr/lib/libqmi*.so.* \
$(1)/usr/lib/ $(1)/usr/lib/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/qmi-proxy $(1)/usr/lib/ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/libexec/qmi-proxy $(1)/usr/libexec/
endef endef
define Package/qmi-utils/install define Package/qmi-utils/install