fs = import('fs') private_headers = [ 'imm-extra.h', 'gtkbitmaskprivateimpl.h', 'gdkpixbufutilsprivate.h', 'gtkaccelgroupprivate.h', 'gtkaccelmapprivate.h', 'gtkactionhelperprivate.h', 'gtkactionmuxerprivate.h', 'gtkadjustmentprivate.h', 'gtkallocatedbitmaskprivate.h', 'gtkappchooserprivate.h', 'gtkapplicationaccelsprivate.h', 'gtkapplicationprivate.h', 'gtkarrayimplprivate.h', 'gtkbindingsprivate.h', 'gtkbitmaskprivate.h', 'gtkbuilderprivate.h', 'gtkbuttonprivate.h', 'gtkcellareaboxcontextprivate.h', 'gtkcheckbuttonprivate.h', 'gtkcolorchooserprivate.h', 'gtkcoloreditorprivate.h', 'gtkcolorplaneprivate.h', 'gtkcolorscaleprivate.h', 'gtkcolorswatchprivate.h', 'gtkcolumnlistitemfactoryprivate.h', 'gtkcolumnviewcellprivate.h', 'gtkcolumnviewcolumnprivate.h', 'gtkcolumnviewlayoutprivate.h', 'gtkcolumnviewprivate.h', 'gtkcolumnviewsorterprivate.h', 'gtkcolumnviewtitleprivate.h', 'gtkcomboboxprivate.h', 'gtkconstraintexpressionprivate.h', 'gtkconstraintguideprivate.h', 'gtkconstraintlayoutprivate.h', 'gtkconstraintprivate.h', 'gtkconstraintsolverprivate.h', 'gtkconstrainttypesprivate.h', 'gtkconstraintvflparserprivate.h', 'gtkcssanimatedstyleprivate.h', 'gtkcssanimationprivate.h', 'gtkcssarrayvalueprivate.h', 'gtkcssbgsizevalueprivate.h', 'gtkcssbordervalueprivate.h', 'gtkcssboxesprivate.h', 'gtkcsscalcvalueprivate.h', 'gtkcsscolorvalueprivate.h', 'gtkcsscornervalueprivate.h', 'gtkcssdimensionvalueprivate.h', 'gtkcssdynamicprivate.h', 'gtkcsseasevalueprivate.h', 'gtkcssenumvalueprivate.h', 'gtkcssfiltervalueprivate.h', 'gtkcssfontfeaturesvalueprivate.h', 'gtkcssfontvariationsvalueprivate.h', 'gtkcssiconthemevalueprivate.h', 'gtkcssimagecrossfadeprivate.h', 'gtkcssimagefallbackprivate.h', 'gtkcssimageiconthemeprivate.h', 'gtkcssimageinvalidprivate.h', 'gtkcssimagelinearprivate.h', 'gtkcssimagepaintableprivate.h', 'gtkcssimageprivate.h', 'gtkcssimageradialprivate.h', 'gtkcssimagerecolorprivate.h', 'gtkcssimagescaledprivate.h', 'gtkcssimageurlprivate.h', 'gtkcssimagevalueprivate.h', 'gtkcssimagewin32private.h', 'gtkcssinheritvalueprivate.h', 'gtkcssinitialvalueprivate.h', 'gtkcsskeyframesprivate.h', 'gtkcsslookupprivate.h', 'gtkcssmatcherprivate.h', 'gtkcssnodedeclarationprivate.h', 'gtkcssnodeprivate.h', 'gtkcssnodestylecacheprivate.h', 'gtkcssnumbervalueprivate.h', 'gtkcsspalettevalueprivate.h', 'gtkcssparserprivate.h', 'gtkcsspathnodeprivate.h', 'gtkcsspositionvalueprivate.h', 'gtkcssproviderprivate.h', 'gtkcssrepeatvalueprivate.h', 'gtkcssrgbavalueprivate.h', 'gtkcsssectionprivate.h', 'gtkcssselectorprivate.h', 'gtkcssshadowsvalueprivate.h', 'gtkcssshadowvalueprivate.h', 'gtkcssshorthandpropertyprivate.h', 'gtkcssstaticstyleprivate.h', 'gtkcssstringvalueprivate.h', 'gtkcssstylechangeprivate.h', 'gtkcssstyleprivate.h', 'gtkcssstylepropertyprivate.h', 'gtkcsstransformvalueprivate.h', 'gtkcsstransientnodeprivate.h', 'gtkcsstransitionprivate.h', 'gtkcsstypesprivate.h', 'gtkcssunsetvalueprivate.h', 'gtkcssvalueprivate.h', 'gtkcsswidgetnodeprivate.h', 'gtkcsswin32sizevalueprivate.h', 'gtkdialogprivate.h', 'gtkentryprivate.h', 'gtkeventcontrollerlegacyprivate.h', 'gtkeventcontrollerprivate.h', 'gtkfilechoosererrorstackprivate.h', 'gtkfilechoosernativeprivate.h', 'gtkfilechooserprivate.h', 'gtkfilechooserwidgetprivate.h', 'gtkfilefilterprivate.h', 'gtkfontchooserprivate.h', 'gtkfontchooserwidgetprivate.h', 'gtkgesturedragprivate.h', 'gtkgesturelongpressprivate.h', 'gtkgesturemultipressprivate.h', 'gtkgesturepanprivate.h', 'gtkgestureprivate.h', 'gtkgesturerotateprivate.h', 'gtkgesturesingleprivate.h', 'gtkgesturestylusprivate.h', 'gtkgestureswipeprivate.h', 'gtkgesturezoomprivate.h', 'gtkgizmoprivate.h', 'gtkheaderbarprivate.h', 'gtkhslaprivate.h', 'gtkiconcacheprivate.h', 'gtkiconcachevalidatorprivate.h', 'gtkiconhelperprivate.h', 'gtkiconprivate.h', 'gtkiconthemeprivate.h', 'gtkiconviewprivate.h', 'gtkimagedefinitionprivate.h', 'gtkimageprivate.h', 'gtkimcontextsimpleprivate.h', 'gtkimmoduleprivate.h', 'gtkkineticscrollingprivate.h', 'gtklabelprivate.h', 'gtklistbaseprivate.h', 'gtklistitemprivate.h', 'gtklistitemfactoryprivate.h', 'gtklistitemmanagerprivate.h', 'gtklistitemwidgetprivate.h', 'gtklockbuttonprivate.h', 'gtkmagnifierprivate.h', 'gtkmediafileprivate.h', 'gtkmenubuttonprivate.h', 'gtkmenusectionboxprivate.h', 'gtkmenutrackeritemprivate.h', 'gtkmenutrackerprivate.h', 'gtkmodulesprivate.h', 'gtkmountoperationprivate.h', 'gtknativedialogprivate.h', 'gtknomediafileprivate.h', 'gtkpango.h', 'gtkplacessidebarprivate.h', 'gtkplacesviewprivate.h', 'gtkplacesviewrowprivate.h', 'gtkpointerfocusprivate.h', 'gtkpopoverprivate.h', 'gtkprinterprivate.h', 'gtkprintoperation-private.h', 'gtkprivate.h', 'gtkprogresstrackerprivate.h', 'gtkquery.h', 'gtkrangeprivate.h', 'gtkrbtreeprivate.h', 'gtkrenderbackgroundprivate.h', 'gtkrenderborderprivate.h', 'gtkrendericonprivate.h', 'gtkrendernodepaintableprivate.h', 'gtkroundedboxprivate.h', 'gtkscalerprivate.h', 'gtksearchentryprivate.h', 'gtksettingsprivate.h', 'gtkshortcutcontrollerprivate.h', 'gtkshortcutsshortcutprivate.h', 'gtkshortcutswindowprivate.h', 'gtksidebarrowprivate.h', 'gtksizegroup-private.h', 'gtksizerequestcacheprivate.h', 'gtksnapshotprivate.h', 'gtkstyleanimationprivate.h', 'gtkstylecascadeprivate.h', 'gtkstylecontextprivate.h', 'gtkstylepropertyprivate.h', 'gtkstyleproviderprivate.h', 'gtktextbufferprivate.h', 'gtktextchildprivate.h', 'gtktextdisplayprivate.h', 'gtktexthandleprivate.h', 'gtktexthistoryprivate.h', 'gtktextiterprivate.h', 'gtktextlayoutprivate.h', 'gtktextlinedisplaycacheprivate.h', 'gtktextmarkprivate.h', 'gtktexttagprivate.h', 'gtktextviewprivate.h', 'gtktogglebuttonprivate.h', 'gtktoolbarprivate.h', 'gtktooltipprivate.h', 'gtktooltipwindowprivate.h', 'gtktreepopoverprivate.h', 'gtktreeprivate.h', 'gtktreerbtreeprivate.h', 'gtkutilsprivate.h', 'gtkwidgetpaintableprivate.h', 'gtkwidgetpathprivate.h', 'gtkwidgetprivate.h', 'gtkwin32drawprivate.h', 'gtkwin32themeprivate.h', 'gtkwindowprivate.h', 'gtk-text-input-client-protocol.h', 'roaring.h', ] images = [ 'images/aboutdialog.png', 'images/accel-label.png', 'images/action-bar.png', 'images/appchooserbutton.png', 'images/appchooserdialog.png', 'images/arrows.png', 'images/assistant.png', 'images/background.png', 'images/bloatpad-gnome.png', 'images/bloatpad-osx.png', 'images/bloatpad-xfce.png', 'images/border1.png', 'images/border2.png', 'images/border3.png', 'images/box-expand.png', 'images/box-packing.png', 'images/builder-shortcuts.png', 'images/button.png', 'images/capture-bubble.png', 'images/check-button.png', 'images/checks.png', 'images/clocks-shortcuts.png', 'images/color-button.png', 'images/colorchooser.png', 'images/combo-box-entry.png', 'images/combo-box.png', 'images/combo-box-text.png', 'images/down-center.png', 'images/down-end.png', 'images/down-start.png', 'images/drawing.png', 'images/ease-in-out.png', 'images/ease-in.png', 'images/ease-out.png', 'images/ease.png', 'images/entry.png', 'images/exampleapp.png', 'images/expanders.png', 'images/extensions.png', 'images/figure-hierarchical-drawing.png', 'images/figure-windowed-label.png', 'images/file-button.png', 'images/filechooser.png', 'images/flow-box.png', 'images/focus.png', 'images/font-button.png', 'images/fontchooser.png', 'images/frame-gap.png', 'images/frame.png', 'images/frames.png', 'images/gedit-shortcuts.png', 'images/getting-started-app10.png', 'images/getting-started-app1.png', 'images/getting-started-app2.png', 'images/getting-started-app3.png', 'images/getting-started-app4.png', 'images/getting-started-app6.png', 'images/getting-started-app7.png', 'images/getting-started-app8.png', 'images/getting-started-app9.png', 'images/glarea.png', 'images/gradient1.png', 'images/gradient2.png', 'images/gradient3.png', 'images/gradient4.png', 'images/grid-packing.png', 'images/handles.png', 'images/headerbar.png', 'images/hello-world.png', 'images/icon-view.png', 'images/image.png', 'images/info-bar.png', 'images/inspector.png', 'images/label.png', 'images/layout-btlr.png', 'images/layout-btrl.png', 'images/layout-lrbt.png', 'images/layout-lrtb.png', 'images/layout-rlbt.png', 'images/layout-rltb.png', 'images/layout-tblr.png', 'images/layout-tbrl.png', 'images/left-center.png', 'images/left-end.png', 'images/left-start.png', 'images/levelbar.png', 'images/linear.png', 'images/link-button.png', 'images/list-and-tree.png', 'images/list-box.png', 'images/lockbutton-locked.png', 'images/lock-button.png', 'images/lockbutton.png', 'images/lockbutton-sorry.png', 'images/lockbutton-unlocked.png', 'images/menubar.png', 'images/menu-button.png', 'images/messagedialog.png', 'images/multiline-text.png', 'images/notebook.png', 'images/options.png', 'images/pagesetupdialog.png', 'images/panes.png', 'images/placessidebar.png', 'images/popup-anchors.png', 'images/popup-at.svg', 'images/popup-flip.png', 'images/popup-slide.png', 'images/printdialog.png', 'images/progressbar.png', 'images/radio-group.png', 'images/right-center.png', 'images/right-end.png', 'images/right-start.png', 'images/scales.png', 'images/scrollbar.png', 'images/scrolledwindow.png', 'images/search-bar.png', 'images/search-entry.png', 'images/separator.png', 'images/sidebar.png', 'images/slices.png', 'images/sliders.png', 'images/spinbutton.png', 'images/spinner.png', 'images/stack.png', 'images/stackswitcher.png', 'images/statusbar.png', 'images/switch.png', 'images/toggle-button.png', 'images/toolbar.png', 'images/tree-view-coordinates.png', 'images/up-center.png', 'images/up-end.png', 'images/up-start.png', 'images/volumebutton.png', 'images/widget-hvalign.png', 'images/window-default.png', 'images/window.png', ] content_files = [ 'gtk4-broadwayd.xml', 'gtk4-builder-tool.xml', 'gtk4-demo-application.xml', 'gtk4-demo.xml', 'gtk4-encode-symbolic-svg.xml', 'gtk4-icon-browser.xml', 'gtk4-launch.xml', 'gtk4-query-settings.xml', 'gtk4-update-icon-cache.xml', 'gtk4-widget-factory.xml', 'overview.xml', 'visual_index.xml', ] expand_content_md_files = [ 'broadway.md', 'osx.md', 'wayland.md', 'windows.md', 'x11.md', 'getting_started.md', 'resources.md', 'building.md', 'compiling.md', 'running.md', 'migrating-2to4.md', 'migrating-3to4.md', 'actions.md', 'input-handling.md', 'drawing-model.md', 'css-overview.md', 'css-properties.md', 'section-text-widget.md', 'section-tree-widget.md', 'section-list-widget.md', 'question_index.md', ] types_conf = configuration_data() if os_win32 types_conf.set('DISABLE_ON_W32', '%') else types_conf.set('DISABLE_ON_W32', '') endif if os_darwin types_conf.set('DISABLE_ON_QUARTZ', '%') else types_conf.set('DISABLE_ON_QUARTZ', '') endif if get_option('gtk_doc') configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf) # gtk-markdown-to-docbook uses pandoc pandoc = find_program('pandoc', required: true) expand_md = find_program('gtk-markdown-to-docbook') expand_md_targets = [] foreach t : expand_content_md_files expand_md_targets += custom_target(t, input: [ t ], output: [ fs.replace_suffix(t, '.xml') ], command: [ expand_md, '@INPUT@', '@OUTPUT@']) endforeach gnome.gtkdoc('gtk4', mode: 'none', main_xml: 'gtk4-docs.xml', src_dir: [ gtkinc, ], dependencies: libgtk_dep, gobject_typesfile: configure_file( input: 'gtk4.types.in', output: 'gtk4.types', configuration: types_conf, ), scan_args: [ '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT', '--ignore-headers=' + ' '.join(private_headers), ], mkdb_args: [ '--default-includes=gtk/gtk.h', ], fixxref_args: [ '--html-dir=@0@'.format(docpath), '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')), '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')), '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')), '--extra-dir=@0@'.format(cairo_docpath), '--extra-dir=@0@'.format(gdkpixbuf_docpath), '--extra-dir=../gdk', '--extra-dir=../gsk', ], content_files: content_files + expand_md_targets, html_assets: images, install: true) endif xsltproc = find_program('xsltproc', required: false) if get_option('man-pages') and not xsltproc.found() error('No xsltproc found, but man pages were explicitly enabled') endif if get_option('man-pages') and xsltproc.found() xlstproc_flags = [ '--nonet', '--stringparam', 'man.output.quietly', '1', '--stringparam', 'funcsynopsis.style', 'ansi', '--stringparam', 'man.th.extra1.suppress', '1', '--stringparam', 'man.authors.section.enabled', '0', '--stringparam', 'man.copyright.section.enabled', '0', ] man_files = [ [ 'gtk4-broadwayd', '1', ], [ 'gtk4-builder-tool', '1', ], [ 'gtk4-demo', '1', ], [ 'gtk4-demo-application', '1', ], [ 'gtk4-encode-symbolic-svg', '1', ], [ 'gtk4-icon-browser', '1', ], [ 'gtk4-launch', '1', ], [ 'gtk4-query-settings', '1', ], [ 'gtk4-update-icon-cache', '1', ], [ 'gtk4-widget-factory', '1', ], ] foreach man: man_files man_name = man.get(0) man_section = man.get(1, '1') custom_target('@0@.@1@'.format(man_name, man_section), input: '@0@.xml'.format(man_name), output: '@0@.@1@'.format(man_name, man_section), command: [ xsltproc, xlstproc_flags, '-o', '@OUTPUT@', 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl', '@INPUT@', ], install: true, install_dir: join_paths(get_option('mandir'), 'man@0@'.format(man_section))) endforeach endif