forked from AuroraMiddleware/gtk
build: Fix the introspection build
GSK has various enumeration types that are currently not used; while they may go away, currently they are built and introspected. If we want the introspection machinery to work, and still use static libraries to build GDK and GSK into the GTK shared library, then we need to reference the get_type() function of these enumeration types somewhere, to avoid the linker discarding it, and thus breaking the build. As luck would have it, we have an autogenerated bit of C that refers to all the get_type() functions in the library; if we add the GSK types to it, then we get the reference we're looking for, and the build succeeds.
This commit is contained in:
parent
ea32f4c020
commit
efd2ce2be5
@ -23,7 +23,7 @@ for filename in in_files:
|
||||
for line in f:
|
||||
line = line.rstrip('\n').rstrip('\r')
|
||||
# print line
|
||||
match = re.search(r'\bg[td]k_[a-zA-Z0-9_]*_get_type\b', line)
|
||||
match = re.search(r'\bg[tds]k_[a-zA-Z0-9_]*_get_type\b', line)
|
||||
if match:
|
||||
func = match.group(0)
|
||||
if not func in funcs:
|
||||
|
@ -741,14 +741,14 @@ gtkprivatetypebuiltins_h = gtkprivatetypebuiltins[1]
|
||||
|
||||
# Generate gtktypefuncs.inc
|
||||
typefuncs = custom_target('gtktypefuncs.inc',
|
||||
depends: gdkenum_h,
|
||||
depends: [ gdkenum_h, gskenum_h, ],
|
||||
output: 'gtktypefuncs.inc',
|
||||
input: gdk_headers +
|
||||
gtk_public_headers +
|
||||
gtk_deprecated_headers +
|
||||
gtk_private_headers +
|
||||
[ gtktypebuiltins_h, ] +
|
||||
[ gdkenum_h, ],
|
||||
[ gdkenum_h, gskenum_h, ],
|
||||
command: [
|
||||
find_program('gentypefuncs.py'),
|
||||
'@OUTPUT@',
|
||||
@ -890,7 +890,8 @@ libgtk = shared_library('gtk-4',
|
||||
c_args: gtk_cargs + common_cflags,
|
||||
include_directories: [confinc, gdkinc, gskinc, gtkinc],
|
||||
dependencies: gtk_deps + [libgdk_dep, libgsk_dep],
|
||||
link_with: [libgdk, libgsk, included_input_modules],
|
||||
link_with: [libgdk, libgsk, ],
|
||||
link_whole: included_input_modules,
|
||||
link_args: common_ldflags,
|
||||
install: true)
|
||||
|
||||
@ -901,7 +902,7 @@ libgtk_dep = declare_dependency(sources: [gtkversion, gtktypebuiltins_h],
|
||||
link_args: common_ldflags)
|
||||
|
||||
# Introspection
|
||||
if false
|
||||
if not meson.is_cross_build()
|
||||
gir_args = [
|
||||
'--c-include=gtk/gtk.h',
|
||||
]
|
||||
@ -933,12 +934,13 @@ if false
|
||||
dependencies: gdk_gir_dep,
|
||||
extra_args: [
|
||||
'--c-include=gdk/gdkx.h',
|
||||
'--include-uninstalled=./gtk/Gdk-4.0.gir',
|
||||
'-DGDK_COMPILATION',
|
||||
])
|
||||
endif
|
||||
|
||||
gsk_gir = gnome.generate_gir(libgtk,
|
||||
sources: gsk_public_headers + gsk_gen_headers + gsk_public_sources,
|
||||
sources: gsk_public_headers + gsk_public_sources + [ gskenum_h ],
|
||||
namespace: 'Gsk',
|
||||
nsversion: gtk_api_version,
|
||||
identifier_prefix: 'Gsk',
|
||||
@ -956,6 +958,7 @@ if false
|
||||
dependencies: gdk_gir_dep,
|
||||
sources: gsk_gir)
|
||||
|
||||
|
||||
gnome.generate_gir(libgtk,
|
||||
sources: gtk_public_headers + gtk_public_sources + dnd_sources + a11y_headers + a11y_sources + [
|
||||
gtktypebuiltins_h,
|
||||
|
Loading…
Reference in New Issue
Block a user