 f82eb198f2
			
		
	
	f82eb198f2
	
	
	
		
			
			...even if PangoFT2 is not present, provided that Pango 1.44.0+ and HarfBuzz 2.2.0+ are installed. The demo now has added support for later Pango versions that use HarfBuzz for shaping on all supported platforms.
		
			
				
	
	
		
			155 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| 
 | |
| ## These should be in the order you want them to appear in the
 | |
| ## demo app, which means alphabetized by demo title, not filename
 | |
| demos = files([
 | |
|   'application_demo.c',
 | |
|   'assistant.c',
 | |
|   'builder.c',
 | |
|   'button_box.c',
 | |
|   'changedisplay.c',
 | |
|   'clipboard.c',
 | |
|   'colorsel.c',
 | |
|   'combobox.c',
 | |
|   'css_accordion.c',
 | |
|   'css_basics.c',
 | |
|   'css_blendmodes.c',
 | |
|   'css_multiplebgs.c',
 | |
|   'css_pixbufs.c',
 | |
|   'css_shadows.c',
 | |
|   'cursors.c',
 | |
|   'dialog.c',
 | |
|   'drawingarea.c',
 | |
|   'editable_cells.c',
 | |
|   'entry_buffer.c',
 | |
|   'entry_completion.c',
 | |
|   'event_axes.c',
 | |
|   'expander.c',
 | |
|   'filtermodel.c',
 | |
|   'fishbowl.c',
 | |
|   'foreigndrawing.c',
 | |
|   'gestures.c',
 | |
|   'glarea.c',
 | |
|   'headerbar.c',
 | |
|   'hypertext.c',
 | |
|   'iconview.c',
 | |
|   'iconview_edit.c',
 | |
|   'images.c',
 | |
|   'infobar.c',
 | |
|   'links.c',
 | |
|   'listbox.c',
 | |
|   'flowbox.c',
 | |
|   'list_store.c',
 | |
|   'markup.c',
 | |
|   'menus.c',
 | |
|   'modelbutton.c',
 | |
|   'offscreen_window.c',
 | |
|   'offscreen_window2.c',
 | |
|   'overlay.c',
 | |
|   'overlay2.c',
 | |
|   'paint.c',
 | |
|   'panes.c',
 | |
|   'pickers.c',
 | |
|   'pixbufs.c',
 | |
|   'popover.c',
 | |
|   'printing.c',
 | |
|   'revealer.c',
 | |
|   'rotated_text.c',
 | |
|   'scale.c',
 | |
|   'search_entry.c',
 | |
|   'search_entry2.c',
 | |
|   'shortcuts.c',
 | |
|   'sidebar.c',
 | |
|   'sizegroup.c',
 | |
|   'spinbutton.c',
 | |
|   'spinner.c',
 | |
|   'stack.c',
 | |
|   'tabs.c',
 | |
|   'textmask.c',
 | |
|   'textview.c',
 | |
|   'textscroll.c',
 | |
|   'theming_style_classes.c',
 | |
|   'toolpalette.c',
 | |
|   'transparent.c',
 | |
|   'tree_store.c',
 | |
| ])
 | |
| 
 | |
| 
 | |
| gtkdemo_deps = [libgtk_dep]
 | |
| 
 | |
| if pango_dep.version().version_compare('>=1.44.0') and harfbuzz_dep.found() and cc.has_header_symbol(
 | |
|   'hb-ot.h',
 | |
|   'hb_ot_var_get_axis_count',
 | |
|   dependencies: harfbuzz_dep
 | |
| )
 | |
|   demos += files('font_features.c')
 | |
| elif harfbuzz_dep.found() and pangoft_dep.found()
 | |
|   demos += files('font_features.c')
 | |
|   gtkdemo_deps += [harfbuzz_dep, pangoft_dep]
 | |
| endif
 | |
| 
 | |
| if os_unix
 | |
|   demos += files('pagesetup.c')
 | |
| endif
 | |
| 
 | |
| gtkdemo_sources = demos + files([
 | |
|   'gtkfishbowl.c',
 | |
|   'gtkfishbowl.h',
 | |
|   'main.c',
 | |
| ])
 | |
| 
 | |
| 
 | |
| geninclude = find_program('geninclude.py')
 | |
| demos_h = custom_target(
 | |
|   'gtk3 demo header',
 | |
|   output  : 'demos.h',
 | |
|   input   : demos,
 | |
|   command : [geninclude, '@OUTPUT@', '@INPUT@'],
 | |
| )
 | |
| 
 | |
| gtkdemo_resources = gnome.compile_resources(
 | |
|   'gtkdemo_resources',
 | |
|   'demo.gresource.xml',
 | |
|   source_dir: '.'
 | |
| )
 | |
| 
 | |
| gtkdemo = executable(
 | |
|   'gtk3-demo',
 | |
|   gtkdemo_sources,
 | |
|   demos_h,
 | |
|   gtkdemo_resources,
 | |
|   dependencies: gtkdemo_deps,
 | |
|   include_directories : confinc,
 | |
|   install: true
 | |
| )
 | |
| 
 | |
| gtkapplicationdemo = executable(
 | |
|   'gtk3-demo-application',
 | |
|   'application.c',
 | |
|   demos_h,
 | |
|   gtkdemo_resources,
 | |
|   dependencies: gtkdemo_deps,
 | |
|   include_directories : confinc,
 | |
|   install: true
 | |
| )
 | |
| 
 | |
| gtk_settings_schemas = [
 | |
|   'org.gtk.Settings.FileChooser.gschema.xml',
 | |
|   'org.gtk.Settings.ColorChooser.gschema.xml',
 | |
|   'org.gtk.Settings.EmojiChooser.gschema.xml',
 | |
|   'org.gtk.Settings.Debug.gschema.xml',
 | |
| ]
 | |
| 
 | |
| foreach s: [ '16', '22', '24', '32', '48', '256']
 | |
|   icon_destdir = join_paths(gtk_datadir, 'icons', 'hicolor', '@0@x@0@'.format(s), 'apps')
 | |
|   icons = [join_paths('data', '@0@x@0@'.format(s), 'gtk3-demo.png'),
 | |
|            join_paths('data', '@0@x@0@'.format(s), 'gtk3-demo-symbolic.symbolic.png')]
 | |
|   install_data(icons, install_dir: icon_destdir)
 | |
| endforeach
 | |
| 
 | |
| # desktop file
 | |
| install_data('gtk3-demo.desktop', install_dir: gtk_applicationsdir)
 | |
| 
 | |
| # GSettings
 | |
| install_data('org.gtk.Demo.gschema.xml', install_dir: gtk_schemasdir)
 | |
| gnome.compile_schemas(depend_files: files(['org.gtk.Demo.gschema.xml']))
 |