@@ -137,6 +137,8 @@ class GdbusCodegen(TypedDict):
137137 install_header : bool
138138 install_dir : T .Optional [str ]
139139 docbook : T .Optional [str ]
140+ rst : T .Optional [str ]
141+ markdown : T .Optional [str ]
140142 autocleanup : Literal ['all' , 'none' , 'objects' , 'default' ]
141143
142144 class GenMarshal (TypedDict ):
@@ -1619,6 +1621,8 @@ def gtkdoc_html_dir(self, state: 'ModuleState', args: T.Tuple[str], kwargs: 'TYP
16191621 ),
16201622 KwargInfo ('install_header' , bool , default = False , since = '0.46.0' ),
16211623 KwargInfo ('docbook' , (str , NoneType )),
1624+ KwargInfo ('rst' , (str , NoneType ), since = '1.9.0' ),
1625+ KwargInfo ('markdown' , (str , NoneType ), since = '1.9.0' ),
16221626 KwargInfo (
16231627 'autocleanup' , str , default = 'default' , since = '0.47.0' ,
16241628 validator = in_set_validator ({'all' , 'none' , 'objects' })),
@@ -1675,6 +1679,26 @@ def gdbus_codegen(self, state: 'ModuleState', args: T.Tuple[str, T.Optional[T.Un
16751679
16761680 cmd += ['--generate-docbook' , docbook ]
16771681
1682+ if kwargs ['rst' ] is not None :
1683+ if not mesonlib .version_compare (glib_version , '>= 2.71.1' ):
1684+ mlog .error (f'Glib version ({ glib_version } ) is too old to '
1685+ 'support the \' rst\' kwarg, need 2.71.1 or '
1686+ 'newer' )
1687+
1688+ rst = kwargs ['rst' ]
1689+
1690+ cmd += ['--generate-rst' , rst ]
1691+
1692+ if kwargs ['markdown' ] is not None :
1693+ if not mesonlib .version_compare (glib_version , '>= 2.75.2' ):
1694+ mlog .error (f'Glib version ({ glib_version } ) is too old to '
1695+ 'support the \' markdown\' kwarg, need 2.75.2 '
1696+ 'or newer' )
1697+
1698+ markdown = kwargs ['markdown' ]
1699+
1700+ cmd += ['--generate-md' , markdown ]
1701+
16781702 # https://git.gnome.org/browse/glib/commit/?id=ee09bb704fe9ccb24d92dd86696a0e6bb8f0dc1a
16791703 if mesonlib .version_compare (glib_version , '>= 2.51.3' ):
16801704 cmd += ['--output-directory' , '@OUTDIR@' , '--generate-c-code' , namebase , '@INPUT@' ]
@@ -1750,6 +1774,48 @@ def gdbus_codegen(self, state: 'ModuleState', args: T.Tuple[str, T.Optional[T.Un
17501774 )
17511775 targets .append (docbook_custom_target )
17521776
1777+ if kwargs ['rst' ] is not None :
1778+ rst = kwargs ['rst' ]
1779+ # The rst output is always ${rst}-${name_of_xml_file}
1780+ output = namebase + '-rst'
1781+ outputs = []
1782+ for f in xml_files :
1783+ outputs .append ('{}-{}' .format (rst , os .path .basename (str (f ))))
1784+
1785+ rst_custom_target = CustomTarget (
1786+ output ,
1787+ state .subdir ,
1788+ state .subproject ,
1789+ state .environment ,
1790+ cmd + ['--output-directory' , '@OUTDIR@' , '--generate-rst' , rst , '@INPUT@' ],
1791+ xml_files ,
1792+ outputs ,
1793+ build_by_default = build_by_default ,
1794+ description = 'Generating gdbus reStructuredText {}' ,
1795+ )
1796+ targets .append (rst_custom_target )
1797+
1798+ if kwargs ['markdown' ] is not None :
1799+ markdown = kwargs ['markdown' ]
1800+ # The markdown output is always ${markdown}-${name_of_xml_file}
1801+ output = namebase + '-markdown'
1802+ outputs = []
1803+ for f in xml_files :
1804+ outputs .append ('{}-{}' .format (markdown , os .path .basename (str (f ))))
1805+
1806+ markdown_custom_target = CustomTarget (
1807+ output ,
1808+ state .subdir ,
1809+ state .subproject ,
1810+ state .environment ,
1811+ cmd + ['--output-directory' , '@OUTDIR@' , '--generate-md' , markdown , '@INPUT@' ],
1812+ xml_files ,
1813+ outputs ,
1814+ build_by_default = build_by_default ,
1815+ description = 'Generating gdbus markdown {}' ,
1816+ )
1817+ targets .append (markdown_custom_target )
1818+
17531819 return ModuleReturnValue (targets , targets )
17541820
17551821 @typed_pos_args ('gnome.mkenums' , str )
0 commit comments