mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-09-28 01:57:14 +02:00
gdbus-codegen: Allow decorating symbols in headers
This adds three options to gdbus-codegen so that we may be able to use a self-defined symbol decorator, such as _GLIB_EXTERN, to decorate the generated prototypes, to be used possibly to export the symbols, if needed. The other two options allows including headers that are required for the specified symbol decorator to be usable and preprocessor macros that are required for the symbol decorator to be defined appropriately, also when needed.
This commit is contained in:
@@ -171,6 +171,12 @@ def codegen_main():
|
||||
help='Minimum version of GLib to be supported by the outputted code (default: 2.30)')
|
||||
arg_parser.add_argument('--glib-max-allowed', metavar='VERSION',
|
||||
help='Maximum version of GLib to be used by the outputted code (default: current GLib version)')
|
||||
arg_parser.add_argument('--symbol-decorator',
|
||||
help='Macro used to decorate a symbol in the outputted header, possibly to export symbols')
|
||||
arg_parser.add_argument('--symbol-decorator-header',
|
||||
help='Additional header required for decorator specified by --symbol-decorator')
|
||||
arg_parser.add_argument('--symbol-decorator-define',
|
||||
help='Additional define required for decorator specified by --symbol-decorator')
|
||||
|
||||
group = arg_parser.add_mutually_exclusive_group()
|
||||
group.add_argument('--generate-c-code', metavar='OUTFILES',
|
||||
@@ -271,6 +277,11 @@ def codegen_main():
|
||||
else:
|
||||
glib_max_allowed = (config.MAJOR_VERSION, config.MINOR_VERSION)
|
||||
|
||||
# Only allow --symbol-decorator-define and --symbol-decorator-header if --symbol-decorator is used
|
||||
if args.symbol_decorator is None:
|
||||
if args.symbol_decorator_header or args.symbol_decorator_define:
|
||||
print_error('--symbol-decorator-define and --symbol-decorator-header must be used with --symbol-decorator')
|
||||
|
||||
# Round --glib-max-allowed up to the next stable release.
|
||||
glib_max_allowed = \
|
||||
(glib_max_allowed[0], glib_max_allowed[1] + (glib_max_allowed[1] % 2))
|
||||
@@ -310,6 +321,8 @@ def codegen_main():
|
||||
input_files_basenames,
|
||||
args.pragma_once,
|
||||
glib_min_required,
|
||||
args.symbol_decorator,
|
||||
args.symbol_decorator_header,
|
||||
outfile)
|
||||
gen.generate()
|
||||
|
||||
@@ -322,6 +335,7 @@ def codegen_main():
|
||||
input_files_basenames,
|
||||
docbook_gen,
|
||||
glib_min_required,
|
||||
args.symbol_decorator_define,
|
||||
outfile)
|
||||
gen.generate()
|
||||
|
||||
@@ -333,6 +347,8 @@ def codegen_main():
|
||||
input_files_basenames,
|
||||
args.pragma_once,
|
||||
glib_min_required,
|
||||
args.symbol_decorator,
|
||||
args.symbol_decorator_header,
|
||||
outfile)
|
||||
gen.generate()
|
||||
|
||||
@@ -343,6 +359,7 @@ def codegen_main():
|
||||
header_name,
|
||||
input_files_basenames,
|
||||
glib_min_required,
|
||||
args.symbol_decorator_define,
|
||||
outfile)
|
||||
gen.generate()
|
||||
|
||||
|
Reference in New Issue
Block a user