[Spice-commits] src/map-file src/map-file-glib src/map-file-gtk src/meson.build

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 26 16:23:38 UTC 2023


 src/map-file-glib |   22 ----------------------
 src/map-file-gtk  |   35 +++++++++++++++++++++++++++++++++++
 src/meson.build   |   17 +++++++++++------
 3 files changed, 46 insertions(+), 28 deletions(-)

New commits:
commit 7e87382b585a799ced543b0c3fd127b2a813285f
Author: Frediano Ziglio <freddy77 at gmail.com>
Date:   Fri Jun 23 21:17:26 2023 +0100

    Split symbol file in 2 files
    
    One file for spice-glib and another for spice-gtk.
    This avoid having duplicate exports in the future.
    spice_g_signal_connect_object, spice_util_get_debug,
    spice_util_get_version_string, spice_util_set_debug and
    spice_uuid_to_string are exported by both libraries to keep ABI
    compatibility.
    
    Signed-off-by: Frediano Ziglio <freddy77 at gmail.com>

diff --git a/src/map-file b/src/map-file-glib
similarity index 89%
rename from src/map-file
rename to src/map-file-glib
index c0d8ca6..ef0a31f 100644
--- a/src/map-file
+++ b/src/map-file-glib
@@ -31,18 +31,8 @@ spice_display_channel_get_primary;
 spice_display_channel_get_type;
 spice_display_channel_gl_draw_done;
 spice_display_get_gl_scanout;
-spice_display_get_grab_keys;
-spice_display_get_pixbuf;
 spice_display_get_primary;
-spice_display_get_type;
 spice_display_gl_draw_done;
-spice_display_key_event_get_type;
-spice_display_keyboard_ungrab;
-spice_display_mouse_ungrab;
-spice_display_new;
-spice_display_new_with_monitor;
-spice_display_send_keys;
-spice_display_set_grab_keys;
 spice_file_transfer_task_cancel;
 spice_file_transfer_task_get_filename;
 spice_file_transfer_task_get_progress;
@@ -52,17 +42,7 @@ spice_file_transfer_task_get_type;
 spice_get_option_group;
 spice_gl_scanout_free;
 spice_gl_scanout_get_type;
-spice_grab_sequence_as_string;
-spice_grab_sequence_copy;
-spice_grab_sequence_free;
-spice_grab_sequence_get_type;
-spice_grab_sequence_new;
-spice_grab_sequence_new_from_string;
 spice_g_signal_connect_object;
-spice_gtk_session_copy_to_guest;
-spice_gtk_session_get;
-spice_gtk_session_get_type;
-spice_gtk_session_paste_from_guest;
 spice_inputs_button_press;
 spice_inputs_button_release;
 spice_inputs_channel_button_press;
@@ -185,8 +165,6 @@ spice_usb_device_manager_is_redirecting;
 spice_usb_device_manager_allocate_device_for_file_descriptor;
 spice_usb_device_manager_create_shared_cd_device;
 spice_usb_device_manager_is_device_shared_cd;
-spice_usb_device_widget_get_type;
-spice_usb_device_widget_new;
 spice_usbredir_channel_get_type;
 spice_util_get_debug;
 spice_util_get_version_string;
diff --git a/src/map-file-gtk b/src/map-file-gtk
new file mode 100644
index 0000000..ca5dd44
--- /dev/null
+++ b/src/map-file-gtk
@@ -0,0 +1,35 @@
+SPICEGTK_1 {
+global:
+spice_display_get_grab_keys;
+spice_display_get_pixbuf;
+spice_display_get_type;
+spice_display_key_event_get_type;
+spice_display_keyboard_ungrab;
+spice_display_mouse_ungrab;
+spice_display_new;
+spice_display_new_with_monitor;
+spice_display_send_keys;
+spice_display_set_grab_keys;
+spice_grab_sequence_as_string;
+spice_grab_sequence_copy;
+spice_grab_sequence_free;
+spice_grab_sequence_get_type;
+spice_grab_sequence_new;
+spice_grab_sequence_new_from_string;
+spice_gtk_session_copy_to_guest;
+spice_gtk_session_get;
+spice_gtk_session_get_type;
+spice_gtk_session_paste_from_guest;
+spice_usb_device_widget_get_type;
+spice_usb_device_widget_new;
+
+/* FIXME: remove the following 5 duplicated symbols in next ABI break */
+spice_g_signal_connect_object;
+spice_util_get_debug;
+spice_util_get_version_string;
+spice_util_set_debug;
+spice_uuid_to_string;
+
+local:
+*;
+};
diff --git a/src/meson.build b/src/meson.build
index 852217a..68fe7ab 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -185,14 +185,20 @@ test_syms_path = meson.current_source_dir() / 'test-map-file'
 test_version_script = '-Wl,--version-script=@0@'.format(test_syms_path)
 spice_has_version_script = compiler.has_link_argument(test_version_script)
 
-spice_client_glib_syms = files('map-file')
-spice_client_glib_syms_path = meson.current_source_dir() / 'map-file'
-spice_gtk_version_script = '-Wl,--version-script=@0@'.format(spice_client_glib_syms_path)
-if not spice_has_version_script
+if spice_has_version_script
+  spice_client_glib_syms = files('map-file-glib')
+  spice_client_gtk_syms = files('map-file-gtk')
+  spice_client_glib_syms_path = meson.current_source_dir() / 'map-file-glib'
+  spice_client_gtk_syms_path = meson.current_source_dir() / 'map-file-gtk'
+  spice_glib_version_script = '-Wl,--version-script=@0@'.format(spice_client_glib_syms_path)
+  spice_gtk_version_script = '-Wl,--version-script=@0@'.format(spice_client_gtk_syms_path)
+else
   if host_machine.system() == 'linux'
     error('Version scripts should be supported on Linux')
   endif
   spice_client_glib_syms = []
+  spice_client_gtk_syms = []
+  spice_glib_version_script = []
   spice_gtk_version_script = []
 endif
 
@@ -210,7 +216,7 @@ spice_client_glib_lib = library('spice-client-glib-2.0', spice_client_glib_sourc
                                 version : spice_client_glib_so_version,
                                 install : true,
                                 include_directories : spice_gtk_include,
-                                link_args : [spice_gtk_version_script],
+                                link_args : [spice_glib_version_script],
                                 link_depends : spice_client_glib_syms,
                                 dependencies : spice_glib_deps)
 
@@ -377,7 +383,6 @@ if spice_gtk_has_gtk
   #
   # libspice-client-gtk.so
   #
-  spice_client_gtk_syms = spice_client_glib_syms
 
   # soversion
   # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html


More information about the Spice-commits mailing list