Include executable test in GitHub action
[geeqie.git] / src / meson.build
index 91d938a..2930469 100644 (file)
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 
-main_sources = files('advanced_exif.c',
-'advanced_exif.h',
-'bar.c',
-'bar_comment.c',
-'bar_comment.h',
-'bar_exif.c',
-'bar_exif.h',
-'bar_gps.c',
-'bar_gps.h',
+main_sources = files('advanced-exif.cc',
+'advanced-exif.h',
+'backward.h',
+'bar.cc',
+'bar-comment.cc',
+'bar-comment.h',
+'bar-exif.cc',
+'bar-exif.h',
+'bar-gps.cc',
+'bar-gps.h',
 'bar.h',
-'bar_histogram.c',
-'bar_histogram.h',
-'bar_keywords.c',
-'bar_keywords.h',
-'bar_rating.c',
-'bar_rating.h',
-'bar_sort.c',
-'bar_sort.h',
-'cache.c',
+'bar-histogram.cc',
+'bar-histogram.h',
+'bar-keywords.cc',
+'bar-keywords.h',
+'bar-rating.cc',
+'bar-rating.h',
+'bar-sort.cc',
+'bar-sort.h',
+'cache.cc',
 'cache.h',
-'cache-loader.c',
+'cache-loader.cc',
 'cache-loader.h',
-'cache_maint.c',
-'cache_maint.h',
-'cellrenderericon.c',
+'cache-maint.cc',
+'cache-maint.h',
+'cellrenderericon.cc',
 'cellrenderericon.h',
-'collect.c',
-'collect-dlg.c',
+'collect.cc',
+'collect-dlg.cc',
 'collect-dlg.h',
 'collect.h',
-'collect-io.c',
+'collect-io.cc',
 'collect-io.h',
-'collect-table.c',
+'collect-table.cc',
 'collect-table.h',
-'color-man.c',
+'color-man.cc',
 'color-man.h',
-'compat.c',
+'compat.cc',
 'compat.h',
-'debug.c',
+'debug.cc',
 'debug.h',
-'desktop_file.c',
-'desktop_file.h',
-'dnd.c',
+'desktop-file.cc',
+'desktop-file.h',
+'dnd.cc',
 'dnd.h',
-'dupe.c',
+'dupe.cc',
 'dupe.h',
-'editors.c',
+'editors.cc',
 'editors.h',
-'exif.c',
-'exif-common.c',
+'exif.cc',
+'exif-common.cc',
 'exif.h',
 'exif-int.h',
 'exiv2.cc',
-'filecache.c',
+'filecache.cc',
 'filecache.h',
-'filedata.c',
+'filedata.cc',
 'filedata.h',
-'filefilter.c',
+'filefilter.cc',
 'filefilter.h',
-'format_canon.c',
-'format_canon.h',
-'format_fuji.c',
-'format_fuji.h',
-'format_nikon.c',
-'format_nikon.h',
-'format_olympus.c',
-'format_olympus.h',
-'format_raw.c',
-'format_raw.h',
-'fullscreen.c',
+'format-canon.cc',
+'format-canon.h',
+'format-fuji.cc',
+'format-fuji.h',
+'format-nikon.cc',
+'format-nikon.h',
+'format-olympus.cc',
+'format-olympus.h',
+'format-raw.cc',
+'format-raw.h',
+'fullscreen.cc',
 'fullscreen.h',
 'glua.h',
-'histogram.c',
+'histogram.cc',
 'histogram.h',
-'history_list.c',
-'history_list.h',
-'image.c',
+'history-list.cc',
+'history-list.h',
+'image.cc',
 'image.h',
-'image-load.c',
-'image_load_collection.c',
-'image_load_collection.h',
-'image_load_cr3.c',
-'image_load_cr3.h',
-'image_load_dds.c',
-'image_load_dds.h',
-'image_load_djvu.c',
-'image_load_djvu.h',
-'image_load_external.c',
-'image_load_external.h',
-'image_load_ffmpegthumbnailer.c',
-'image_load_ffmpegthumbnailer.h',
-'image_load_gdk.c',
-'image_load_gdk.h',
+'image-load.cc',
+'image-load-collection.cc',
+'image-load-collection.h',
+'image-load-cr3.cc',
+'image-load-cr3.h',
+'image-load-dds.cc',
+'image-load-dds.h',
+'image-load-djvu.cc',
+'image-load-djvu.h',
+'image-load-external.cc',
+'image-load-external.h',
+'image-load-ffmpegthumbnailer.cc',
+'image-load-ffmpegthumbnailer.h',
+'image-load-gdk.cc',
+'image-load-gdk.h',
 'image-load.h',
-'image_load_heif.c',
-'image_load_heif.h',
-'image_load_j2k.c',
-'image_load_j2k.h',
-'image_load_jpeg.c',
-'image_load_jpeg.h',
-'image_load_jpegxl.c',
-'image_load_jpegxl.h',
-'image_load_libraw.c',
-'image_load_libraw.h',
-'image_load_pdf.c',
-'image_load_pdf.h',
-'image_load_psd.c',
-'image_load_psd.h',
-'image_load_svgz.c',
-'image_load_svgz.h',
-'image_load_tiff.c',
-'image_load_tiff.h',
-'image_load_webp.c',
-'image_load_webp.h',
-'image_load_zxscr.c',
-'image_load_zxscr.h',
-'image-overlay.c',
+'image-load-heif.cc',
+'image-load-heif.h',
+'image-load-j2k.cc',
+'image-load-j2k.h',
+'image-load-jpeg.cc',
+'image-load-jpeg.h',
+'image-load-jpegxl.cc',
+'image-load-jpegxl.h',
+'image-load-libraw.cc',
+'image-load-libraw.h',
+'image-load-pdf.cc',
+'image-load-pdf.h',
+'image-load-psd.cc',
+'image-load-psd.h',
+'image-load-svgz.cc',
+'image-load-svgz.h',
+'image-load-tiff.cc',
+'image-load-tiff.h',
+'image-load-zxscr.cc',
+'image-load-zxscr.h',
+'image-overlay.cc',
 'image-overlay.h',
-'img-view.c',
+'img-view.cc',
 'img-view.h',
 'intl.h',
-'jpeg_parser.c',
-'jpeg_parser.h',
-'keymap_template.c',
-'keymap_template.h',
-'layout.c',
-'layout_config.c',
-'layout_config.h',
+'jpeg-parser.cc',
+'jpeg-parser.h',
+'keymap-template.cc',
+'keymap-template.h',
+'layout.cc',
+'layout-config.cc',
+'layout-config.h',
 'layout.h',
-'layout_image.c',
-'layout_image.h',
-'layout_util.c',
-'layout_util.h',
-'lirc.c',
-'lirc.h',
-'logwindow.c',
+'layout-image.cc',
+'layout-image.h',
+'layout-util.cc',
+'layout-util.h',
+'logwindow.cc',
 'logwindow.h',
-'lua.c',
-'main.c',
+'lua.cc',
+'main.cc',
 'main.h',
-'md5-util.c',
+'md5-util.cc',
 'md5-util.h',
-'menu.c',
+'menu.cc',
 'menu.h',
-'metadata.c',
+'metadata.cc',
 'metadata.h',
-'misc.c',
+'misc.cc',
 'misc.h',
-'options.c',
+'options.cc',
 'options.h',
-'osd.c',
+'osd.cc',
 'osd.h',
 'pan-view.h',
-'pixbuf-renderer.c',
+'pixbuf-renderer.cc',
 'pixbuf-renderer.h',
-'pixbuf_util.c',
-'pixbuf_util.h',
-'preferences.c',
+'pixbuf-util.cc',
+'pixbuf-util.h',
+'preferences.cc',
 'preferences.h',
-'print.c',
+'print.cc',
 'print.h',
-'rcfile.c',
+'rcfile.cc',
 'rcfile.h',
-'remote.c',
+'remote.cc',
 'remote.h',
-'renderer-clutter.c',
-'renderer-clutter.h',
-'renderer-tiles.c',
+'renderer-tiles.cc',
 'renderer-tiles.h',
-'search_and_run.c',
-'search_and_run.h',
-'search.c',
+'search-and-run.cc',
+'search-and-run.h',
+'search.cc',
 'search.h',
-'secure_save.c',
-'secure_save.h',
-'shortcuts.c',
+'secure-save.cc',
+'secure-save.h',
+'shortcuts.cc',
 'shortcuts.h',
-'similar.c',
+'similar.cc',
 'similar.h',
-'slideshow.c',
+'slideshow.cc',
 'slideshow.h',
-'thumb.c',
+'thumb.cc',
 'thumb.h',
-'thumb_standard.c',
-'thumb_standard.h',
-'toolbar.c',
+'thumb-standard.cc',
+'thumb-standard.h',
+'toolbar.cc',
 'toolbar.h',
-'trash.c',
+'trash.cc',
 'trash.h',
 'typedefs.h',
-'ui_bookmark.c',
-'ui_bookmark.h',
-'ui_fileops.c',
-'ui_fileops.h',
-'ui_help.c',
-'ui_help.h',
-'ui_menu.c',
-'ui_menu.h',
-'ui_misc.c',
-'ui_misc.h',
-'ui_pathsel.c',
-'ui_pathsel.h',
-'ui_spinner.c',
-'ui_spinner.h',
-'ui_tabcomp.c',
-'ui_tabcomp.h',
-'ui_tree_edit.c',
-'ui_tree_edit.h',
-'ui_utildlg.c',
-'ui_utildlg.h',
-'uri_utils.c',
-'uri_utils.h',
-'utilops.c',
+'ui-bookmark.cc',
+'ui-bookmark.h',
+'ui-fileops.cc',
+'ui-fileops.h',
+'ui-help.cc',
+'ui-help.h',
+'ui-menu.cc',
+'ui-menu.h',
+'ui-misc.cc',
+'ui-misc.h',
+'ui-pathsel.cc',
+'ui-pathsel.h',
+'ui-spinner.cc',
+'ui-spinner.h',
+'ui-tabcomp.cc',
+'ui-tabcomp.h',
+'ui-tree-edit.cc',
+'ui-tree-edit.h',
+'ui-utildlg.cc',
+'ui-utildlg.h',
+'uri-utils.cc',
+'uri-utils.h',
+'utilops.cc',
 'utilops.h',
-'view_dir.c',
-'view_dir.h',
-'view_dir_list.c',
-'view_dir_list.h',
-'view_dir_tree.c',
-'view_dir_tree.h',
-'view_file.h',
-'whereami.c',
+'view-dir.cc',
+'view-dir.h',
+'view-dir-list.cc',
+'view-dir-list.h',
+'view-dir-tree.cc',
+'view-dir-tree.h',
+'view-file.h',
+'whereami.cc',
 'whereami.h',
-'window.c',
+'window.cc',
 'window.h',
-'zonedetect.c',
+'zonedetect.cc',
 'zonedetect.h')
 
 project_sources += main_sources
 
+subdir('authors')
 subdir('icons')
 subdir('pan-view')
-subdir('view_file')
+subdir('view-file')
 
 gqmarshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list')
 project_sources += gqmarshal[0]
@@ -254,22 +250,26 @@ icon_pairs = [
 'icon_tabcomp', files('ui_tabcomp.png'),
 ]
 
-ui_icons_h = custom_target(output : 'ui_icons.h',
+ui_icons_h = custom_target('ui_icons', output : 'ui_icons.h',
                 command : [gdk_pixbuf_csource, '--raw', '--extern', '--build-list', icon_pairs],
                 capture : true)
 
 project_sources += ui_icons_h
 
-xxd = find_program('xxd')
-run_command(xxd, '-i',
-            'ClayRGB1998.icc',
-            join_paths(meson.project_build_root(), 'src', 'ClayRGB1998_icc.h'),
-            check : true)
+if conf_data.has('HAVE_LCMS')
+    xxd_sh = find_program('generate-ClayRGB1998-icc-h.sh', dirs : join_paths(meson.project_source_root(), 'scripts'))
 
-project_sources += 'ClayRGB1998_icc.h'
+    ClayRGB1998_icc_h = custom_target('ClayRGB1998',
+                        input: 'ClayRGB1998.icc',
+                        output : 'ClayRGB1998_icc.h',
+                        command : [xxd_sh, '@INPUT@', '@OUTPUT@'])
 
-executable('geeqie', project_sources,
+    project_sources += ClayRGB1998_icc_h
+endif
+
+geeqie_exe = executable('geeqie', project_sources,
 dependencies : [
+gtk_dep,
 champlain_dep,
 champlain_gtk_dep,
 clutter_dep,
@@ -278,17 +278,16 @@ ddjvuapi_dep,
 exiv2_dep,
 glib_dep,
 gspell_dep,
-gtk_dep,
 lcms_dep,
 libarchive_dep,
+libdw_dep,
 libffmpegthumbnailer_dep,
 libheif_dep,
 libjpeg_dep,
 libjxl_dep,
 libopenjp2_dep,
 libraw_dep,
-libwebp_dep,
-lirc_dep,
+libunwind_dep,
 lua_dep,
 poppler_glib_dep,
 thread_dep,