mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-20 07:38:54 +02:00
Define enum types for Unicode enums
We want to stop shipping PangoScript in pango, so we need a replacement for the type that used to be provided by pango.
This commit is contained in:
@@ -6,7 +6,8 @@ if get_option('gtk_doc')
|
|||||||
'gatomicarray.h',
|
'gatomicarray.h',
|
||||||
'gobject_probes.h',
|
'gobject_probes.h',
|
||||||
'gobject_trace.h',
|
'gobject_trace.h',
|
||||||
'gtype-private.h'
|
'gtype-private.h',
|
||||||
|
'gobjectenumtypes.h'
|
||||||
]
|
]
|
||||||
|
|
||||||
ignore_decorators = [
|
ignore_decorators = [
|
||||||
|
@@ -34,6 +34,7 @@
|
|||||||
#include <gobject/gvalue.h>
|
#include <gobject/gvalue.h>
|
||||||
#include <gobject/gvaluearray.h>
|
#include <gobject/gvaluearray.h>
|
||||||
#include <gobject/gvaluetypes.h>
|
#include <gobject/gvaluetypes.h>
|
||||||
|
#include <gobject/gobjectenumtypes.h>
|
||||||
|
|
||||||
#include <gobject/gobject-autocleanups.h>
|
#include <gobject/gobject-autocleanups.h>
|
||||||
|
|
||||||
|
38
gobject/gobjectenumtypes.c.template
Normal file
38
gobject/gobjectenumtypes.c.template
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
/*** BEGIN file-header ***/
|
||||||
|
#include "config.h"
|
||||||
|
#include "gobjectenumtypes.h"
|
||||||
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
/*** END file-header ***/
|
||||||
|
|
||||||
|
/*** BEGIN file-production ***/
|
||||||
|
/* enumerations from "@filename@" */
|
||||||
|
/*** END file-production ***/
|
||||||
|
|
||||||
|
/*** BEGIN value-header ***/
|
||||||
|
GType
|
||||||
|
@enum_name@_get_type (void)
|
||||||
|
{
|
||||||
|
static volatile gsize g_define_type_id__volatile = 0;
|
||||||
|
|
||||||
|
if (g_once_init_enter (&g_define_type_id__volatile))
|
||||||
|
{
|
||||||
|
static const G@Type@Value values[] = {
|
||||||
|
/*** END value-header ***/
|
||||||
|
|
||||||
|
/*** BEGIN value-production ***/
|
||||||
|
{ @VALUENAME@, "@VALUENAME@", "@valuenick@" },
|
||||||
|
/*** END value-production ***/
|
||||||
|
|
||||||
|
/*** BEGIN value-tail ***/
|
||||||
|
{ 0, NULL, NULL }
|
||||||
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
|
g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
|
||||||
|
g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return g_define_type_id__volatile;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** END value-tail ***/
|
24
gobject/gobjectenumtypes.h.template
Normal file
24
gobject/gobjectenumtypes.h.template
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/*** BEGIN file-header ***/
|
||||||
|
#ifndef __GOBJECT_ENUM_TYPES_H__
|
||||||
|
#define __GOBJECT_ENUM_TYPES_H__
|
||||||
|
|
||||||
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
G_BEGIN_DECLS
|
||||||
|
/*** END file-header ***/
|
||||||
|
|
||||||
|
/*** BEGIN file-production ***/
|
||||||
|
|
||||||
|
/* enumerations from "@filename@" */
|
||||||
|
/*** END file-production ***/
|
||||||
|
|
||||||
|
/*** BEGIN value-header ***/
|
||||||
|
GLIB_AVAILABLE_IN_2_60 GType @enum_name@_get_type (void) G_GNUC_CONST;
|
||||||
|
#define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
|
||||||
|
/*** END value-header ***/
|
||||||
|
|
||||||
|
/*** BEGIN file-tail ***/
|
||||||
|
G_END_DECLS
|
||||||
|
|
||||||
|
#endif /* __GOBJECT_ENUM_TYPES_H__ */
|
||||||
|
/*** END file-tail ***/
|
@@ -61,32 +61,6 @@ else
|
|||||||
gobject_dtrace_hdr = []
|
gobject_dtrace_hdr = []
|
||||||
endif
|
endif
|
||||||
|
|
||||||
libgobject = library('gobject-2.0',
|
|
||||||
gobject_dtrace_obj, gobject_dtrace_hdr,
|
|
||||||
sources : gobject_sources,
|
|
||||||
version : library_version,
|
|
||||||
soversion : soversion,
|
|
||||||
darwin_versions : darwin_versions,
|
|
||||||
install : true,
|
|
||||||
include_directories : [configinc],
|
|
||||||
dependencies : [libffi_dep, libglib_dep],
|
|
||||||
c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args,
|
|
||||||
link_args : glib_link_flags,
|
|
||||||
)
|
|
||||||
|
|
||||||
pkg.generate(libgobject,
|
|
||||||
requires : ['glib-2.0'],
|
|
||||||
version : glib_version,
|
|
||||||
install_dir : glib_pkgconfigreldir,
|
|
||||||
filebase : 'gobject-2.0',
|
|
||||||
name : 'GObject',
|
|
||||||
description : 'GLib Type, Object, Parameter and Signal Library',
|
|
||||||
)
|
|
||||||
|
|
||||||
libgobject_dep = declare_dependency(link_with : libgobject,
|
|
||||||
include_directories : [gobjectinc],
|
|
||||||
dependencies : [libglib_dep])
|
|
||||||
|
|
||||||
python_tools = [
|
python_tools = [
|
||||||
'glib-genmarshal',
|
'glib-genmarshal',
|
||||||
'glib-mkenums',
|
'glib-mkenums',
|
||||||
@@ -111,6 +85,57 @@ foreach tool: python_tools
|
|||||||
meson.override_find_program(tool, tool_bin)
|
meson.override_find_program(tool, tool_bin)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
# We can't use gnome.mkenums() because the GNOME module looks for glib-mkenums
|
||||||
|
# in PATH, which means you can't bootstrap glib with its own glib-mkenums.
|
||||||
|
gobjectenumtypes_h = custom_target('gobjectenumtypes_h',
|
||||||
|
output : 'gobjectenumtypes.h',
|
||||||
|
capture : true,
|
||||||
|
input : '../glib/gunicode.h',
|
||||||
|
install : true,
|
||||||
|
install_dir : join_paths(get_option('includedir'), 'glib-2.0/gobject'),
|
||||||
|
command : [python, glib_mkenums,
|
||||||
|
'--template', files('gobjectenumtypes.h.template'),
|
||||||
|
'@INPUT@'])
|
||||||
|
|
||||||
|
# For now, we only include gunicode.h here, since GScriptType is needed for pango
|
||||||
|
# More headers can be added as needed
|
||||||
|
gobjectenumtypes_c = custom_target('gobjectenumtypes_c',
|
||||||
|
output : 'gobjectenumtypes.c',
|
||||||
|
capture : true,
|
||||||
|
input : '../glib/gunicode.h',
|
||||||
|
depends : [gobjectenumtypes_h],
|
||||||
|
command : [python, glib_mkenums,
|
||||||
|
'--template', files('gobjectenumtypes.c.template'),
|
||||||
|
'@INPUT@'])
|
||||||
|
|
||||||
|
gobjectenumtypes_dep = declare_dependency(sources : [gobjectenumtypes_h])
|
||||||
|
|
||||||
|
libgobject = library('gobject-2.0',
|
||||||
|
gobject_dtrace_obj, gobject_dtrace_hdr, gobjectenumtypes_h, gobjectenumtypes_c,
|
||||||
|
sources : gobject_sources,
|
||||||
|
version : library_version,
|
||||||
|
soversion : soversion,
|
||||||
|
darwin_versions : darwin_versions,
|
||||||
|
install : true,
|
||||||
|
include_directories : [configinc],
|
||||||
|
dependencies : [libffi_dep, libglib_dep],
|
||||||
|
c_args : ['-DG_LOG_DOMAIN="GLib-GObject"', '-DGOBJECT_COMPILATION'] + glib_hidden_visibility_args,
|
||||||
|
link_args : glib_link_flags,
|
||||||
|
)
|
||||||
|
|
||||||
|
pkg.generate(libgobject,
|
||||||
|
requires : ['glib-2.0'],
|
||||||
|
version : glib_version,
|
||||||
|
install_dir : glib_pkgconfigreldir,
|
||||||
|
filebase : 'gobject-2.0',
|
||||||
|
name : 'GObject',
|
||||||
|
description : 'GLib Type, Object, Parameter and Signal Library',
|
||||||
|
)
|
||||||
|
|
||||||
|
libgobject_dep = declare_dependency(link_with : libgobject,
|
||||||
|
include_directories : [gobjectinc],
|
||||||
|
dependencies : [libglib_dep, gobjectenumtypes_dep])
|
||||||
|
|
||||||
executable('gobject-query', 'gobject-query.c',
|
executable('gobject-query', 'gobject-query.c',
|
||||||
install : true,
|
install : true,
|
||||||
dependencies : [libglib_dep, libgobject_dep])
|
dependencies : [libglib_dep, libgobject_dep])
|
||||||
|
Reference in New Issue
Block a user