summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/Doxyfile.in5
-rw-r--r--doc/meson.build202
-rwxr-xr-xdoc/shot.sh1
-rw-r--r--meson.build6
4 files changed, 212 insertions, 2 deletions
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index 8eb5b96096..db4e63cdb2 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -49,7 +49,7 @@ PROJECT_LOGO =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = .
+OUTPUT_DIRECTORY = @top_builddir@/
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -594,7 +594,8 @@ WARN_LOGFILE =
# with spaces.
INPUT = @top_srcdir@/src/lib \
- @top_srcdir@/elm_intro.h \
+ @top_builddir@/src/lib \
+ @top_builddir@/elm_intro.h \
@srcdir@/index_elm.dox \
@srcdir@/main.dox \
@srcdir@/pkgconfig.dox \
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644
index 0000000000..a24c528d76
--- /dev/null
+++ b/doc/meson.build
@@ -0,0 +1,202 @@
+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'],
+ ['nstate', 'preview-00.png', 'widget_preview_nstate', '45', '28'],
+ ['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')
+convert = find_program('convert')
+
+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', 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="'+meson.current_build_dir()+'"',
+ '-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
+
+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(), '-cf', 'efl-'+meson.version()+'.tar', 'html', 'man'],
+ output: 'efl-'+meson.version()+'.tar',
+ depends: doc_target,
+ build_by_default: false
+)
+
+run_target('doc',
+ command: ['echo', 'Documentation sucessfully build!'],
+ depends: compress_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,
+)
diff --git a/doc/shot.sh b/doc/shot.sh
index b67be7074c..b6d066f1e9 100755
--- a/doc/shot.sh
+++ b/doc/shot.sh
@@ -12,6 +12,7 @@ export ELM_DISPLAY=shot
export ILLUME_KBD=0,0,240,123
export ILLUME_IND=0,0,240,32
export ILLUME_STK=0,288,240,32
+export EFL_RUN_IN_TREE=1
mkdir -p $DIR || true
diff --git a/meson.build b/meson.build
index 9af4f86505..d4e5644f2d 100644
--- a/meson.build
+++ b/meson.build
@@ -478,6 +478,12 @@ foreach evas_loader_map_inst : evas_loader_map
meson.add_install_script('meson/evas_loader_conf.sh', evas_loader_original, evas_loader_link_types)
endforeach
+doxygen = find_program('doxygen', required : false)
+
+if get_option('eolian-bootstrap') == false and doxygen.found()
+ subdir('doc')
+endif
+
#
# Configure files
#