efl/doc/meson.build

207 lines
9.8 KiB
Meson

doc_target = []
text_filter_properties= [
['Blend Example', 'Sans', '24', 'blend'],
['Blur', 'Sans:style=bold', '32', 'blur'],
['Bump', 'Sans:style=bold', '64', 'bump'],
['Curve', 'Sans:style=bold', '64', 'curve'],
['Grow - Contour', 'Sans:style=bold', '32', 'grow'],
['Mask', 'Sans:style=bold', '64', 'mask'],
['Transform - Mirror effect', 'Sans', '50', 'transform'],
]
widget_previews = [
['actionslider', 'preview-00.png', 'widget_preview_actionslider', '120', '30'],
['bg', 'preview-00.png', 'widget_preview_bg', '50', '50'],
['box', 'preview-00.png', 'widget_preview_box', '200', '160'],
['bubble', 'preview-00.png', 'widget_preview_bubble1', '160', '50'],
['bubble', 'preview-01.png', 'widget_preview_bubble2', '160', '50'],
['bubble', 'preview-02.png', 'widget_preview_bubble3', '160', '50'],
['button', 'preview-00.png', 'widget_preview_button1', '160', '50'],
['button', 'preview-01.png', 'widget_preview_button2', '160', '50'],
['button', 'preview-02.png', 'widget_preview_button3', '160', '50'],
['calendar', 'preview-00.png', 'widget_preview_calendar', '300', '300'],
['check', 'preview-00.png', 'widget_preview_check1', '160', '50'],
['check', 'preview-01.png', 'widget_preview_check2', '160', '50'],
['check', 'preview-02.png', 'widget_preview_check3', '160', '50'],
['clock', 'preview-00.png', 'widget_preview_clock', '200', '100'],
['colorselector', 'preview-00.png', 'widget_preview_colorselector', '320', '300'],
['conformant', 'preview-00.png', 'widget_preview_conformant', '200', '400'],
# ['combobox', 'preview-00.png', 'widget_preview_combobox', '300', '300'],
['ctxpopup', 'preview-00.png', 'widget_preview_ctxpopup', '200', '130'],
['datetime', 'preview-00.png', 'widget_preview_datetime1', '360', '60'],
['datetime', 'preview-01.png', 'widget_preview_datetime2', '200', '60'],
['datetime', 'preview-02.png', 'widget_preview_datetime3', '200', '60'],
['dayselector', 'preview-00.png', 'widget_preview_dayselector', '350', '50'],
['diskselector', 'preview-00.png', 'widget_preview_diskselector', '120', '50'],
['entry', 'preview-00.png', 'widget_preview_entry1', '160', '50'],
['entry', 'preview-01.png', 'widget_preview_entry2', '160', '50'],
['entry', 'preview-02.png', 'widget_preview_entry3', '160', '50'],
['entry', 'preview-03.png', 'widget_preview_entry4', '160', '50'],
# ['fileselector', 'preview-00.png', 'widget_preview_fileselector', '300', '300'],
['fileselector_button', 'preview-00.png', 'widget_preview_fileselector_button1', '200', '50'],
['fileselector_button', 'preview-01.png', 'widget_preview_fileselector_button2', '200', '50'],
['fileselector_button', 'preview-02.png', 'widget_preview_fileselector_button3', '160', '50'],
['fileselector_entry', 'preview-00.png', 'widget_preview_fileselector_entry', '70', '50'],
['flip', 'preview-00.png', 'widget_preview_flip', '100', '100'],
['flipselector', 'preview-00.png', 'widget_preview_flipselector', '100', '60'],
['frame', 'preview-00.png', 'widget_preview_frame', '100', '50'],
['gengrid', 'preview-00.png', 'widget_preview_gengrid', '200', '160'],
['genlist', 'preview-00.png', 'widget_preview_genlist1', '200', '200'],
['genlist', 'preview-01.png', 'widget_preview_genlist2', '200', '160'],
['genlist', 'preview-02.png', 'widget_preview_genlist3', '200', '160'],
['genlist', 'preview-03.png', 'widget_preview_genlist4', '200', '160'],
['genlist', 'preview-04.png', 'widget_preview_genlist5', '200', '160'],
['hover', 'preview-00.png', 'widget_preview_hover', '90', '170'],
['hoversel', 'preview-00.png', 'widget_preview_hoversel', '90', '170'],
['icon', 'preview-00.png', 'widget_preview_icon', '50', '50'],
['image', 'preview-00.png', 'widget_preview_image', '50', '50'],
['index', 'preview-00.png', 'widget_preview_index', '200', '160'],
['inwin', 'preview-00.png', 'widget_preview_inwin1', '200', '160'],
['inwin', 'preview-01.png', 'widget_preview_inwin2', '200', '160'],
['inwin', 'preview-02.png', 'widget_preview_inwin3', '200', '160'],
['label', 'preview-00.png', 'widget_preview_label', '70', '30'],
['layout', 'preview-00.png', 'widget_preview_layout', '200', '160'],
['list', 'preview-00.png', 'widget_preview_list', '200', '200'],
['map', 'preview-00.png', 'widget_preview_map', '256', '256'],
['mapbuf', 'preview-00.png', 'widget_preview_mapbuf', '200', '200'],
['menu', 'preview-00.png', 'widget_preview_menu', '100', '100'],
['notify', 'preview-00.png', 'widget_preview_notify', '60', '30'],
['panel', 'preview-00.png', 'widget_preview_panel', '150', '50'],
['panes', 'preview-00.png', 'widget_preview_panes', '200', '100'],
['photocam', 'preview-00.png', 'widget_preview_photocam', '243', '162'],
['popup', 'preview-00.png', 'widget_preview_popup', '480', '400'],
['prefs', 'preview-00.png', 'widget_preview_prefs', '200', '160'],
['prefs', 'preview-00.png', 'widget_preview_prefs', '280', '250'],
['progressbar', 'preview-00.png', 'widget_preview_progressbar', '150', '50'],
['radio', 'preview-00.png', 'widget_preview_radio', '60', '20'],
['scroller', 'preview-00.png', 'widget_preview_scroller', '100', '30'],
['segment_control', 'preview-00.png', 'widget_preview_segment_control', '240', '120'],
['separator', 'preview-00.png', 'widget_preview_separator', '10', '80'],
['slider', 'preview-00.png', 'widget_preview_slider', '200', '100'],
['slideshow', 'preview-00.png', 'widget_preview_slideshow', '50', '50'],
['spinner', 'preview-00.png', 'widget_preview_spinner', '160', '30'],
['table', 'preview-00.png', 'widget_preview_table', '100', '100'],
['thumb', 'preview-00.png', 'widget_preview_thumb', '100', '100'],
['toolbar', 'preview-00.png', 'widget_preview_toolbar', '300', '100'],
['web', 'preview-00.png', 'widget_preview_web', '300', '300'],
['win', 'preview-00.png', 'widget_preview_win', '200', '200'],
]
preview_text_filter = executable('preview_text_filter',
join_paths('previews', 'preview_text_filter.c'),
include_directories : config_dir,
dependencies: [ecore_evas],
build_by_default: false,
)
widget_preview_eps = custom_target('widget_preview_prefs_epc',
input: join_paths('widgets', 'widget_preview_prefs.epc'),
output: 'widget_preview_prefs.epb',
command: elm_prefs_cc_exe + ['@INPUT@', '@OUTPUT@'],
build_by_default: false,
depends: [elm_prefs_cc]
)
shot_sh = find_program('shot.sh')
tar = find_program('tar')
foreach text_filter_property : text_filter_properties
text = text_filter_property[0]
font = text_filter_property[1]
size = text_filter_property[2]
name = text_filter_property[3]
filter_code = run_command('cat', join_paths(meson.source_root(), 'src', 'examples', 'evas', 'filters', 'filter_'+name+'.lua'))
doc_target += custom_target('preview_text_filters_'+name,
command: [
env, 'EFL_RUN_IN_TREE=1',
'EFL_EVAS_FILTER_LUA_PREFIX=' + join_paths(meson.source_root(), 'src', 'lib', 'evas'),
preview_text_filter.full_path(), text, filter_code.stdout(), '@OUTPUT@', font, size
],
depends: preview_text_filter,
output: 'filter_'+name+'.png',
build_by_default: false
)
endforeach
foreach widget_preview : widget_previews
binary = widget_preview[2]
if get_variable(binary, preview_text_filter) == preview_text_filter
tmp = executable(binary,
join_paths('widgets', binary+'.c'),
dependencies: elementary,
build_by_default: false,
c_args : [
'-DPACKAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
'-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
'-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
'-DDOCW_DIR="'+meson.current_build_dir()+'"']
)
set_variable(binary, tmp)
endif
endforeach
#convert = find_program('convert')
foreach widget_preview : widget_previews
directory = widget_preview[0]
ss = widget_preview[1]
binary = widget_preview[2]
x = widget_preview[3]
y = widget_preview[4]
widget_executable = get_variable(binary)
screen_shot_dir = join_paths(meson.build_root(), 'html', 'img', 'widget', directory)
create_preview = custom_target('widget_preview_'+('_'.join([directory, ss, x, y])),
command: [shot_sh, screen_shot_dir, ss, widget_executable.full_path(), x, y],
output: '-'.join([directory, ss, x, y]),
depends: [widget_executable, widget_preview_eps],
build_by_default: false,
)
convert_preview = []
#
# This does not work see https://github.com/the-paperless-project/paperless/issues/439 for more details
# for now this means that no images will be in the latex documentation
#
#convert_preview = custom_target('convert_preview_'+('_'.join([directory, ss, x, y])),
# command: [convert, join_paths(screen_shot_dir, ss), join_paths(screen_shot_dir, ss.split('.')[0]+'.eps')],
# output: '-'.join([directory, ss, x, y])+'.eps',
# depends: [create_preview],
# build_by_default: false,
#)
doc_target += [create_preview, convert_preview]
endforeach
doc_target += custom_target('doxygen',
command: [doxygen, join_paths(meson.current_build_dir(), 'Doxyfile')],
output: ['empty'],
build_by_default: false
)
compress_target = custom_target('package_doc_tar',
command: [tar, '-C', meson.build_root(), '--xz', '-cf', 'efl-'+meson.project_version()+'-doc.tar.xz', 'html', 'man'],
output: 'efl-'+meson.project_version()+'-doc.tar.xz',
depends: doc_target,
build_by_default: false
)
run_target('doc',
command: ['echo', 'Documentation sucessfully build!'],
depends: doc_target,
)
doxyfile_conf = configuration_data()
doxyfile_conf.merge_from(config_h)
doxyfile_conf.set('srcdir', meson.current_source_dir())
doxyfile_conf.set('top_builddir', meson.build_root())
doxyfile_conf.set('top_srcdir', meson.source_root())
configure_file(
input: 'Doxyfile.in',
output: 'Doxyfile',
configuration: doxyfile_conf,
)