Fix build on some Vala compiler versions
See https://gitlab.gnome.org/GNOME/vala/-/issues/1474 and https://gitlab.gnome.org/GNOME/vala/-/issues/1478
This commit is contained in:
parent
bc5a1d35cb
commit
f53dbe2dcb
|
@ -6,6 +6,11 @@ find_packages(LIBDINO_PACKAGES REQUIRED
|
|||
GObject
|
||||
)
|
||||
|
||||
set(LIBDINO_DEFINITIONS)
|
||||
if(LIBDINO_VERSION VERSION_EQUAL "0.56.11")
|
||||
set(LIBDINO_DEFINITIONS ${LIBDINO_DEFINITIONS} VALA_0_56_11)
|
||||
endif()
|
||||
|
||||
vala_precompile(LIBDINO_VALA_C
|
||||
SOURCES
|
||||
src/application.vala
|
||||
|
@ -76,6 +81,8 @@ GENERATE_VAPI
|
|||
dino
|
||||
GENERATE_HEADER
|
||||
dino
|
||||
DEFINITIONS
|
||||
${LIBDINO_DEFINITIONS}
|
||||
)
|
||||
|
||||
add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/exports/dino_i18n.h"
|
||||
|
|
|
@ -89,7 +89,12 @@ public class ModuleIdentity<T> : Object {
|
|||
}
|
||||
|
||||
public T? cast(StreamInteractionModule module) {
|
||||
#if VALA_0_56_11
|
||||
// We can't typecheck due to compiler bug
|
||||
return (T) module;
|
||||
#else
|
||||
return module.get_type().is_a(typeof(T)) ? (T?) module : null;
|
||||
#endif
|
||||
}
|
||||
|
||||
public bool matches(StreamInteractionModule module) {
|
||||
|
|
|
@ -111,9 +111,24 @@ endif()
|
|||
if(GTK4_VERSION VERSION_GREATER_EQUAL "4.8")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} GTK_4_8)
|
||||
endif()
|
||||
if(GTK4_VERSION VERSION_GREATER_EQUAL "4.12")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} GTK_4_12)
|
||||
endif()
|
||||
if(Adwaita_VERSION VERSION_GREATER_EQUAL "1.2")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} Adw_1_2)
|
||||
endif()
|
||||
if(VALA_VERSION VERSION_GREATER_EQUAL "0.56.5" AND VALA_VERSION VERSION_LESS "0.58")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_GREATER_5)
|
||||
endif()
|
||||
if(VALA_VERSION VERSION_GREATER_EQUAL "0.56.11" AND VALA_VERSION VERSION_LESS "0.58")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_GREATER_11)
|
||||
endif()
|
||||
if(VALA_VERSION VERSION_EQUAL "0.56.11")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_11)
|
||||
endif()
|
||||
if(VALA_VERSION VERSION_EQUAL "0.56.12")
|
||||
set(MAIN_DEFINITIONS ${MAIN_DEFINITIONS} VALA_0_56_12)
|
||||
endif()
|
||||
|
||||
vala_precompile(MAIN_VALA_C
|
||||
SOURCES
|
||||
|
|
|
@ -103,7 +103,13 @@ private const string force_color_css = "%s { color: %s; }";
|
|||
public static Gtk.CssProvider force_css(Gtk.Widget widget, string css) {
|
||||
var p = new Gtk.CssProvider();
|
||||
try {
|
||||
#if GTK_4_12 && (VALA_0_56_GREATER_11 || VALA_0_58)
|
||||
p.load_from_string(css);
|
||||
#elif (VALA_0_56_11 || VALA_0_56_12)
|
||||
p.load_from_data(css, css.length);
|
||||
#else
|
||||
p.load_from_data(css.data);
|
||||
#endif
|
||||
widget.get_style_context().add_provider(p, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
} catch (GLib.Error err) {
|
||||
// handle err
|
||||
|
|
|
@ -454,7 +454,7 @@ public class Dino.Ui.AvatarPicture : Gtk.Widget {
|
|||
label.insert_after(this, null);
|
||||
label.attributes = new Pango.AttrList();
|
||||
label.attributes.insert(Pango.attr_foreground_new(uint16.MAX, uint16.MAX, uint16.MAX));
|
||||
#if GTK_4_8 && VALA_0_58
|
||||
#if GTK_4_8 && (VALA_0_56_GREATER_5 || VALA_0_58)
|
||||
picture.content_fit = Gtk.ContentFit.COVER;
|
||||
#elif GTK_4_8
|
||||
picture.@set("content-fit", 2);
|
||||
|
@ -516,4 +516,4 @@ public class Dino.Ui.AvatarPicture : Gtk.Widget {
|
|||
base.snapshot(snapshot);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ class Dino.Ui.FixedRatioPicture : Gtk.Widget {
|
|||
public int max_height { get; set; default = int.MAX; }
|
||||
public File file { get { return inner.file; } set { inner.file = value; } }
|
||||
public Gdk.Paintable paintable { get { return inner.paintable; } set { inner.paintable = value; } }
|
||||
#if GTK_4_8 && VALA_0_58
|
||||
#if GTK_4_8 && (VALA_0_56_GREATER_5 || VALA_0_58)
|
||||
public Gtk.ContentFit content_fit { get { return inner.content_fit; } set { inner.content_fit = value; } }
|
||||
#endif
|
||||
private Gtk.Picture inner = new Gtk.Picture();
|
||||
|
@ -85,4 +85,4 @@ class Dino.Ui.FixedRatioPicture : Gtk.Widget {
|
|||
inner.unparent();
|
||||
base.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,11 @@ find_packages(ENGINE_PACKAGES REQUIRED
|
|||
|
||||
set(ENGINE_EXTRA_OPTIONS ${MAIN_EXTRA_OPTIONS} --vapidir=${CMAKE_CURRENT_SOURCE_DIR}/vapi)
|
||||
|
||||
set(ENGINE_DEFINITIONS)
|
||||
if(VALA_VERSION VERSION_EQUAL "0.56.11")
|
||||
set(ENGINE_DEFINITIONS ${ENGINE_DEFINITIONS} VALA_0_56_11)
|
||||
endif()
|
||||
|
||||
vala_precompile(ENGINE_VALA_C
|
||||
SOURCES
|
||||
"src/core/direct_tls_xmpp_stream.vala"
|
||||
|
@ -152,6 +157,8 @@ CUSTOM_VAPIS
|
|||
"${CMAKE_CURRENT_SOURCE_DIR}/src/glib_fixes.vapi"
|
||||
OPTIONS
|
||||
${ENGINE_EXTRA_OPTIONS}
|
||||
DEFINITIONS
|
||||
${ENGINE_DEFINITIONS}
|
||||
)
|
||||
|
||||
add_custom_target(xmpp-vala-vapi
|
||||
|
|
|
@ -10,7 +10,12 @@ namespace Xmpp {
|
|||
}
|
||||
|
||||
public T? cast(XmppStreamFlag flag) {
|
||||
#if VALA_0_56_11
|
||||
// We can't typecheck due to compiler bug
|
||||
return (T) module;
|
||||
#else
|
||||
return flag.get_type().is_a(typeof(T)) ? (T?) flag : null;
|
||||
#endif
|
||||
}
|
||||
|
||||
public bool matches(XmppStreamFlag module) {
|
||||
|
@ -34,7 +39,12 @@ namespace Xmpp {
|
|||
}
|
||||
|
||||
public T? cast(XmppStreamModule module) {
|
||||
#if VALA_0_56_11
|
||||
// We can't typecheck due to compiler bug
|
||||
return (T) module;
|
||||
#else
|
||||
return module.get_type().is_a(typeof(T)) ? (T?) module : null;
|
||||
#endif
|
||||
}
|
||||
|
||||
public bool matches(XmppStreamModule module) {
|
||||
|
|
Loading…
Reference in a new issue