summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@collabora.com>2022-06-28 13:06:35 +0100
committerSimon McVittie <smcv@collabora.com>2022-07-13 20:36:13 +0100
commit64e490afe76706b64c8a4153bbc9a424e2b8f797 (patch)
treecd3b9be5b104b1743232fcd7dad8cf95d7dfb8be
parent154cc9d5ca0bfd09a34cc834b68105b25c0bad30 (diff)
meson: Fix the check for --version-script support
At the time we do this check, version_script has not yet been generated, so we have to use something else. Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r--dbus/Makefile.am1
-rw-r--r--dbus/meson.build13
-rw-r--r--dbus/test-version-script10
3 files changed, 21 insertions, 3 deletions
diff --git a/dbus/Makefile.am b/dbus/Makefile.am
index 7e3e82e0..3c2ea87c 100644
--- a/dbus/Makefile.am
+++ b/dbus/Makefile.am
@@ -330,6 +330,7 @@ endif
noinst_PROGRAMS =
EXTRA_DIST += meson.build
+EXTRA_DIST += test-version-script
# Add rules for code-coverage testing, as defined by AX_CODE_COVERAGE
include $(top_srcdir)/aminclude_static.am
diff --git a/dbus/meson.build b/dbus/meson.build
index a4342d2d..2fd7cc72 100644
--- a/dbus/meson.build
+++ b/dbus/meson.build
@@ -172,9 +172,16 @@ version_script = configure_file(
configuration: data_config,
)
-version_flags = '-Wl,--version-script,@0@'.format(version_script)
-if not cc.has_link_argument(version_flags)
- version_flags = []
+# We can't use version_script to check for support, because it hasn't been
+# generated yet, so use a static source file instead.
+if cc.has_link_argument(
+ '-Wl,--version-script,@0@'.format(
+ meson.current_source_dir() / 'test-version-script'
+ )
+)
+ version_flags = ['-Wl,--version-script,@0@'.format(version_script)]
+else
+ version_flags = []
endif
libdbus = library('dbus-1',
diff --git a/dbus/test-version-script b/dbus/test-version-script
new file mode 100644
index 00000000..c0f8462d
--- /dev/null
+++ b/dbus/test-version-script
@@ -0,0 +1,10 @@
+NOT_REALLY_LIBDBUS_1_3 {
+ global:
+ dbus_*;
+ local:
+ *;
+};
+NOT_REALLY_LIBDBUS_PRIVATE_1.2.3 {
+ global:
+ _dbus_*;
+};