summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-02-02 12:18:24 +0100
committerAleksander Morgado <aleksander@aleksander.es>2020-02-02 20:51:05 +0100
commit25366087fd0d73aac301191fddfc9eee21252b7b (patch)
tree0da34f36265e5e4638860cc995428508daef46c6
parent2367204fc9441da4237c0da9c245419694b541a6 (diff)
downloadlibqmi-25366087fd0d73aac301191fddfc9eee21252b7b.tar.gz
libqrtr-glib: separate QRTR backend in its own library
-rw-r--r--.gitignore9
-rw-r--r--configure.ac3
-rw-r--r--docs/reference/libqmi-glib/libqmi-glib-common.sections18
-rw-r--r--src/Makefile.am2
-rw-r--r--src/libqmi-glib/Makefile.am39
-rw-r--r--src/libqmi-glib/generated/Makefile.am7
-rw-r--r--src/libqmi-glib/libqmi-glib.h10
-rw-r--r--src/libqmi-glib/qmi-device.c4
-rw-r--r--src/libqmi-glib/qmi-device.h67
-rw-r--r--src/libqmi-glib/qmi-endpoint-qrtr.c6
-rw-r--r--src/libqmi-glib/qmi-endpoint-qrtr.h6
-rw-r--r--src/libqmi-glib/qmi-proxy.c2
-rw-r--r--src/libqmi-glib/qmi-version.h.in2
-rw-r--r--src/libqmi-glib/test/Makefile.am7
-rw-r--r--src/libqrtr-glib/Makefile.am39
-rw-r--r--src/libqrtr-glib/libqrtr-glib.h33
-rw-r--r--src/libqrtr-glib/qrtr-control-socket.c (renamed from src/libqmi-glib/qmi-qrtr-control-socket.c)26
-rw-r--r--src/libqrtr-glib/qrtr-control-socket.h (renamed from src/libqmi-glib/qmi-qrtr-control-socket.h)27
-rw-r--r--src/libqrtr-glib/qrtr-node.c (renamed from src/libqmi-glib/qmi-qrtr-node.c)77
-rw-r--r--src/libqrtr-glib/qrtr-node.h (renamed from src/libqmi-glib/qmi-qrtr-node.h)86
-rw-r--r--src/libqrtr-glib/qrtr-utils.c (renamed from src/libqmi-glib/qmi-qrtr-utils.c)17
-rw-r--r--src/libqrtr-glib/qrtr-utils.h (renamed from src/libqmi-glib/qmi-qrtr-utils.h)29
-rw-r--r--src/qmi-firmware-update/Makefile.am14
-rw-r--r--src/qmi-firmware-update/test/Makefile.am7
-rw-r--r--src/qmi-proxy/Makefile.am10
-rw-r--r--src/qmicli/Makefile.am14
-rw-r--r--src/qmicli/test/Makefile.am7
27 files changed, 358 insertions, 210 deletions
diff --git a/.gitignore b/.gitignore
index e9821926..265742c4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,11 +26,8 @@ Makefile.in
/data/pkg-config/qmi-glib.pc
-/src/Makefile
-/src/Makefile.in
+/src/libqrtr-glib/qrtr-version.h
-/src/libqmi-glib/Makefile
-/src/libqmi-glib/Makefile.in
/src/libqmi-glib/libqmi-glib.la
/src/libqmi-glib/qmi-version.h
@@ -38,16 +35,12 @@ Makefile.in
/src/libqmi-glib/generated/*.h
/src/libqmi-glib/generated/*.sections
-/src/libqmi-glib/test/Makefile
-/src/libqmi-glib/test/Makefile.in
/src/libqmi-glib/test/test-utils
/src/libqmi-glib/test/test-compat-utils
/src/libqmi-glib/test/test-message
/src/libqmi-glib/test/test-generated
/src/qmicli/qmicli
-/src/qmicli/test/Makefile
-/src/qmicli/test/Makefile.in
/src/qmicli/test/test-helpers
/src/qmi-proxy/qmi-proxy
diff --git a/configure.ac b/configure.ac
index 7c2c1a96..910c3095 100644
--- a/configure.ac
+++ b/configure.ac
@@ -243,6 +243,7 @@ AC_CONFIG_FILES([Makefile
build-aux/templates/Makefile
build-aux/qmi-codegen/Makefile
src/Makefile
+ src/libqrtr-glib/Makefile
src/libqmi-glib/Makefile
src/libqmi-glib/qmi-version.h
src/libqmi-glib/generated/Makefile
@@ -285,9 +286,9 @@ echo "
Features:
QMUX over MBIM: ${enable_mbim_qmux}
QMI username: ${QMI_USERNAME_ENABLED} (${QMI_USERNAME})
- QRTR: ${enable_qrtr}
Built items:
+ libqrtr-glib: ${enable_qrtr}
libqmi-glib: yes
qmicli: yes
qmi-firmware-update: ${build_firmware_update}
diff --git a/docs/reference/libqmi-glib/libqmi-glib-common.sections b/docs/reference/libqmi-glib/libqmi-glib-common.sections
index 1e8e1db9..dec79494 100644
--- a/docs/reference/libqmi-glib/libqmi-glib-common.sections
+++ b/docs/reference/libqmi-glib/libqmi-glib-common.sections
@@ -1563,3 +1563,21 @@ qmi_dms_dell_device_mode_get_type
qmi_message_dms_dell_change_device_mode_input_get_type
qmi_message_dms_dell_change_device_mode_output_get_type
</SECTION>
+
+<SECTION>
+<SUBSECTION Private>
+QMI_DEVICE_NODE
+QMI_ENDPOINT_QRTR
+QMI_ENDPOINT_QRTR_CLASS
+QMI_ENDPOINT_QRTR_GET_CLASS
+QMI_IS_ENDPOINT_QRTR
+QMI_IS_ENDPOINT_QRTR_CLASS
+QMI_QRTR_SUPPORTED
+QMI_TYPE_ENDPOINT_QRTR
+QmiEndpointQrtr
+QmiEndpointQrtrClass
+QmiEndpointQrtrPrivate
+qmi_device_new_from_node
+qmi_endpoint_qrtr_get_type
+qmi_endpoint_qrtr_new
+</SECTION> \ No newline at end of file
diff --git a/src/Makefile.am b/src/Makefile.am
index 1ef5d357..3ffb032d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
-SUBDIRS = libqmi-glib qmicli qmi-proxy
+SUBDIRS = libqrtr-glib libqmi-glib qmicli qmi-proxy
if BUILD_FIRMWARE_UPDATE
SUBDIRS += qmi-firmware-update
diff --git a/src/libqmi-glib/Makefile.am b/src/libqmi-glib/Makefile.am
index 5b9dcc0d..01e75789 100644
--- a/src/libqmi-glib/Makefile.am
+++ b/src/libqmi-glib/Makefile.am
@@ -20,6 +20,13 @@ libqmi_glib_compat_la_CPPFLAGS = \
-Wno-deprecated-declarations \
$(NULL)
+if QMI_QRTR_SUPPORTED
+libqmi_glib_compat_la_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
libqmi_glib_compat_la_LDFLAGS = \
$(WARN_LDFLAGS) \
$(GLIB_LIBS) \
@@ -72,24 +79,33 @@ libqmi_glib_la_SOURCES = \
qmi-endpoint.h qmi-endpoint.c \
qmi-endpoint-qmux.h qmi-endpoint-qmux.c
+libqmi_glib_la_LIBADD = \
+ ${top_builddir}/src/libqmi-glib/generated/libqmi-glib-generated.la \
+ libqmi-glib-compat.la \
+ $(NULL)
+
if QMI_MBIM_QMUX_SUPPORTED
libqmi_glib_la_SOURCES += \
qmi-endpoint-mbim.h qmi-endpoint-mbim.c
endif
if QMI_QRTR_SUPPORTED
+
+libqmi_glib_la_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+
libqmi_glib_la_SOURCES += \
- qmi-qrtr-control-socket.h qmi-qrtr-control-socket.c \
- qmi-qrtr-node.h qmi-qrtr-node.c \
- qmi-qrtr-utils.h qmi-qrtr-utils.c \
- qmi-endpoint-qrtr.h qmi-endpoint-qrtr.c
-endif
+ qmi-endpoint-qrtr.h qmi-endpoint-qrtr.c \
+ $(NULL)
-libqmi_glib_la_LIBADD = \
- ${top_builddir}/src/libqmi-glib/generated/libqmi-glib-generated.la \
- libqmi-glib-compat.la \
+libqmi_glib_la_LIBADD += \
+ ${top_builddir}/src/libqrtr-glib/libqrtr-glib.la \
$(NULL)
+endif
+
libqmi_glib_la_LDFLAGS = \
-version-info $(QMI_GLIB_LT_CURRENT):$(QMI_GLIB_LT_REVISION):$(QMI_GLIB_LT_AGE) \
$(WARN_CFLAGS) \
@@ -127,12 +143,5 @@ include_HEADERS = \
qmi-client.h \
qmi-proxy.h
-if QMI_QRTR_SUPPORTED
-include_HEADERS += \
- qmi-qrtr-control-socket.h \
- qmi-qrtr-node.h \
- qmi-qrtr-utils.h
-endif
-
EXTRA_DIST = \
qmi-version.h.in
diff --git a/src/libqmi-glib/generated/Makefile.am b/src/libqmi-glib/generated/Makefile.am
index bb874d71..8e207ab5 100644
--- a/src/libqmi-glib/generated/Makefile.am
+++ b/src/libqmi-glib/generated/Makefile.am
@@ -336,6 +336,13 @@ libqmi_glib_generated_la_LDFLAGS = \
$(GLIB_LIBS) \
$(NULL)
+if QMI_QRTR_SUPPORTED
+libqmi_glib_generated_la_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
includedir = @includedir@/libqmi-glib
nodist_include_HEADERS = \
qmi-error-types.h \
diff --git a/src/libqmi-glib/libqmi-glib.h b/src/libqmi-glib/libqmi-glib.h
index 06ba24cf..467421b7 100644
--- a/src/libqmi-glib/libqmi-glib.h
+++ b/src/libqmi-glib/libqmi-glib.h
@@ -37,12 +37,6 @@
#include "qmi-enums.h"
#include "qmi-utils.h"
-#if QMI_QRTR_SUPPORTED
-#include "qmi-qrtr-control-socket.h"
-#include "qmi-qrtr-node.h"
-#include "qmi-qrtr-utils.h"
-#endif
-
#include "qmi-compat.h"
#include "qmi-enums-dms.h"
@@ -99,4 +93,8 @@
#include "qmi-enum-types.h"
#include "qmi-flags64-types.h"
+#if QMI_QRTR_SUPPORTED
+# include <libqrtr-glib.h>
+#endif
+
#endif /* _LIBQMI_GLIB_H_ */
diff --git a/src/libqmi-glib/qmi-device.c b/src/libqmi-glib/qmi-device.c
index 47c5d0b0..8b63e6ca 100644
--- a/src/libqmi-glib/qmi-device.c
+++ b/src/libqmi-glib/qmi-device.c
@@ -59,8 +59,8 @@
#include "qmi-version.h"
#if QMI_QRTR_SUPPORTED
-#include "qmi-endpoint-qrtr.h"
-#include "qmi-qrtr-utils.h"
+# include <libqrtr-glib.h>
+# include "qmi-endpoint-qrtr.h"
#endif
static void async_initable_iface_init (GAsyncInitableIface *iface);
diff --git a/src/libqmi-glib/qmi-device.h b/src/libqmi-glib/qmi-device.h
index abad7e1f..7fec691c 100644
--- a/src/libqmi-glib/qmi-device.h
+++ b/src/libqmi-glib/qmi-device.h
@@ -37,7 +37,7 @@
#include "qmi-version.h"
#if QMI_QRTR_SUPPORTED
-#include "qmi-qrtr-node.h"
+# include <libqrtr-glib.h>
#endif
G_BEGIN_DECLS
@@ -101,17 +101,6 @@ typedef struct _QmiDevicePrivate QmiDevicePrivate;
#define QMI_DEVICE_WWAN_IFACE "device-wwan-iface"
/**
- * QMI_DEVICE_NODE:
- *
- * Symbol defining the #QmiDevice:device-node property.
- *
- * Since: 1.24
- */
-#if QMI_QRTR_SUPPORTED
-#define QMI_DEVICE_NODE "device-node"
-#endif
-
-/**
* QMI_DEVICE_SIGNAL_INDICATION:
*
* Symbol defining the #QmiDevice::indication signal.
@@ -170,28 +159,6 @@ void qmi_device_new (GFile *file,
gpointer user_data);
/**
- * qmi_device_new_from_node:
- * @node: a #QrtrNode.
- * @cancellable: optional #GCancellable object, #NULL to ignore.
- * @callback: a #GAsyncReadyCallback to call when the initialization is finished.
- * @user_data: the data to pass to callback function.
- *
- * Asynchronously creates a #QmiDevice object to manage @node.
- * When the operation is finished, @callback will be invoked. You can then call
- * qmi_device_new_finish() to get the result of the operation.
- *
- * Only available if libqmi was compiled with QRTR support.
- *
- * Since: 1.24
- */
-#if QMI_QRTR_SUPPORTED
-void qmi_device_new_from_node (QrtrNode *node,
- GCancellable *cancellable,
- GAsyncReadyCallback callback,
- gpointer user_data);
-#endif
-
-/**
* qmi_device_new_finish:
* @res: a #GAsyncResult.
* @error: Return location for error or %NULL.
@@ -884,6 +851,38 @@ gboolean qmi_device_set_expected_data_format (QmiDevice *self
QmiDeviceExpectedDataFormat format,
GError **error);
+
+/******************************************************************************/
+/* New QRTR based APIs */
+
+#if QMI_QRTR_SUPPORTED
+
+/**
+ * QMI_DEVICE_NODE:
+ *
+ * Symbol defining the #QmiDevice:device-node property.
+ */
+#define QMI_DEVICE_NODE "device-node"
+
+/**
+ * qmi_device_new_from_node:
+ * @node: a #QrtrNode.
+ * @cancellable: optional #GCancellable object, #NULL to ignore.
+ * @callback: a #GAsyncReadyCallback to call when the initialization is finished.
+ * @user_data: the data to pass to callback function.
+ *
+ * Asynchronously creates a #QmiDevice object to manage @node.
+ * When the operation is finished, @callback will be invoked. You can then call
+ * qmi_device_new_finish() to get the result of the operation.
+ *
+ * Only available if libqmi was compiled with QRTR support.
+ */
+void qmi_device_new_from_node (QrtrNode *node,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+#endif /* QMI_QRTR_SUPPORTED */
+
G_END_DECLS
#endif /* _LIBQMI_GLIB_QMI_DEVICE_H_ */
diff --git a/src/libqmi-glib/qmi-endpoint-qrtr.c b/src/libqmi-glib/qmi-endpoint-qrtr.c
index 3106cce2..09db8f9b 100644
--- a/src/libqmi-glib/qmi-endpoint-qrtr.c
+++ b/src/libqmi-glib/qmi-endpoint-qrtr.c
@@ -17,7 +17,8 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
#include <errno.h>
@@ -29,11 +30,12 @@
#include <gmodule.h>
#include <gio/gio.h>
+#include <libqrtr-glib.h>
+
#include "qmi-endpoint-qrtr.h"
#include "qmi-errors.h"
#include "qmi-error-types.h"
#include "qmi-message.h"
-#include "qmi-qrtr-utils.h"
#define QMI_MESSAGE_OUTPUT_TLV_RESULT 0x02
diff --git a/src/libqmi-glib/qmi-endpoint-qrtr.h b/src/libqmi-glib/qmi-endpoint-qrtr.h
index 4995495d..a765ff4c 100644
--- a/src/libqmi-glib/qmi-endpoint-qrtr.h
+++ b/src/libqmi-glib/qmi-endpoint-qrtr.h
@@ -17,14 +17,16 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
#ifndef _LIBQMI_GLIB_QMI_ENDPOINT_QRTR_H_
#define _LIBQMI_GLIB_QMI_ENDPOINT_QRTR_H_
+#include <libqrtr-glib.h>
+
#include "qmi-endpoint.h"
-#include "qmi-qrtr-node.h"
#define QMI_TYPE_ENDPOINT_QRTR (qmi_endpoint_qrtr_get_type ())
#define QMI_ENDPOINT_QRTR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), QMI_TYPE_ENDPOINT_QRTR, QmiEndpointQrtr))
diff --git a/src/libqmi-glib/qmi-proxy.c b/src/libqmi-glib/qmi-proxy.c
index a0297fbf..d3e3b6b4 100644
--- a/src/libqmi-glib/qmi-proxy.c
+++ b/src/libqmi-glib/qmi-proxy.c
@@ -41,7 +41,7 @@
#include "qmi-version.h"
#if QMI_QRTR_SUPPORTED
-#include "qmi-qrtr-utils.h"
+# include "libqrtr-glib.h"
#endif
#define BUFFER_SIZE 512
diff --git a/src/libqmi-glib/qmi-version.h.in b/src/libqmi-glib/qmi-version.h.in
index 0fedaace..257413aa 100644
--- a/src/libqmi-glib/qmi-version.h.in
+++ b/src/libqmi-glib/qmi-version.h.in
@@ -107,7 +107,7 @@
* #endif
* ]|
*
- * Since: 1.24
+ * Since: 1.26
*/
#define QMI_QRTR_SUPPORTED @QMI_QRTR_SUPPORTED@
diff --git a/src/libqmi-glib/test/Makefile.am b/src/libqmi-glib/test/Makefile.am
index f181f820..23ccece1 100644
--- a/src/libqmi-glib/test/Makefile.am
+++ b/src/libqmi-glib/test/Makefile.am
@@ -11,6 +11,13 @@ AM_CFLAGS = \
-DLIBQMI_GLIB_COMPILATION \
$(NULL)
+if QMI_QRTR_SUPPORTED
+AM_CFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
AM_LDFLAGS = \
$(WARN_LDFLAGS) \
$(GLIB_LIBS) \
diff --git a/src/libqrtr-glib/Makefile.am b/src/libqrtr-glib/Makefile.am
new file mode 100644
index 00000000..77a89053
--- /dev/null
+++ b/src/libqrtr-glib/Makefile.am
@@ -0,0 +1,39 @@
+
+# ship under libqmi-glib for now
+includedir = @includedir@/libqmi-glib
+
+if QMI_QRTR_SUPPORTED
+
+noinst_LTLIBRARIES = libqrtr-glib.la
+
+libqrtr_glib_la_CPPFLAGS = \
+ $(WARN_CFLAGS) \
+ $(GLIB_CFLAGS) \
+ -I$(top_srcdir) \
+ -I$(top_builddir) \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ -DLIBQRTR_GLIB_COMPILATION \
+ -DLIBEXEC_PATH=\""$(libexecdir)"\" \
+ -DG_LOG_DOMAIN=\"Qrtr\" \
+ $(NULL)
+
+libqrtr_glib_la_SOURCES = \
+ libqrtr-glib.h \
+ qrtr-control-socket.h qrtr-control-socket.c \
+ qrtr-node.h qrtr-node.c \
+ qrtr-utils.h qrtr-utils.c \
+ $(NULL)
+
+libqrtr_glib_la_LDFLAGS = \
+ $(WARN_CFLAGS) \
+ $(GLIB_LIBS) \
+ $(NULL)
+
+include_HEADERS = \
+ qrtr-control-socket.h \
+ qrtr-node.h \
+ qrtr-utils.h \
+ $(NULL)
+
+endif
diff --git a/src/libqrtr-glib/libqrtr-glib.h b/src/libqrtr-glib/libqrtr-glib.h
new file mode 100644
index 00000000..cfe5a77b
--- /dev/null
+++ b/src/libqrtr-glib/libqrtr-glib.h
@@ -0,0 +1,33 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
+ */
+
+#ifndef _LIBQRTR_GLIB_H_
+#define _LIBQRTR_GLIB_H_
+
+#define __LIBQRTR_GLIB_H_INSIDE__
+
+#include "qrtr-control-socket.h"
+#include "qrtr-node.h"
+#include "qrtr-utils.h"
+
+#endif /* _LIBQRTR_GLIB_H_ */
diff --git a/src/libqmi-glib/qmi-qrtr-control-socket.c b/src/libqrtr-glib/qrtr-control-socket.c
index 45b3519e..6cdb310b 100644
--- a/src/libqmi-glib/qmi-qrtr-control-socket.c
+++ b/src/libqrtr-glib/qrtr-control-socket.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,7 +17,8 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
#include <endian.h>
@@ -29,10 +30,9 @@
#include <gio/gio.h>
-#include "qmi-qrtr-control-socket.h"
-#include "qmi-qrtr-node.h"
-#include "qmi-qrtr-utils.h"
-#include "qmi-enums.h"
+#include "qrtr-control-socket.h"
+#include "qrtr-node.h"
+#include "qrtr-utils.h"
static void initable_iface_init (GInitableIface *iface);
@@ -134,7 +134,7 @@ static void
add_service_info (QrtrControlSocket *self,
guint32 node_id,
guint32 port,
- QmiService service,
+ guint32 service,
guint32 version,
guint32 instance)
{
@@ -161,7 +161,7 @@ static void
remove_service_info (QrtrControlSocket *self,
guint32 node_id,
guint32 port,
- QmiService service,
+ guint32 service,
guint32 version,
guint32 instance)
{
@@ -199,7 +199,7 @@ qrtr_ctrl_message_cb (GSocket *gsocket,
guint32 type;
guint32 node_id;
guint32 port;
- QmiService service;
+ guint32 service;
guint32 version;
guint32 instance;
@@ -227,7 +227,7 @@ qrtr_ctrl_message_cb (GSocket *gsocket,
/* type is something we handle, parse the packet */
node_id = GUINT32_FROM_LE (ctrl_packet.server.node);
port = GUINT32_FROM_LE (ctrl_packet.server.port);
- service = (QmiService)GUINT32_FROM_LE (ctrl_packet.server.service);
+ service = GUINT32_FROM_LE (ctrl_packet.server.service);
version = GUINT32_FROM_LE (ctrl_packet.server.instance) & 0xff;
instance = GUINT32_FROM_LE (ctrl_packet.server.instance) >> 8;
@@ -322,7 +322,7 @@ initable_init (GInitable *initable,
GError **error)
{
QrtrControlSocket *self;
- int fd;
+ gint fd;
self = QRTR_CONTROL_SOCKET (initable);
@@ -341,8 +341,10 @@ initable_init (GInitable *initable,
g_socket_set_timeout (self->priv->socket, 0);
- if (!send_new_lookup_ctrl_packet (self, error))
+ if (!send_new_lookup_ctrl_packet (self, error)) {
+ close (fd);
return FALSE;
+ }
setup_socket_source (self);
return TRUE;
diff --git a/src/libqmi-glib/qmi-qrtr-control-socket.h b/src/libqrtr-glib/qrtr-control-socket.h
index bdfbd3a7..2c9754ad 100644
--- a/src/libqmi-glib/qmi-qrtr-control-socket.h
+++ b/src/libqrtr-glib/qrtr-control-socket.h
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,25 +17,26 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
-#ifndef _LIBQMI_GLIB_QMI_QRTR_CONTROL_SOCKET_H_
-#define _LIBQMI_GLIB_QMI_QRTR_CONTROL_SOCKET_H_
+#ifndef _LIBQRTR_GLIB_QRTR_CONTROL_SOCKET_H_
+#define _LIBQRTR_GLIB_QRTR_CONTROL_SOCKET_H_
-#if !defined (__LIBQMI_GLIB_H_INSIDE__) && !defined (LIBQMI_GLIB_COMPILATION)
-#error "Only <libqmi-glib.h> can be included directly."
+#if !defined (__LIBQRTR_GLIB_H_INSIDE__) && !defined (LIBQRTR_GLIB_COMPILATION)
+#error "Only <libqrtr-glib.h> can be included directly."
#endif
#include <glib-object.h>
#include <gio/gio.h>
-#include "qmi-qrtr-node.h"
+#include "qrtr-node.h"
G_BEGIN_DECLS
/**
- * SECTION:qrtr-control-socket
+ * SECTION: qrtr-control-socket
* @title: QrtrControlSocket
* @short_description: QRTR bus observer and device event listener
*
@@ -71,8 +72,6 @@ GType qrtr_control_socket_get_type (void);
* QRTR_CONTROL_SOCKET_SIGNAL_NODE_ADDED:
*
* Symbol defining the #QrtrControlSocket::qrtr-node-added signal.
- *
- * Since: 1.24
*/
#define QRTR_CONTROL_SOCKET_SIGNAL_NODE_ADDED "qrtr-node-added"
@@ -80,8 +79,6 @@ GType qrtr_control_socket_get_type (void);
* QRTR_CONTROL_SOCKET_SIGNAL_NODE_REMOVED:
*
* Symbol defining the #QrtrControlSocket::qrtr-node-removed signal.
- *
- * Since: 1.24
*/
#define QRTR_CONTROL_SOCKET_SIGNAL_NODE_REMOVED "qrtr-node-removed"
@@ -93,8 +90,6 @@ GType qrtr_control_socket_get_type (void);
* Creates a #QrtrControlSocket object.
*
* Returns: A newly created #QrtrControlSocket, or %NULL if @error is set.
- *
- * Since: 1.24
*/
QrtrControlSocket *qrtr_control_socket_new (GCancellable *cancellable,
GError **error);
@@ -105,12 +100,10 @@ QrtrControlSocket *qrtr_control_socket_new (GCancellable *cancellable,
*
* Returns a #QrtrNode object representing the device with the given node ID
* on the QRTR bus.
- *
- * Since: 1.24
*/
QrtrNode *qrtr_control_socket_get_node (QrtrControlSocket *socket,
guint32 node_id);
G_END_DECLS
-#endif /* _LIBQMI_GLIB_QMI_QRTR_CONTROL_SOCKET_H_ */
+#endif /* _LIBQRTR_GLIB_QRTR_CONTROL_SOCKET_H_ */
diff --git a/src/libqmi-glib/qmi-qrtr-node.c b/src/libqrtr-glib/qrtr-node.c
index 77b49992..e3845134 100644
--- a/src/libqmi-glib/qmi-qrtr-node.c
+++ b/src/libqrtr-glib/qrtr-node.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,7 +17,8 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
#include <endian.h>
@@ -30,8 +31,8 @@
#include <gio/gio.h>
#include <gmodule.h>
-#include "qmi-qrtr-control-socket.h"
-#include "qmi-qrtr-node.h"
+#include "qrtr-control-socket.h"
+#include "qrtr-node.h"
G_DEFINE_TYPE (QrtrNode, qrtr_node, G_TYPE_OBJECT)
@@ -50,7 +51,7 @@ struct _QrtrNodePrivate {
};
struct QrtrServiceInfo {
- QmiService service;
+ guint32 service;
guint32 port;
guint32 version;
guint32 instance;
@@ -72,9 +73,8 @@ static guint signals[SIGNAL_LAST] = { 0 };
/*****************************************************************************/
static void
-node_removed_cb (QrtrControlSocket *socket,
- guint node_id,
- QrtrNode *self)
+node_removed_cb (QrtrNode *self,
+ guint node_id)
{
if (node_id != self->priv->node_id)
return;
@@ -105,11 +105,13 @@ list_holder_free (struct ListHolder *list_holder)
}
static void
-service_index_add_info (GHashTable *service_index, QmiService service,
+service_index_add_info (GHashTable *service_index,
+ guint32 service,
struct QrtrServiceInfo *info)
{
- struct ListHolder *service_instances = g_hash_table_lookup (service_index,
- GUINT_TO_POINTER (service));
+ struct ListHolder *service_instances;
+
+ service_instances = g_hash_table_lookup (service_index, GUINT_TO_POINTER (service));
if (!service_instances) {
service_instances = g_slice_new0 (struct ListHolder);
g_hash_table_insert (service_index, GUINT_TO_POINTER (service), service_instances);
@@ -119,11 +121,13 @@ service_index_add_info (GHashTable *service_index, QmiService service,
}
static void
-service_index_remove_info (GHashTable *service_index, QmiService service,
+service_index_remove_info (GHashTable *service_index,
+ guint32 service,
struct QrtrServiceInfo *info)
{
- struct ListHolder *service_instances = g_hash_table_lookup (service_index,
- GUINT_TO_POINTER (service));
+ struct ListHolder *service_instances;
+
+ service_instances = g_hash_table_lookup (service_index, GUINT_TO_POINTER (service));
if (!service_instances)
return;
@@ -132,7 +136,7 @@ service_index_remove_info (GHashTable *service_index, QmiService service,
void
qrtr_node_add_service_info (QrtrNode *node,
- QmiService service,
+ guint32 service,
guint32 port,
guint32 version,
guint32 instance)
@@ -151,7 +155,7 @@ qrtr_node_add_service_info (QrtrNode *node,
void
qrtr_node_remove_service_info (QrtrNode *node,
- QmiService service,
+ guint32 service,
guint32 port,
guint32 version,
guint32 instance)
@@ -174,7 +178,8 @@ qrtr_node_remove_service_info (QrtrNode *node,
/*****************************************************************************/
gint32
-qrtr_node_lookup_port (QrtrNode *node, QmiService service)
+qrtr_node_lookup_port (QrtrNode *node,
+ guint32 service)
{
struct ListHolder *service_instances;
struct QrtrServiceInfo *info;
@@ -188,12 +193,14 @@ qrtr_node_lookup_port (QrtrNode *node, QmiService service)
return info->port;
}
-QmiService
-qrtr_node_lookup_service (QrtrNode *node, guint32 port)
+gint32
+qrtr_node_lookup_service (QrtrNode *node,
+ guint32 port)
{
- struct QrtrServiceInfo *info =
- g_hash_table_lookup (node->priv->port_index, GUINT_TO_POINTER (port));
- return info ? info->service : QMI_SERVICE_UNKNOWN;
+ struct QrtrServiceInfo *info;
+
+ info = g_hash_table_lookup (node->priv->port_index, GUINT_TO_POINTER (port));
+ return info ? (gint32)info->service : -1;
}
/*****************************************************************************/
@@ -213,23 +220,25 @@ qrtr_node_id (QrtrNode *node)
/*****************************************************************************/
QrtrNode *
-qrtr_node_new (QrtrControlSocket* socket, guint32 node_id)
+qrtr_node_new (QrtrControlSocket *socket,
+ guint32 node_id)
{
- QrtrNode *node = g_object_new (QRTR_TYPE_NODE, NULL);
+ QrtrNode *self;
+
+ self = g_object_new (QRTR_TYPE_NODE, NULL);
- node->priv->socket = g_object_ref (socket);
- node->priv->node_id = node_id;
- node->priv->node_removed_id = g_signal_connect (node->priv->socket,
- QRTR_CONTROL_SOCKET_SIGNAL_NODE_REMOVED,
- G_CALLBACK (node_removed_cb),
- node);
+ self->priv->socket = g_object_ref (socket);
+ self->priv->node_id = node_id;
+ self->priv->node_removed_id = g_signal_connect_swapped (self->priv->socket,
+ QRTR_CONTROL_SOCKET_SIGNAL_NODE_REMOVED,
+ G_CALLBACK (node_removed_cb),
+ self);
- node->priv->service_list = NULL;
- node->priv->service_index = g_hash_table_new_full (g_direct_hash, g_direct_equal,
+ self->priv->service_index = g_hash_table_new_full (g_direct_hash, g_direct_equal,
NULL, (GDestroyNotify)list_holder_free);
- node->priv->port_index = g_hash_table_new (g_direct_hash, g_direct_equal);
+ self->priv->port_index = g_hash_table_new (g_direct_hash, g_direct_equal);
- return node;
+ return self;
}
static void
diff --git a/src/libqmi-glib/qmi-qrtr-node.h b/src/libqrtr-glib/qrtr-node.h
index 4e6d9b70..b81d335a 100644
--- a/src/libqmi-glib/qmi-qrtr-node.h
+++ b/src/libqrtr-glib/qrtr-node.h
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,24 +17,23 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
-#ifndef _LIBQMI_GLIB_QMI_QRTR_NODE_H_
-#define _LIBQMI_GLIB_QMI_QRTR_NODE_H_
+#ifndef _LIBQRTR_GLIB_QRTR_NODE_H_
+#define _LIBQRTR_GLIB_QRTR_NODE_H_
-#if !defined (__LIBQMI_GLIB_H_INSIDE__) && !defined (LIBQMI_GLIB_COMPILATION)
-#error "Only <libqmi-glib.h> can be included directly."
+#if !defined (__LIBQRTR_GLIB_H_INSIDE__) && !defined (LIBQRTR_GLIB_COMPILATION)
+#error "Only <libqrtr-glib.h> can be included directly."
#endif
#include <glib-object.h>
-#include "qmi-enums.h"
-
G_BEGIN_DECLS
/* Forward declare QrtrControlSocket for qrtr_node_new. */
-struct _QrtrControlSocket;
+typedef struct _QrtrControlSocket QrtrControlSocket;
/**
* SECTION:qrtr-node
@@ -71,8 +70,6 @@ GType qrtr_node_get_type (void);
* QRTR_NODE_SIGNAL_REMOVED:
*
* Symbol defining the #QrtrNode::removed signal.
- *
- * Since: 1.24
*/
#define QRTR_NODE_SIGNAL_REMOVED "removed"
@@ -80,8 +77,6 @@ GType qrtr_node_get_type (void);
* qrtr_node_has_services:
*
* Returns TRUE if there are services currently registered on this node.
- *
- * Since: 1.24
*/
gboolean qrtr_node_has_services (QrtrNode *node);
@@ -89,8 +84,6 @@ gboolean qrtr_node_has_services (QrtrNode *node);
* qrtr_node_id:
*
* Returns the node id of the QRTR node represented by @node.
- *
- * Since: 1.24
*/
guint32 qrtr_node_id (QrtrNode *node);
@@ -102,52 +95,61 @@ guint32 qrtr_node_id (QrtrNode *node);
* return the port number of that service. Otherwise, return -1. This will
* return the service with the highest version number if multiple instances
* are registered.
- *
- * Since: 1.24
*/
-gint32 qrtr_node_lookup_port (QrtrNode *node, QmiService service);
+gint32 qrtr_node_lookup_port (QrtrNode *node,
+ guint32 service);
/**
* qrtr_node_lookup_service:
* @port: a port number
*
* If a server has announced itself for the given node and port number,
- * return the QMI service it serves. Otherwise, return @QMI_SERVICE_UNKNOWN.
- *
- * Since: 1.24
+ * return the service it serves. Otherwise, return -1.
*/
-QmiService qrtr_node_lookup_service (QrtrNode *node, guint32 port);
+gint32 qrtr_node_lookup_service (QrtrNode *node,
+ guint32 port);
G_END_DECLS
-/*
+/**
* qrtr_node_new:
- * @socket: the control socket that created this QrtrNode
- * @node: the node number of this QrtrNode
+ * @socket: the control socket that created this QrtrNode.
+ * @node: the node number of this QrtrNode.
+ *
+ * Create a new QRTR node.
*/
-QrtrNode *qrtr_node_new (struct _QrtrControlSocket *socket, guint32 node);
+QrtrNode *qrtr_node_new (QrtrControlSocket *socket,
+ guint32 node);
-/*
+/**
* qrtr_node_add_service_info:
- * @service: a #QmiService value representing this service
- * @port: the port number of the new service
- * @version: the version number of the new service
- * @instance: the instance number of the new service
+ * @service: a service value.
+ * @port: the port number of the new service.
+ * @version: the version number of the new service.
+ * @instance: the instance number of the new service.
+ *
+ * Adds the given service entry to this node.
*
- * Adds the given service entry to this node. Should only be called by the
- * #QrtrControlSocket.
+ * Should only be called by the #QrtrControlSocket.
*/
-void qrtr_node_add_service_info (QrtrNode *node, QmiService service, guint32 port,
- guint32 version, guint32 instance);
+void qrtr_node_add_service_info (QrtrNode *node,
+ guint32 service,
+ guint32 port,
+ guint32 version,
+ guint32 instance);
-/*
+/**
* qrtr_node_remove_service_info:
- * @info: a #QrtrServceInfo struct
+ * @info: a #QrtrServceInfo struct.
+ *
+ * Removes the given service entry from this node.
*
- * Removes the given service entry from this node. Should only be called by the
- * #QrtrControlSocket.
+ * Should only be called by the #QrtrControlSocket.
*/
-void qrtr_node_remove_service_info (QrtrNode *node, QmiService service, guint32 port,
- guint32 version, guint32 instance);
+void qrtr_node_remove_service_info (QrtrNode *node,
+ guint32 service,
+ guint32 port,
+ guint32 version,
+ guint32 instance);
-#endif /* _LIBQMI_GLIB_QMI_QRTR_NODE_H_ */
+#endif /* _LIBQRTR_GLIB_QRTR_NODE_H_ */
diff --git a/src/libqmi-glib/qmi-qrtr-utils.c b/src/libqrtr-glib/qrtr-utils.c
index 552041a7..2a449a95 100644
--- a/src/libqmi-glib/qmi-qrtr-utils.c
+++ b/src/libqrtr-glib/qrtr-utils.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,18 +17,17 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
-#include "qmi-qrtr-utils.h"
+#include "qrtr-utils.h"
#include <stdlib.h>
#include <string.h>
-#include "qmi-errors.h"
-#include "qmi-error-types.h"
-#include "qmi-qrtr-control-socket.h"
-#include "qmi-qrtr-node.h"
+#include "qrtr-control-socket.h"
+#include "qrtr-node.h"
/* Some kernels expose the qrtr header but not the address family macro. */
#if !defined AF_QIPCRTR
@@ -107,8 +106,8 @@ timeout_cb (GTask *task)
ctx->node_added_id = 0;
g_task_return_new_error (task,
- QMI_CORE_ERROR,
- QMI_CORE_ERROR_TIMEOUT,
+ G_IO_ERROR,
+ G_IO_ERROR_TIMED_OUT,
"QRTR node %u did not appear on the bus",
ctx->node_wanted);
g_object_unref (task);
diff --git a/src/libqmi-glib/qmi-qrtr-utils.h b/src/libqrtr-glib/qrtr-utils.h
index 8573e4b4..a5fcd829 100644
--- a/src/libqmi-glib/qmi-qrtr-utils.h
+++ b/src/libqrtr-glib/qrtr-utils.h
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
- * libqmi-glib -- GLib/GIO based library to control QMI devices
+ * libqrtr-glib -- GLib/GIO based library to control QRTR devices
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -17,16 +17,17 @@
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
- * Copyright (C) 2019 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2019-2020 Eric Caruso <ejcaruso@chromium.org>
+ * Copyright (C) 2020 Aleksander Morgado <aleksander@aleksander.es>
*/
-#ifndef _LIBQMI_GLIB_QRTR_UTILS_H_
-#define _LIBQMI_GLIB_QRTR_UTILS_H_
+#ifndef _LIBQRTR_GLIB_QRTR_UTILS_H_
+#define _LIBQRTR_GLIB_QRTR_UTILS_H_
#include <gio/gio.h>
#include <glib.h>
-#include "qmi-qrtr-node.h"
+#include "qrtr-node.h"
/**
* qrtr_get_uri_for_node:
@@ -35,10 +36,6 @@
* Build a URI for the given QRTR node.
*
* Returns: a string with the URI, or %NULL if none given. The returned value should be freed with g_free().
- *
- * Only available if libqmi was compiled with QRTR support.
- *
- * Since: 1.24
*/
gchar *qrtr_get_uri_for_node (guint32 node_id);
@@ -49,10 +46,6 @@ gchar *qrtr_get_uri_for_node (guint32 node_id);
*
* Get the QRTR node id from the specified URI.
*
- * Only available if libqmi was compiled with QRTR support.
- *
- * Since: 1.24
- *
* Returns: %TRUE if @node_id is set, %FALSE otherwise.
*/
gboolean qrtr_get_node_for_uri (const gchar *uri,
@@ -69,10 +62,6 @@ gboolean qrtr_get_node_for_uri (const gchar *uri,
* Asynchronously creates a #QrtrNode for a given node id.
* When the operation is finished, @callback will be invoked. You can then call
* qmi_device_new_finish() to get the result of the operation.
- *
- * Only available if libqmi was compiled with QRTR support.
- *
- * Since: 1.24
*/
void qrtr_node_for_id (guint32 node_id,
guint timeout,
@@ -87,13 +76,9 @@ void qrtr_node_for_id (guint32 node_id,
*
* Finishes an operation started with qrtr_node_for_id().
*
- * Only available if libqmi was compiled with QRTR support.
- *
* Returns: A newly created #QrtrNode, or %NULL if @error is set.
- *
- * Since: 1.24
*/
QrtrNode *qrtr_node_for_id_finish (GAsyncResult *res,
GError **error);
-#endif /* _LIBQMI_GLIB_QRTR_UTILS_H_ */
+#endif /* _LIBQRTR_GLIB_QRTR_UTILS_H_ */
diff --git a/src/qmi-firmware-update/Makefile.am b/src/qmi-firmware-update/Makefile.am
index a8ff9642..6a8275d9 100644
--- a/src/qmi-firmware-update/Makefile.am
+++ b/src/qmi-firmware-update/Makefile.am
@@ -16,6 +16,13 @@ libutils_la_CPPFLAGS = \
-I$(top_builddir)/src/libqmi-glib/generated \
$(NULL)
+if QMI_QRTR_SUPPORTED
+libutils_la_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
libutils_la_LIBADD = \
$(top_builddir)/src/libqmi-glib/libqmi-glib.la \
$(NULL)
@@ -53,6 +60,13 @@ qmi_firmware_update_CPPFLAGS = \
-I$(top_builddir)/src/libqmi-glib/generated \
$(NULL)
+if QMI_QRTR_SUPPORTED
+qmi_firmware_update_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
ENUMS = \
$(top_srcdir)/src/qmi-firmware-update/qfu-image.h \
$(top_srcdir)/src/qmi-firmware-update/qfu-qdl-message.h \
diff --git a/src/qmi-firmware-update/test/Makefile.am b/src/qmi-firmware-update/test/Makefile.am
index 4519149b..306e6abc 100644
--- a/src/qmi-firmware-update/test/Makefile.am
+++ b/src/qmi-firmware-update/test/Makefile.am
@@ -12,6 +12,13 @@ AM_CFLAGS = \
-DLIBQMI_GLIB_COMPILATION \
$(NULL)
+if QMI_QRTR_SUPPORTED
+AM_CFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
AM_LDFLAGS = \
$(WARN_LDFLAGS) \
$(GLIB_LIBS) \
diff --git a/src/qmi-proxy/Makefile.am b/src/qmi-proxy/Makefile.am
index 4bbfd6d2..b4fc6455 100644
--- a/src/qmi-proxy/Makefile.am
+++ b/src/qmi-proxy/Makefile.am
@@ -7,7 +7,15 @@ qmi_proxy_CPPFLAGS = \
-I$(top_srcdir)/src/libqmi-glib \
-I$(top_srcdir)/src/libqmi-glib/generated \
-I$(top_builddir)/src/libqmi-glib \
- -I$(top_builddir)/src/libqmi-glib/generated
+ -I$(top_builddir)/src/libqmi-glib/generated \
+ $(NULL)
+
+if QMI_QRTR_SUPPORTED
+qmi_proxy_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
qmi_proxy_SOURCES = qmi-proxy.c
diff --git a/src/qmicli/Makefile.am b/src/qmicli/Makefile.am
index bc434ce8..1316f2e5 100644
--- a/src/qmicli/Makefile.am
+++ b/src/qmicli/Makefile.am
@@ -14,6 +14,13 @@ libhelpers_la_CPPFLAGS = \
-I$(top_builddir)/src/libqmi-glib/generated \
$(NULL)
+if QMI_QRTR_SUPPORTED
+libhelpers_la_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
libhelpers_la_SOURCES = \
qmicli-helpers.c \
qmicli-helpers.h \
@@ -37,6 +44,13 @@ qmicli_CPPFLAGS = \
-I$(top_builddir)/src/libqmi-glib/generated \
$(NULL)
+if QMI_QRTR_SUPPORTED
+qmicli_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
qmicli_SOURCES = \
qmicli.c \
qmicli.h \
diff --git a/src/qmicli/test/Makefile.am b/src/qmicli/test/Makefile.am
index 01dd3114..ae35ea5f 100644
--- a/src/qmicli/test/Makefile.am
+++ b/src/qmicli/test/Makefile.am
@@ -17,6 +17,13 @@ test_helpers_CPPFLAGS = \
-I$(top_builddir)/src/libqmi-glib \
-I$(top_builddir)/src/libqmi-glib/generated
+if QMI_QRTR_SUPPORTED
+test_helpers_CPPFLAGS += \
+ -I$(top_srcdir)/src/libqrtr-glib \
+ -I$(top_builddir)/src/libqrtr-glib \
+ $(NULL)
+endif
+
test_helpers_LDADD = \
$(GLIB_LIBS) \
$(top_builddir)/src/qmicli/libhelpers.la \