Test it's possible to consume libdbus as a subproject.
Suggested-by: Simon McVittie <smcv@collabora.com>
Signed-off-by: Daniel Wagner <dwagner@suse.de>
ci_buildsys: "meson-dist"
ci_compiler: "clang"
ci_variant: "debug"
+ script:
+ - ./tools/ci-build.sh
+ # Also test that we can be used as a subproject:
+ # https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/388
+ - mkdir -p test/use-as-subproject/subprojects/dbus
+ - tar --strip-components=1 -C test/use-as-subproject/subprojects/dbus -xf ci-build-dist/*.tar.xz
+ - meson setup --wrap-mode=forcefallback test/use-as-subproject/_build test/use-as-subproject
+ - meson compile -C test/use-as-subproject/_build
+ - meson test -C test/use-as-subproject/_build
debian mingw32 autotools debug:
extends: .debian-build
--- /dev/null
+# Copyright 2023 Collabora Ltd.
+# SPDX-License-Identifier: MIT
+
+/_build/
+/subproject/
--- /dev/null
+/*
+ * Copyright 2023 Collabora Ltd.
+ * SPDX-License-Identifier: MIT
+ */
+
+#error Should not use superproject generated config.h to compile libdbus
--- /dev/null
+/*
+ * Copyright 2023 Collabora Ltd.
+ * SPDX-License-Identifier: MIT
+ */
+
+#error Should not use superproject generated config.h to compile libdbus
--- /dev/null
+# Copyright 2023 Collabora Ltd.
+# Copyright (c) 2023 SUSE LLC
+# SPDX-License-Identifier: MIT
+
+project(
+ 'use-libdbus-as-subproject',
+ 'c',
+ version : '0',
+ meson_version : '>=0.49.0'
+)
+add_project_arguments('-D_GNU_SOURCE', language : 'c')
+
+configure_file(
+ copy : true,
+ input : 'dummy-config.h.in',
+ output : 'config.h',
+)
+
+libdbus_dep = dependency(
+ 'dbus-1',
+ required: true,
+ fallback: ['dbus', 'libdbus_dep'],
+ default_options: [
+ 'default_library=static',
+ 'embedded_tests=false',
+ 'message_bus=false',
+ 'modular_tests=disabled',
+ 'tools=false',
+ ],
+)
+
+executable(
+ 'use-libdbus',
+ 'use-libdbus.c',
+ dependencies : [
+ libdbus_dep
+ ]
+)
--- /dev/null
+/*
+ * Copyright (c) 2023 SUSE LLC
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <assert.h>
+#include <dbus/dbus.h>
+
+int main(void)
+{
+ DBusMessage *m = NULL;
+
+ m = dbus_message_new_signal ("/", "com.example.Interface", "Signal");
+ assert (m != NULL);
+ dbus_message_unref (m);
+ return 0;
+}