glib/girepository
Philip Withnall 5021d002ab introspection: Generate separate GIR files for platform specific APIs
For both GLib and GIO. (GObject, GIRepository and GModule don’t have any
platform specific APIs.)

This is needed for two reasons:
 * If the same GIR file is shipped on multiple platforms, it has no way
   to conditionally define/not-define an API based on the platform (like
   an `#ifdef` in a C header). So we either end up shipping differing
   GIR APIs on different platforms, or shipping a GIR file which
   declares APIs which aren’t resolvable by `dlopen()` on certain
   platforms, and will cause a language runtime error.
 * The API reference documentation is now generated from the GIR, and
   similar problems are present there: if the GIR contains different
   symbols depending on the platform, there is no way to generate API
   documentation for the union of all of them.

The fix is to ensure that there are no conditional symbols in a GIR, by
splitting out the platform specific symbols into platform specific GIR
files. Platform specific documentation can then be generated from these,
in addition to the main, platform agnostic, documentation.

The documentation changes will following in a subsequent commit.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: #3037
2024-02-12 17:54:10 +00:00
..
cmph cmph: Fix a typo 2024-02-09 14:44:34 +00:00
compiler Merge branch 'no-override-g-ir-compiler' into 'main' 2024-02-09 20:18:39 +00:00
decompiler gi-decompile-repository: Port to girepository-2.0 2024-02-09 20:40:47 +00:00
inspector gi-inspect-repository: Change --version argument to --typelib-version 2024-02-09 20:41:17 +00:00
introspection introspection: Generate separate GIR files for platform specific APIs 2024-02-12 17:54:10 +00:00
tests gibaseinfo: Stop building GIBoxedInfo instances 2024-02-12 13:16:07 +00:00
gdump.c girrepository: Replace usage of gsize with standard size_t 2024-01-16 18:40:42 +01:00
gi-dump-types.c girepository: Replace tabs with spaces in indentation 2024-01-16 17:30:37 +01:00
giarginfo.c girepository: Rename gi_arg_info_load_type() to gi_arg_info_load_type_info() 2024-02-05 15:13:46 +00:00
giarginfo.h girepository: Rename gi_arg_info_load_type() to gi_arg_info_load_type_info() 2024-02-05 15:13:46 +00:00
gibaseinfo-private.h girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
gibaseinfo.c girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
gibaseinfo.h girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
gicallableinfo.c girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
gicallableinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gicallbackinfo.c gicallbackinfo: Port documentation to gi-docgen and update 2023-12-18 14:14:15 +00:00
gicallbackinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
giconstantinfo.c girrepository: Replace usage of gsize with standard size_t 2024-01-16 18:40:42 +01:00
giconstantinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gienuminfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
gienuminfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gifieldinfo.c girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
gifieldinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
giflagsinfo.c gienuminfo: Split out GIFlagsInfo as a derived type 2024-01-18 13:15:22 +00:00
giflagsinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gifunctioninfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
gifunctioninfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
giinterfaceinfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
giinterfaceinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
ginvoke.c girrepository: Use standard int sized types instead of g[u]int* 2024-01-16 18:40:42 +01:00
giobjectinfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
giobjectinfo.h girepository: Fix declaration of ‘find using interfaces’ methods 2024-02-05 18:40:03 +00:00
gipropertyinfo.c gipropertyinfo: Port documentation to gi-docgen and update 2023-12-18 14:14:15 +00:00
gipropertyinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
giregisteredtypeinfo.c gibaseinfo: Stop building GIBoxedInfo instances 2024-02-12 13:16:07 +00:00
giregisteredtypeinfo.h gibaseinfo: Stop building GIBoxedInfo instances 2024-02-12 13:16:07 +00:00
girepository-private.h girepository: Drop unneeded include from girepository-private.h 2024-02-12 13:30:17 +00:00
girepository.c girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
girepository.h girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
girffi.c girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
girffi.h girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
girmodule-private.h girepository: Various indentation cleanups 2024-01-16 18:56:57 +01:00
girmodule.c Merge branch 'typelib-bytes' into 'main' 2024-01-26 10:15:49 +00:00
girnode-private.h girnode: Improve int types in GIIrNodeUnion 2024-01-26 09:29:30 +00:00
girnode.c girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
giroffsets.c girnode: Improve int types in GIIrNodeField 2024-01-26 09:29:30 +00:00
girparser-private.h girepository: Use char instead of glib-specific gchar 2024-01-16 18:40:42 +01:00
girparser.c girnode: Improve int types in GIIrNodeUnion 2024-01-26 09:29:30 +00:00
girwriter-private.h girepository: Rename symbols to the GI namespace 2023-11-08 15:05:20 +00:00
girwriter.c girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
gisignalinfo.c gisignalinfo: Port documentation to gi-docgen and update 2023-12-18 14:14:16 +00:00
gisignalinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gistructinfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
gistructinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gitypeinfo.c girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
gitypeinfo.h girepository: Make GIInfoType private 2024-02-08 12:56:02 +00:00
gitypelib-internal.h gitypelib: Explicitly convert from GITypelibBlobType to GIInfoType 2024-02-12 13:15:38 +00:00
gitypelib.c gibaseinfo: Stop building GIBoxedInfo instances 2024-02-12 13:16:07 +00:00
gitypelib.h gitypelib: Add boxed type 2024-02-07 21:07:18 +00:00
gitypes.h girepository: Drop GIBoxedInfo 2024-02-12 13:17:04 +00:00
giunioninfo.c Merge branch 'gi-info-new' into 'main' 2024-02-08 10:34:40 +00:00
giunioninfo.h giunioninfo: Split success and return value for get_discriminator_offset() 2024-02-06 13:34:17 +00:00
giunresolvedinfo.c giunresolvedinfo: Port documentation to gi-docgen and update 2023-12-18 14:14:16 +00:00
giunresolvedinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
givalueinfo.c girepository: Split GIValueInfo out of gienuminfo.c 2024-01-18 13:15:22 +00:00
givalueinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
givfuncinfo.c gibaseinfo: Rename gi_info_new() to gi_base_info_new() 2024-02-08 10:34:40 +00:00
givfuncinfo.h girepository: Add type-checking cast macros 2024-01-18 13:15:22 +00:00
gthash.c girrepository: Use standard int sized types instead of g[u]int* 2024-01-16 18:40:42 +01:00
meson.build Merge branch '3245-boxed-info-typing' into 'main' 2024-02-12 14:11:36 +00:00