Change configuration system from Autotools to Meson
authorColin Clark <colin.clark@cclark.uk>
Sun, 17 Jul 2022 17:33:05 +0000 (18:33 +0100)
committerColin Clark <colin.clark@cclark.uk>
Sun, 17 Jul 2022 17:33:05 +0000 (18:33 +0100)
86 files changed:
.gitignore
.travis.yml [deleted file]
.tx/config [deleted file]
Makefile.am [deleted file]
README.md
acinclude.m4 [deleted file]
aminclude.am [deleted file]
autogen.sh [deleted file]
config.h.in [new file with mode: 0644]
configure.ac [deleted file]
doc/Makefile.am [deleted file]
doc/create-doxygen-lua-api.sh
doc/docbook/CommandLineOptions.xml
doc/meson.build [new file with mode: 0644]
geeqie-install-debian.sh
geeqie.1
geeqie.desktop.in
gen_changelog.sh
gen_readme.sh
meson.build [new file with mode: 0644]
meson_options.txt [new file with mode: 0644]
plugins/Makefile.am [deleted file]
plugins/camera-import/Makefile.am [deleted file]
plugins/camera-import/camera-import.desktop.in
plugins/camera-import/meson.build [new file with mode: 0644]
plugins/export-jpeg/Makefile.am [deleted file]
plugins/export-jpeg/export-jpeg.desktop.in
plugins/export-jpeg/meson.build [new file with mode: 0644]
plugins/geocode-parameters/Makefile.am [deleted file]
plugins/geocode-parameters/meson.build [new file with mode: 0644]
plugins/image-crop/Makefile.am [deleted file]
plugins/image-crop/image-crop.desktop.in
plugins/image-crop/meson.build [new file with mode: 0644]
plugins/lens/Makefile.am [deleted file]
plugins/lens/meson.build [new file with mode: 0644]
plugins/meson.build [new file with mode: 0644]
plugins/random-image/Makefile.am [deleted file]
plugins/random-image/meson.build [new file with mode: 0644]
plugins/random-image/random-image.desktop.in
plugins/rotate/Makefile.am [deleted file]
plugins/rotate/meson.build [new file with mode: 0644]
plugins/rotate/rotate.desktop.in
plugins/symlink/Makefile.am [deleted file]
plugins/symlink/meson.build [new file with mode: 0644]
plugins/symlink/symlink.desktop.in
plugins/template.desktop.in
plugins/tethered-photography/Makefile.am [deleted file]
plugins/tethered-photography/meson.build [new file with mode: 0644]
plugins/tethered-photography/tethered-photography.desktop.in
po/meson.build [new file with mode: 0644]
scripts/generate-appimage.sh
src/Makefile.am [deleted file]
src/editors.c
src/exif-common.c
src/exif.c
src/exiv2.cc
src/format_canon.c
src/format_fuji.c
src/format_nikon.c
src/format_olympus.c
src/format_raw.c
src/icons/Makefile.am [deleted file]
src/icons/meson.build [new file with mode: 0644]
src/icons/svg/Makefile.am [deleted file]
src/layout_util.c
src/lua.c
src/main.c
src/main.h
src/meson.build [new file with mode: 0644]
src/misc.c
src/pan-view/Makefile.am [deleted file]
src/pan-view/meson.build [new file with mode: 0644]
src/ui_bookmark.c
src/ui_fileops.c
src/ui_fileops.h
src/ui_help.c
src/ui_menu.c
src/ui_misc.c
src/ui_pathsel.c
src/ui_spinner.c
src/ui_tabcomp.c
src/ui_tree_edit.c
src/ui_utildlg.c
src/view_file/Makefile.am [deleted file]
src/view_file/meson.build [new file with mode: 0644]
version.sh

index 3d6611c..714b0ec 100644 (file)
@@ -15,7 +15,6 @@ Makefile.in
 /config.cache
 /config.guess
 /config.h
-/config.h.in
 /config.log
 /config.report
 /config.status
@@ -67,10 +66,10 @@ Makefile.in
 /src/view_file/.deps
 /src/view_file/.dirstamp
 
+/build
 /build-stamp
 /debian/geeqie*
 /debian/files
-/doc/html/
 
 # The files that are autocreated(!)
 /src/gq-marshal.[ch]
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644 (file)
index 23693a8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-language: c
-os: linux
-dist: bionic
-sudo: required
-compiler:
-  - gcc
-  - clang
-before_install:
-  - sudo apt-get install -y autoconf automake autotools-dev build-essential debhelper dh-autoreconf dpkg-dev gnome-doc-utils gnome-doc-utils imagemagick intltool libexiv2-dev libgtk2.0-dev libjpeg-dev liblcms2-dev liblircclient-dev liblua5.1-0-dev libtiff-dev libtool
-script: (CFLAGS="-fPIC" ./autogen.sh) && make
diff --git a/.tx/config b/.tx/config
deleted file mode 100644 (file)
index 1c1c077..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-[main]
-host = https://www.transifex.com
-
-[geeqie.main]
-file_filter = po/<lang>.po
-source_file = po/geeqie.pot
-source_lang = en
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644 (file)
index 93a9b86..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-include $(top_srcdir)/aminclude.am
-
-SUBDIRS = src po doc plugins
-DIST_SUBDIRS = src po doc plugins
-
-man_MANS = geeqie.1
-
-readmedir = @readmedir@
-
-if HAVE_PANDOC
-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS README.html ChangeLog.html
-else
-readme_DATA = README.md COPYING ChangeLog TODO README.lirc AUTHORS ChangeLog.html
-endif
-
-desktopdir = $(datadir)/applications
-desktop_in_files = geeqie.desktop.in
-desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-icondir = $(datadir)/pixmaps
-icon_DATA = geeqie.png
-
-# Location defined by freedesktop.org
-if EXTERNAL_PREFIX
-appdatadir = $(datadir)/metainfo
-else
-appdatadir = /usr/share/metainfo
-endif
-appdata_DATA = $(appdata_in_files:.xml.in=.xml)
-appdata_in_files = org.geeqie.Geeqie.appdata.xml.in
-@INTLTOOL_XML_RULE@
-
-EXTRA_DIST = \
-       $(readme_DATA)  \
-       $(desktop_in_files)     \
-       $(icon_DATA)    \
-       geeqie.spec.in  \
-       geeqie.1        \
-       doxygen.conf    \
-       $(appdata_in_files)
-
-dist-hook: geeqie.spec
-       cp $(top_builddir)/geeqie.spec $(distdir)
-
-DISTCLEANFILES = config.report
-CLEANFILES = $(desktop_DATA) ChangeLog.html $(appdata_DATA)
-
-.PHONY: ChangeLog
-ChangeLog.html:
-       ./gen_changelog.sh
-
-README.html: README.md
-       ./gen_readme.sh
index b803ff4..ad751ff 100644 (file)
--- a/README.md
+++ b/README.md
@@ -22,9 +22,10 @@ The project website is <https://www.geeqie.org/> and you will find the latest so
 
 * [Features](#features)
 * [Downloading](#downloading)
-* [Installation](#manual-installation)
+* [Compiling and Installing](#compiling-and-installing)
 * [Notes and changes for the latest release](#notes-and-changes-for-the-latest-release)
 * [Requirements](#requirements)
+* [Required libraries](#required-libraries)
 
 ### Features
 
@@ -128,18 +129,31 @@ Either: `git clone git://git.geeqie.org/geeqie.git`
 
 Or: `git clone http://git.geeqie.org/git/geeqie.git`
 
-### Manual Installation
+### Compiling and Installing
 
-List compile options: `./autogen.sh --help`
+`meson setup build`  
+`ninja -C build install`
 
-Common options:
-`./autogen.sh --disable-gtk3`,
+List compile options:  
+`meson configure build`
 
-Compilation: `./autogen.sh [options]; make -j`
+Apply options e.g.:  
+`sudo ninja -C build uninstall`  
+`meson configure -Dpdf=enable -Dwebp=disable`  
+`ninja -C build install`
 
-Install: `[sudo] make install`
+Meaning of options:  
+`auto` If the library is not found, continue the installation  
+`enable` If the library is not found, stop the installation  
+`disable` Do not look for the library  
 
-Removal: `[sudo] make uninstall`
+Uninstall:  
+`sudo ninja -C build uninstall`
+
+Install new version:  
+`sudo ninja -C build uninstall`  
+`git pull`  
+`ninja -C build install`
 
 #### Note
 
@@ -147,7 +161,7 @@ It is recommended to always use `git clone  git://git.geeqie.org/geeqie.git` to
 
 However if you leave the folder intact, whenever new features or patches are available, execute:
 
-`git pull; sudo make uninstall; sudo make maintainer-clean; ./autogen.sh; make -j<no. of cpu cores>; sudo make install`
+`sudo ninja -C build uninstall; git pull; ninja -C build install`
 
 Only the changed sources are downloaded, which makes this a quick operation.
 
diff --git a/acinclude.m4 b/acinclude.m4
deleted file mode 100644 (file)
index 577ccf1..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-# This file is part of Autoconf.                       -*- Autoconf -*-\r
-\r
-# Copyright (C) 2004 Oren Ben-Kiki\r
-# This file is distributed under the same terms as the Autoconf macro files.\r
-\r
-########## CHANGELOG ##################\r
-# 2009-01-14 Martin Mann\r
-# * DX_ARG_ABLE : new variable 'DX_FLAG_DX_CURRENT_FEATURE'\r
-# * DX_CLEAR_DEPEND : use of explicit variable 'DX_FLAG_DX_CURRENT_FEATURE'\r
-#   in AC_SUBST instead of 'DX_FLAG[]DX_CURRENT_FEATURE' which is rejected by\r
-#   newer autotools  \r
-\r
-# Generate automatic documentation using Doxygen. Works in concert with the\r
-# aminclude.m4 file and a compatible doxygen configuration file. Defines the\r
-# following public macros:\r
-#\r
-# DX_???_FEATURE(ON|OFF) - control the default setting fo a Doxygen feature.\r
-# Supported features are 'DOXYGEN' itself, 'DOT' for generating graphics,\r
-# 'HTML' for plain HTML, 'CHM' for compressed HTML help (for MS users), 'CHI'\r
-# for generating a separate .chi file by the .chm file, and 'MAN', 'RTF',\r
-# 'XML', 'PDF' and 'PS' for the appropriate output formats. The environment\r
-# variable DOXYGEN_PAPER_SIZE may be specified to override the default 'a4wide'\r
-# paper size.\r
-#\r
-# By default, HTML, PDF and PS documentation is generated as this seems to be\r
-# the most popular and portable combination. MAN pages created by Doxygen are\r
-# usually problematic, though by picking an appropriate subset and doing some\r
-# massaging they might be better than nothing. CHM and RTF are specific for MS\r
-# (note that you can't generate both HTML and CHM at the same time). The XML is\r
-# rather useless unless you apply specialized post-processing to it.\r
-#\r
-# The macro mainly controls the default state of the feature. The use can\r
-# override the default by specifying --enable or --disable. The macros ensure\r
-# that contradictory flags are not given (e.g., --enable-doxygen-html and\r
-# --enable-doxygen-chm, --enable-doxygen-anything with --disable-doxygen, etc.)\r
-# Finally, each feature will be automatically disabled (with a warning) if the\r
-# required programs are missing.\r
-#\r
-# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN with\r
-# the following parameters: a one-word name for the project for use as a\r
-# filename base etc., an optional configuration file name (the default is\r
-# 'Doxyfile', the same as Doxygen's default), and an optional output directory\r
-# name (the default is 'doxygen-doc').\r
-\r
-## ----------##\r
-## Defaults. ##\r
-## ----------##\r
-\r
-DX_ENV=""\r
-AC_DEFUN([DX_FEATURE_doc],  ON)\r
-AC_DEFUN([DX_FEATURE_dot],  ON)\r
-AC_DEFUN([DX_FEATURE_man],  OFF)\r
-AC_DEFUN([DX_FEATURE_html], ON)\r
-AC_DEFUN([DX_FEATURE_chm],  OFF)\r
-AC_DEFUN([DX_FEATURE_chi],  OFF)\r
-AC_DEFUN([DX_FEATURE_rtf],  OFF)\r
-AC_DEFUN([DX_FEATURE_xml],  OFF)\r
-AC_DEFUN([DX_FEATURE_pdf],  ON)\r
-AC_DEFUN([DX_FEATURE_ps],   ON)\r
-\r
-## --------------- ##\r
-## Private macros. ##\r
-## --------------- ##\r
-\r
-# DX_ENV_APPEND(VARIABLE, VALUE)\r
-# ------------------------------\r
-# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen.\r
-AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])])\r
-\r
-# DX_DIRNAME_EXPR\r
-# ---------------\r
-# Expand into a shell expression prints the directory part of a path.\r
-AC_DEFUN([DX_DIRNAME_EXPR],\r
-         [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']])\r
-\r
-# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF)\r
-# -------------------------------------\r
-# Expands according to the M4 (static) status of the feature.\r
-AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])])\r
-\r
-# DX_REQUIRE_PROG(VARIABLE, PROGRAM)\r
-# ----------------------------------\r
-# Require the specified program to be found for the DX_CURRENT_FEATURE to work.\r
-AC_DEFUN([DX_REQUIRE_PROG], [\r
-AC_PATH_TOOL([$1], [$2])\r
-if test "$DX_FLAG_DX_CURRENT_FEATURE$$1" = 1; then\r
-    AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION])\r
-    AC_SUBST([DX_FLAG_DX_CURRENT_FEATURE], 0)\r
-fi\r
-])\r
-\r
-# DX_TEST_FEATURE(FEATURE)\r
-# ------------------------\r
-# Expand to a shell expression testing whether the feature is active.\r
-AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1])\r
-\r
-# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE)\r
-# -------------------------------------------------\r
-# Verify that a required features has the right state before trying to turn on\r
-# the DX_CURRENT_FEATURE.\r
-AC_DEFUN([DX_CHECK_DEPEND], [\r
-test "$DX_FLAG_$1" = "$2" \\r
-|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1,\r
-                            requires, contradicts) doxygen-DX_CURRENT_FEATURE])\r
-])\r
-\r
-# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE)\r
-# ----------------------------------------------------------\r
-# Turn off the DX_CURRENT_FEATURE if the required feature is off.\r
-AC_DEFUN([DX_CLEAR_DEPEND], [\r
-test "$DX_FLAG_$1" = "$2" || AC_SUBST([DX_FLAG_DX_CURRENT_FEATURE], 0)\r
-])\r
-\r
-\r
-# DX_FEATURE_ARG(FEATURE, DESCRIPTION,\r
-#                CHECK_DEPEND, CLEAR_DEPEND,\r
-#                REQUIRE, DO-IF-ON, DO-IF-OFF)\r
-# --------------------------------------------\r
-# Parse the command-line option controlling a feature. CHECK_DEPEND is called\r
-# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND),\r
-# otherwise CLEAR_DEPEND is called to turn off the default state if a required\r
-# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional\r
-# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and\r
-# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature.\r
-AC_DEFUN([DX_ARG_ABLE], [\r
-    AC_DEFUN([DX_CURRENT_FEATURE], [$1])\r
-    AC_DEFUN([DX_FLAG_DX_CURRENT_FEATURE], [DX_FLAG_$1])\r
-    AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2])\r
-    AC_ARG_ENABLE(doxygen-$1,\r
-                  [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1],\r
-                                                      [--enable-doxygen-$1]),\r
-                                  DX_IF_FEATURE([$1], [don't $2], [$2]))],\r
-                  [\r
-case "$enableval" in\r
-#(\r
-y|Y|yes|Yes|YES)\r
-    AC_SUBST([DX_FLAG_$1], 1)\r
-    $3\r
-;; #(\r
-n|N|no|No|NO)\r
-    AC_SUBST([DX_FLAG_$1], 0)\r
-;; #(\r
-*)\r
-    AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1])\r
-;;\r
-esac\r
-], [\r
-AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)])\r
-$4\r
-])\r
-if DX_TEST_FEATURE([$1]); then\r
-    $5\r
-    :\r
-fi\r
-if DX_TEST_FEATURE([$1]); then\r
-    AM_CONDITIONAL(DX_COND_$1, :)\r
-    $6\r
-    :\r
-else\r
-    AM_CONDITIONAL(DX_COND_$1, false)\r
-    $7\r
-    :\r
-fi\r
-])\r
-\r
-## -------------- ##\r
-## Public macros. ##\r
-## -------------- ##\r
-\r
-# DX_XXX_FEATURE(DEFAULT_STATE)\r
-# -----------------------------\r
-AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc],  [$1])])\r
-AC_DEFUN([DX_MAN_FEATURE],     [AC_DEFUN([DX_FEATURE_man],  [$1])])\r
-AC_DEFUN([DX_HTML_FEATURE],    [AC_DEFUN([DX_FEATURE_html], [$1])])\r
-AC_DEFUN([DX_CHM_FEATURE],     [AC_DEFUN([DX_FEATURE_chm],  [$1])])\r
-AC_DEFUN([DX_CHI_FEATURE],     [AC_DEFUN([DX_FEATURE_chi],  [$1])])\r
-AC_DEFUN([DX_RTF_FEATURE],     [AC_DEFUN([DX_FEATURE_rtf],  [$1])])\r
-AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])\r
-AC_DEFUN([DX_XML_FEATURE],     [AC_DEFUN([DX_FEATURE_xml],  [$1])])\r
-AC_DEFUN([DX_PDF_FEATURE],     [AC_DEFUN([DX_FEATURE_pdf],  [$1])])\r
-AC_DEFUN([DX_PS_FEATURE],      [AC_DEFUN([DX_FEATURE_ps],   [$1])])\r
-\r
-# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR])\r
-# ---------------------------------------------------------\r
-# PROJECT also serves as the base name for the documentation files.\r
-# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc".\r
-AC_DEFUN([DX_INIT_DOXYGEN], [\r
-\r
-# Files:\r
-AC_SUBST([DX_PROJECT], [$1])\r
-AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])])\r
-AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])])\r
-\r
-# Environment variables used inside doxygen.cfg:\r
-DX_ENV_APPEND(SRCDIR, $srcdir)\r
-DX_ENV_APPEND(PROJECT, $DX_PROJECT)\r
-DX_ENV_APPEND(DOCDIR, $DX_DOCDIR)\r
-DX_ENV_APPEND(VERSION, $PACKAGE_VERSION)\r
-\r
-# Doxygen itself:\r
-DX_ARG_ABLE(doc, [generate any doxygen documentation],\r
-            [],\r
-            [],\r
-            [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen)\r
-             DX_REQUIRE_PROG([DX_PERL], perl)],\r
-            [DX_ENV_APPEND(PERL_PATH, $DX_PERL)])\r
-\r
-# Dot for graphics:\r
-DX_ARG_ABLE(dot, [generate graphics for doxygen documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [DX_REQUIRE_PROG([DX_DOT], dot)],\r
-            [DX_ENV_APPEND(HAVE_DOT, YES)\r
-             DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])],\r
-            [DX_ENV_APPEND(HAVE_DOT, NO)])\r
-\r
-# Man pages generation:\r
-DX_ARG_ABLE(man, [generate doxygen manual pages],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [],\r
-            [DX_ENV_APPEND(GENERATE_MAN, YES)],\r
-            [DX_ENV_APPEND(GENERATE_MAN, NO)])\r
-\r
-# RTF file generation:\r
-DX_ARG_ABLE(rtf, [generate doxygen RTF documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [],\r
-            [DX_ENV_APPEND(GENERATE_RTF, YES)],\r
-            [DX_ENV_APPEND(GENERATE_RTF, NO)])\r
-\r
-# XML file generation:\r
-DX_ARG_ABLE(xml, [generate doxygen XML documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [],\r
-            [DX_ENV_APPEND(GENERATE_XML, YES)],\r
-            [DX_ENV_APPEND(GENERATE_XML, NO)])\r
-\r
-# (Compressed) HTML help generation:\r
-DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [DX_REQUIRE_PROG([DX_HHC], hhc)],\r
-            [DX_ENV_APPEND(HHC_PATH, $DX_HHC)\r
-             DX_ENV_APPEND(GENERATE_HTML, YES)\r
-             DX_ENV_APPEND(GENERATE_HTMLHELP, YES)],\r
-            [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)])\r
-\r
-# Separate CHI file generation.\r
-DX_ARG_ABLE(chi, [generate doxygen separate compressed HTML help index file],\r
-            [DX_CHECK_DEPEND(chm, 1)],\r
-            [DX_CLEAR_DEPEND(chm, 1)],\r
-            [],\r
-            [DX_ENV_APPEND(GENERATE_CHI, YES)],\r
-            [DX_ENV_APPEND(GENERATE_CHI, NO)])\r
-\r
-# Plain HTML pages generation:\r
-DX_ARG_ABLE(html, [generate doxygen plain HTML documentation],\r
-            [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)],\r
-            [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)],\r
-            [],\r
-            [DX_ENV_APPEND(GENERATE_HTML, YES)],\r
-            [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)])\r
-\r
-# PostScript file generation:\r
-DX_ARG_ABLE(ps, [generate doxygen PostScript documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [DX_REQUIRE_PROG([DX_LATEX], latex)\r
-             DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)\r
-             DX_REQUIRE_PROG([DX_DVIPS], dvips)\r
-             DX_REQUIRE_PROG([DX_EGREP], egrep)])\r
-\r
-# PDF file generation:\r
-DX_ARG_ABLE(pdf, [generate doxygen PDF documentation],\r
-            [DX_CHECK_DEPEND(doc, 1)],\r
-            [DX_CLEAR_DEPEND(doc, 1)],\r
-            [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex)\r
-             DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex)\r
-             DX_REQUIRE_PROG([DX_EGREP], egrep)])\r
-\r
-# LaTeX generation for PS and/or PDF:\r
-if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then\r
-    AM_CONDITIONAL(DX_COND_latex, :)\r
-    DX_ENV_APPEND(GENERATE_LATEX, YES)\r
-else\r
-    AM_CONDITIONAL(DX_COND_latex, false)\r
-    DX_ENV_APPEND(GENERATE_LATEX, NO)\r
-fi\r
-\r
-# Paper size for PS and/or PDF:\r
-AC_ARG_VAR(DOXYGEN_PAPER_SIZE,\r
-           [a4wide (default), a4, letter, legal or executive])\r
-case "$DOXYGEN_PAPER_SIZE" in\r
-#(\r
-"")\r
-    AC_SUBST(DOXYGEN_PAPER_SIZE, "")\r
-;; #(\r
-a4wide|a4|letter|legal|executive)\r
-    DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE)\r
-;; #(\r
-*)\r
-    AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE'])\r
-;;\r
-esac\r
-\r
-#For debugging:\r
-#echo DX_FLAG_doc=$DX_FLAG_doc\r
-#echo DX_FLAG_dot=$DX_FLAG_dot\r
-#echo DX_FLAG_man=$DX_FLAG_man\r
-#echo DX_FLAG_html=$DX_FLAG_html\r
-#echo DX_FLAG_chm=$DX_FLAG_chm\r
-#echo DX_FLAG_chi=$DX_FLAG_chi\r
-#echo DX_FLAG_rtf=$DX_FLAG_rtf\r
-#echo DX_FLAG_xml=$DX_FLAG_xml\r
-#echo DX_FLAG_pdf=$DX_FLAG_pdf\r
-#echo DX_FLAG_ps=$DX_FLAG_ps\r
-#echo DX_ENV=$DX_ENV\r
-])\r
diff --git a/aminclude.am b/aminclude.am
deleted file mode 100644 (file)
index 420049e..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-# Copyright (C) 2004 Oren Ben-Kiki
-# This file is distributed under the same terms as the Automake macro files.
-
-# Generate automatic documentation using Doxygen. Goals and variables values
-# are controlled by the various DX_COND_??? conditionals set by autoconf.
-#
-# The provided goals are:
-# doxygen-doc: Generate all doxygen documentation.
-# doxygen-run: Run doxygen, which will generate some of the documentation
-#              (HTML, CHM, CHI, MAN, RTF, XML) but will not do the post
-#              processing required for the rest of it (PS, PDF, and some MAN).
-# doxygen-man: Rename some doxygen generated man pages.
-# doxygen-ps: Generate doxygen PostScript documentation.
-# doxygen-pdf: Generate doxygen PDF documentation.
-#
-# Note that by default these are not integrated into the automake goals. If
-# doxygen is used to generate man pages, you can achieve this integration by
-# setting man3_MANS to the list of man pages generated and then adding the
-# dependency:
-#
-#   $(man3_MANS): doxygen-doc
-#
-# This will cause make to run doxygen and generate all the documentation.
-#
-# The following variable is intended for use in Makefile.am:
-#
-# DX_CLEANFILES = everything to clean.
-#
-# This is usually added to MOSTLYCLEANFILES.
-
-## --------------------------------- ##
-## Format-independent Doxygen rules. ##
-## --------------------------------- ##
-
-if DX_COND_doc
-
-## ------------------------------- ##
-## Rules specific for HTML output. ##
-## ------------------------------- ##
-
-if DX_COND_html
-
-DX_CLEAN_HTML = @DX_DOCDIR@/html
-
-endif DX_COND_html
-
-## ------------------------------ ##
-## Rules specific for CHM output. ##
-## ------------------------------ ##
-
-if DX_COND_chm
-
-DX_CLEAN_CHM = @DX_DOCDIR@/chm
-
-if DX_COND_chi
-
-DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi
-
-endif DX_COND_chi
-
-endif DX_COND_chm
-
-## ------------------------------ ##
-## Rules specific for MAN output. ##
-## ------------------------------ ##
-
-if DX_COND_man
-
-DX_CLEAN_MAN = @DX_DOCDIR@/man
-
-endif DX_COND_man
-
-## ------------------------------ ##
-## Rules specific for RTF output. ##
-## ------------------------------ ##
-
-if DX_COND_rtf
-
-DX_CLEAN_RTF = @DX_DOCDIR@/rtf
-
-endif DX_COND_rtf
-
-## ------------------------------ ##
-## Rules specific for XML output. ##
-## ------------------------------ ##
-
-if DX_COND_xml
-
-DX_CLEAN_XML = @DX_DOCDIR@/xml
-
-endif DX_COND_xml
-
-## ----------------------------- ##
-## Rules specific for PS output. ##
-## ----------------------------- ##
-
-if DX_COND_ps
-
-DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps
-
-DX_PS_GOAL = doxygen-ps
-
-doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps
-
-@DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag
-       cd @DX_DOCDIR@/latex; \
-       rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-       $(DX_LATEX) refman.tex; \
-       $(MAKEINDEX_PATH) refman.idx; \
-       $(DX_LATEX) refman.tex; \
-       countdown=5; \
-       while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-                         refman.log > /dev/null 2>&1 \
-          && test $$countdown -gt 0; do \
-           $(DX_LATEX) refman.tex; \
-           countdown=`expr $$countdown - 1`; \
-       done; \
-       $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi
-
-endif DX_COND_ps
-
-## ------------------------------ ##
-## Rules specific for PDF output. ##
-## ------------------------------ ##
-
-if DX_COND_pdf
-
-DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf
-
-DX_PDF_GOAL = doxygen-pdf
-
-doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf
-
-@DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag
-       cd @DX_DOCDIR@/latex; \
-       rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \
-       $(DX_PDFLATEX) refman.tex; \
-       $(DX_MAKEINDEX) refman.idx; \
-       $(DX_PDFLATEX) refman.tex; \
-       countdown=5; \
-       while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \
-                         refman.log > /dev/null 2>&1 \
-          && test $$countdown -gt 0; do \
-           $(DX_PDFLATEX) refman.tex; \
-           countdown=`expr $$countdown - 1`; \
-       done; \
-       mv refman.pdf ../@PACKAGE@.pdf
-
-endif DX_COND_pdf
-
-## ------------------------------------------------- ##
-## Rules specific for LaTeX (shared for PS and PDF). ##
-## ------------------------------------------------- ##
-
-if DX_COND_latex
-
-DX_CLEAN_LATEX = @DX_DOCDIR@/latex
-
-endif DX_COND_latex
-
-.PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-.INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag
-
-doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL)
-
-@DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS)
-       rm -rf @DX_DOCDIR@
-       $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG)
-
-DX_CLEANFILES = \
-    @DX_DOCDIR@/@PACKAGE@.tag \
-    -r \
-    $(DX_CLEAN_HTML) \
-    $(DX_CLEAN_CHM) \
-    $(DX_CLEAN_CHI) \
-    $(DX_CLEAN_MAN) \
-    $(DX_CLEAN_RTF) \
-    $(DX_CLEAN_XML) \
-    $(DX_CLEAN_PS) \
-    $(DX_CLEAN_PDF) \
-    $(DX_CLEAN_LATEX)
-
-endif DX_COND_doc
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755 (executable)
index 9a32605..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-#this was originally taken from the gnome macros/autogen.sh scripts
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-(test -f $srcdir/configure.ac\
-  && test -f $srcdir/src/main.c \
-  && test -f $srcdir/src/main.h) || {
-    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
-    echo " top-level geeqie directory"
-    exit 1
-}
-
-DIE=0
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`autoconf' installed."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null) && {
-  (grep "sed.*POTFILES" $srcdir/configure.ac) >/dev/null || \
-  (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`glib-gettextize' installed."
-    echo "glib-gettextize is a part of glib."
-    echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
-    DIE=1
-  }
-}
-
-(intltoolize --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`intltoolize' installed" 
-  DIE=1
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`automake' installed."
-  echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-  NO_AUTOMAKE=yes
-}
-
-# if no automake, don't bother testing for aclocal
-test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
-  echo "installed doesn't appear recent enough."
-  echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-if test "$DIE" -eq 1; then
-  exit 1
-fi
-
-if test -z "$*"; then
-  echo "**Warning**: I am going to run \`configure' with no arguments."
-  echo "If you wish to pass any to it, please specify them on the"
-  echo \`$0\'" command line."
-  echo
-fi
-
-case $CC in
-xlc )
-  am_opt=--include-deps;;
-esac
-
-auxdir="`sed -ne 's/^[ \t]*A._CONFIG_AUX_DIR *( *\([^ )]*\).*/\1/p' $srcdir/configure.ac`"
-if test -n "$auxdir"; then
-  if test ! -d "$srcdir/$auxdir"; then
-    mkdir -p "$srcdir/$auxdir"
-  fi                                                                            fi
-
-for coin in `find $srcdir -name configure.ac -print`
-do 
-  dr=`dirname $coin`
-  if test -f $dr/NO-AUTO-GEN; then
-    echo skipping $dr -- flagged as no auto-gen
-  else
-    echo processing $dr
-    macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin`
-    ( cd $dr
-      aclocalinclude="$ACLOCAL_FLAGS"
-      for k in $macrodirs; do
-       if test -d $k; then
-          aclocalinclude="$aclocalinclude -I $k"
-       ##else 
-       ##  echo "**Warning**: No such directory \`$k'.  Ignored."
-        fi
-      done
-      if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then
-       if grep "sed.*POTFILES" configure.ac >/dev/null; then
-         : do nothing -- we still have an old unmodified configure.ac
-       else
-         echo "Creating $dr/aclocal.m4 ..."
-         test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
-         echo "Running glib-gettextize..."
-         echo "no" | glib-gettextize --force --copy
-         echo "Running intltoolize"
-         intltoolize --copy --force --automake
-         if intltoolize --version | grep -q ' 0.40.6'; then
-                 echo "Workaround intltoolize 0.40.6 bug (LINGUAS)"
-                 sed "s:'\^\$\$lang\$\$':\^\$\$lang\$\$:g" -i po/Makefile.in.in
-         fi
-         echo "Making $dr/aclocal.m4 writable ..."
-         test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
-        fi
-      fi
-      echo "Running aclocal $aclocalinclude ..."
-      aclocal $aclocalinclude
-      if grep "^AC_CONFIG_HEADER" configure.ac >/dev/null; then
-       echo "Running autoheader..."
-       autoheader
-      fi
-      echo "Running automake --gnu $am_opt ..."
-      automake --add-missing --gnu $am_opt
-      echo "Running autoconf ..."
-      autoconf
-    )
-  fi
-done
-
-conf_flags="--enable-maintainer-mode" #--enable-iso-c
-
-if test x$NOCONFIGURE = x; then
-  echo Running $srcdir/configure $conf_flags "$@" ...
-  $srcdir/configure $conf_flags "$@" \
-  && echo Now type \`make\' to compile $PKG_NAME
-else
-  echo Skipping configure process.
-fi
diff --git a/config.h.in b/config.h.in
new file mode 100644 (file)
index 0000000..65bdb49
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ *  This file is a part of Geeqie project (https://www.geeqie.org/).
+ *  Copyright (C) 2008 - 2022 The Geeqie Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ */
+
+#ifndef _INCLUDE_CONFIG_H
+#define _INCLUDE_CONFIG_H
+
+#mesondefine DEBUG
+
+/* Directories defines */
+
+/* Location of application data */
+#mesondefine GQ_APPDIR
+
+/* Location of helper scripts and executables */
+#mesondefine GQ_BINDIR
+
+/* Location of documentation files */
+#mesondefine GQ_HELPDIR
+
+/* Location of html documentation */
+#mesondefine GQ_HTMLDIR 
+
+/* Define the location where the catalogs will be installed */
+#mesondefine GQ_LOCALEDIR
+
+
+/* Optional project features */
+
+/* Name of gettext file */
+/*#mesondefine GETTEXT_PACKAGE*/
+
+/* Define to enable archive support */
+#mesondefine HAVE_ARCHIVE
+
+/* Define to enable use of clutter library */
+#mesondefine HAVE_CLUTTER
+
+/* Define to enable DjVu support */
+#mesondefine HAVE_DJVU
+
+/* Define to enable exiv2 support */
+#mesondefine HAVE_EXIV2
+
+/* Define to enable ffmpegthumbnailer support */
+#mesondefine HAVE_FFMPEGTHUMBNAILER
+
+/* Define if ffmpegthumbnailer supports embedded metadata */
+#define HAVE_FFMPEGTHUMBNAILER_METADATA
+
+/* Define if ffmpegthumbnailer supports raw RGB output */
+#mesondefine HAVE_FFMPEGTHUMBNAILER_RGB
+
+/* Define if ffmpegthumbnailer supports specifying size by width/height */
+#mesondefine HAVE_FFMPEGTHUMBNAILER_WH
+
+/* Define to enable heif support */
+#mesondefine HAVE_HEIF
+
+/* Define to enable j2k support */
+#mesondefine HAVE_J2K
+
+/* Define to enable use of custom jpeg loader */
+#mesondefine HAVE_JPEG
+
+/* Define to enable JPEG XL support */
+#mesondefine HAVE_JPEGXL
+
+/* color profiles with lcms */
+#mesondefine HAVE_LCMS
+
+/* Define to enable use of lcms2 */
+#mesondefine HAVE_LCMS2
+
+/* Define to enable use of maps */
+#mesondefine HAVE_LIBCHAMPLAIN
+
+/* Define to enable use of maps */
+#mesondefine HAVE_LIBCHAMPLAIN_GTK
+
+/* Define to 1 if LIRC must be used */
+#mesondefine HAVE_LIRC
+
+/* Define to enable lua support */
+#mesondefine HAVE_LUA
+
+/* Define if _NL_TIME_FIRST_WEEKDAY is available */
+#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
+
+/* Define to enable pdf support */
+#mesondefine HAVE_PDF
+
+/* Define to enable libraw support */
+#mesondefine HAVE_RAW
+
+/* Define to enable libgspell support */
+#mesondefine HAVE_SPELL
+
+/* Define to enable use of custom tiff loader */
+#mesondefine HAVE_TIFF
+
+/* Define to enable webp support */
+#mesondefine HAVE_WEBP
+
+
+/* Version number of package */
+#mesondefine VERSION
+
+/* Name of package */
+#mesondefine PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "geeqie@freelists.org"
+
+/* Define to the full name of this package. */
+#mesondefine PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#mesondefine PACKAGE_STRING 
+
+/* Define to the one symbol short name of this package. */
+#mesondefine PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://www.geeqie.org/"
+
+/* Define to the version of this package. */
+#mesondefine PACKAGE_VERSION
+
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
+#define HAVE_LC_MESSAGES 1 no longr requierd
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1 not required
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strverscmp' function. */
+#define HAVE_STRVERSCMP 1 used
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the `access' function. */
+#define HAVE_ACCESS 1
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
+#define HAVE_BIND_TEXTDOMAIN_CODESET 1
+
+/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
+   CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
+   the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
+/* Define to 1 if you have the `dcgettext' function. */
+#define HAVE_DCGETTEXT 1
+
+/* Define to 1 if you have the `fflush' function. */
+#define HAVE_FFLUSH 1
+
+/* Define to 1 if you have the `fsync' function. */
+#define HAVE_FSYNC 1
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#define HAVE_GETTEXT 1
+
+/* Define if you have gthread library */
+#define HAVE_GTHREAD 1 used
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Build on native win32 OS */
+/* #undef OS_WIN32 */
+
+/* always defined to indicate that i18n is enabled */
+#define ENABLE_NLS 1
+
+/* Build on win32 OS */
+/* #undef PLATFORM_WIN32 */
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+#endif
diff --git a/configure.ac b/configure.ac
deleted file mode 100644 (file)
index bbd30fd..0000000
+++ /dev/null
@@ -1,929 +0,0 @@
-dnl Process this file with autoconf to produce a configure script.  -*- Autoconf
- -*-
-
-dnl This file is a part of Geeqie project (https://www.geeqie.org/).
-dnl Copyright (C) 2008 - 2018 The Geeqie Team
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-dnl GNU General Public License for more details.
-
-AC_PREREQ(2.57)
-AC_INIT([geeqie], m4_translit(m4_esyscmd([./version.sh]), m4_newline), [geeqie@freelists.org], [], [https://www.geeqie.org/])
-
-# Add -Werror to the default CFLAGS
-CFLAGS+=" -Werror -Wno-error=deprecated-declarations -Wno-error=sign-compare -Wno-error=return-type"
-
-# Check for rightly dirs
-AC_CONFIG_SRCDIR([src/main.c])
-
-AC_CONFIG_AUX_DIR(auxdir)
-# Require Automake 1.14 for %reldir% support
-AM_INIT_AUTOMAKE([1.14.1 subdir-objects foreign dist-xz no-dist-gzip tar-ustar])
-
-AC_CONFIG_HEADER([config.h])
-
-# Only for developers
-AM_MAINTAINER_MODE
-
-# Silent build for automake >= 1.11
-m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
-AC_ARG_ENABLE(developer, [
-Development options:
-AC_HELP_STRING([--enable-developer], [turn on developers mode [default=no]])],
-[
-  __IS_DEVELOPER=yes
-],
-[
-if test "x${enable_developer}" != "xyes"
-then
-  __IS_DEVELOPER=no
-else
-  __IS_DEVELOPER=yes
-fi
-])
-
-DX_HTML_FEATURE(ON)
-DX_CHM_FEATURE(OFF)
-DX_CHI_FEATURE(OFF)
-DX_MAN_FEATURE(OFF)
-DX_RTF_FEATURE(OFF)
-DX_XML_FEATURE(OFF)
-DX_PDF_FEATURE(OFF)
-DX_PS_FEATURE(OFF)
-
-DX_INIT_DOXYGEN($PACKAGE_NAME, doxygen.conf, doc/doxygen)
-
-#  Debug support
-# ----------------------------------------------------------------------
-
-dnl Debugging option
-dnl FIXME: official release convert default to 'no'
-dnl
-
-AC_ARG_ENABLE([debug-flags], [
-Development options:
-AC_HELP_STRING([--enable-debug-flags], [use compiler flags for debugging [default=no]])], [],
-[
-if test "x${enable_developer}" != "xyes"
-then
-  enable_debug_flags="no"
-else
-  enable_debug_flags="yes"
-fi
-])
-
-AC_ARG_ENABLE([debug-log], [
-Development options:
-AC_HELP_STRING([--enable-debug-log], [enable debugging messages [default=yes]])], [], [enable_debug_log="yes"])
-
-if test "x${enable_debug_flags}" != "xno"
-then
-  if test "x${enable_developer}" = "xyes"
-  then
-    CXXFLAGS="${CXXFLAGS} -Wall"
-    CFLAGS="${CFLAGS} -Wstrict-prototypes -Wall"
-  fi
-  __COMMONFLAGS="-g -O0 -Wextra -Wunused-value -Wunused-variable -Wunused-function -Wunused-label -Wcomment -Wmissing-braces -Wparentheses -Wreturn-type -Wswitch -Wstrict-aliasing -Wno-unused-parameter -Wformat -Wformat-security -DGQ_DEBUG_PATH_UTF8=1"
-  CXXFLAGS="${CXXFLAGS} ${__COMMONFLAGS}"
-  CFLAGS="${CFLAGS} ${__COMMONFLAGS} -Wimplicit-int -Werror-implicit-function-declaration"
-  __IS_DEBUG_FLAGS=yes
-else
-  __IS_DEBUG_FLAGS=no
-fi
-
-if test "x${enable_debug_log}" != "xno"
-then
-  AC_DEFINE(DEBUG,1,[Defined if Geeqie is compiled with debugging messages support])
-  __IS_DEBUG_LOG=yes
-else
-  __IS_DEBUG_LOG=no
-fi
-
-AM_CONDITIONAL(DEBUG, test x$enable_debug_flags = xyes)
-
-AC_ARG_ENABLE(deprecated, [
-AC_HELP_STRING([--enable-deprecated], [turn off checking of deprecated functions [default=yes]])], [],
-[
-if test "x${enable_developer}" != "xyes"
-then
-  enable_deprecated="no"
-else
-  enable_deprecated="yes"
-fi
-])
-
-if test "x${enable_deprecated}" != "xno"
-then
-  CXXFLAGS="${CXXFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
-  CFLAGS="${CFLAGS} -DGTK_DISABLE_DEPRECATED=1 -DGDK_DISABLE_DEPRECATED=1 -DGDK_PIXBUF_DISABLE_DEPRECATED=1 -DG_DISABLE_DEPRECATED=1"
-  __IS_DEPRECATED=yes
-else
-  __IS_DEPRECATED=no
-fi
-
-
-AC_ISC_POSIX
-AC_PROG_CC
-AC_PROG_CC_C99
-AC_PROG_CXX
-AC_STDC_HEADERS
-AC_ARG_PROGRAM
-AC_SYS_LARGEFILE
-IT_PROG_INTLTOOL([0.35.0])
-
-
-dnl checks for functions
-AC_CHECK_FUNCS(strverscmp access fsync fflush)
-
-
-# Check target architecture
-
-# Check for Win32
-AC_MSG_CHECKING([for some Win32 platform])
-case "$target_os" in
-  mingw* | cygwin*)
-    platform_win32=yes
-    AC_DEFINE(PLATFORM_WIN32, 1, [Build on win32 OS])
-    ;;
-  *)
-    platform_win32=no
-    ;;
-esac
-AC_MSG_RESULT([$platform_win32])
-AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
-
-AC_MSG_CHECKING([for native Win32])
-case "$target_os" in
-  mingw*)
-    os_win32=yes
-    AC_DEFINE(OS_WIN32, 1, [Build on native win32 OS])
-    os_unix=no
-    PATHSEP=';'
-    ;;
-  *)
-    os_win32=no
-    os_unix=yes
-    PATHSEP=':'
-    ;;
-esac
-AC_MSG_RESULT([$os_win32])
-AC_SUBST(PATHSEP)
-AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes")
-AM_CONDITIONAL(OS_UNIX, test "$os_unix" = "yes")
-
-if test "$os_win32" = "yes"; then
-  AC_CHECK_PROG(ms_librarian, lib.exe, yes, no)
-  AC_CHECK_TOOL(WINDRES, windres, :)
-else
-  WINDRES=":"
-fi
-
-AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
-AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != "x:")
-AC_SUBST(WINDRES)
-
-AM_CONDITIONAL([EXTERNAL_PREFIX], [test "x$prefix" != "xNONE"])
-
-dnl reasonable guesses for where stuff is installed
-if test "x$prefix" = "xNONE"; then
-  prefix="/usr/local"
-else
-  prefix=$prefix
-fi
-
-AM_PATH_GLIB_2_0(2.52.0,,AC_MSG_ERROR(GLIB >= 2.52.0 not installed.))
-AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [auto], [no])])
-
-if test x$gtk3 = xyes; then
-    AC_MSG_WARN("Gtk3 enabled")
-    m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))])
-else
-    if test x$gtk3 != xno; then
-       AC_MSG_WARN("Gtk3 is preferred...")
-       m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,[gtk3=no])])
-    fi
-fi
-
-if test x$gtk3 = xno; then
-    m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.20.0,,AC_MSG_ERROR(GTK+ >= 2.20.0 not installed.))])
-    true
-fi
-
-threads="auto"
-AC_ARG_ENABLE([threads],
-  AC_HELP_STRING([--disable-threads], [disable thread support]), [threads="${enableval}"])
-
-have_gthread="no"
-if test "x${threads}" != "xno" ; then
-  PKG_CHECK_MODULES(GTHREAD, [gthread-2.0], have_gthread="yes", [AC_MSG_WARN("No thread support in glib")])
-fi
-
-if test "x$have_gthread" != "xno"; then
-        AC_DEFINE(HAVE_GTHREAD, 1, Define if you have gthread library)
-        GLIB_CFLAGS="$GTHREAD_CFLAGS"
-        GLIB_LIBS="$GTHREAD_LIBS"
-fi
-
-
-AC_PATH_PROGS(GDK_PIXBUF_CSOURCE, "gdk-pixbuf-csource")
-AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal)
-
-AC_ARG_WITH(readmedir, [  --with-readmedir=DIR    install path for readme files],
-            readmedir=$withval, readmedir="$prefix/share/doc/geeqie-$VERSION")
-AC_ARG_WITH(htmldir, [  --with-htmldir=DIR      install path for html files],
-            htmldir=$withval, htmldir="$readmedir/html")
-
-AC_DEFINE_UNQUOTED(GQ_HELPDIR, "$readmedir", [Location of documentation files])
-AC_DEFINE_UNQUOTED(GQ_HTMLDIR, "$htmldir", [Location of html documentation])
-
-AC_PATH_PROG(GNOME_DOC_TOOL, yelp-build)
-
-AC_SUBST(readmedir)
-AC_SUBST(htmldir)
-
-eval "eval appdir=${datadir}/${PACKAGE}"
-AC_DEFINE_UNQUOTED([GQ_APP_DIR], "$appdir", [Location of application data])
-AC_SUBST(appdir)
-
-eval "eval gq_bindir=${prefix}/lib/${PACKAGE}"
-AC_DEFINE_UNQUOTED([GQ_BIN_DIR], "$gq_bindir", [Location of helper scripts and executables])
-AC_SUBST(gq_bindir)
-
-#  LIRC support
-# ----------------------------------------------------------------------
-
-dnl Check for LIRC client support
-AC_MSG_CHECKING(if LIRC support is enabled)
-lirc=no
-AC_ARG_ENABLE([lirc],
-  AC_HELP_STRING([--disable-lirc], [disable lirc support (auto)]),
-[
-if test "x${enableval}" = "xyes" -a "x$GCC" = "xyes"; then
-  AC_MSG_RESULT(yes)
-  lirc=yes
-else
-  AC_MSG_RESULT(no)
-  lirc=no
-fi], AC_MSG_RESULT(no))
-
-
-AC_ARG_WITH(lirc-prefix,
-[  --with-lirc-prefix=PATH Prefix where LIRC is installed],
-[
-for dir in `echo "$withval" | tr : ' '`; do
-  if test -d $dir/lib; then CXXFLAGS="$CXXFLAGS -L$dir/lib"; fi
-  if test -d $dir/include; then CXXFLAGS="$CXXFLAGS -I$dir/include"; fi
-  done
-])
-
-HAVE_LIRC=no
-if test "x${lirc}" != "xno" ; then
-  AC_CHECK_HEADER(lirc/lirc_client.h,
-    [AC_CHECK_LIB(lirc_client,lirc_init,[HAVE_LIRC=yes;LIBS=-llirc_client $LIBS;AC_DEFINE([HAVE_LIRC],[],[Define to 1 if LIRC must be used])],,)],)
-fi
-AM_CONDITIONAL(HAVE_LIRC, [test "x$HAVE_LIRC" = xyes])
-
-
-#  LCMS support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([lcms],
-  AC_HELP_STRING([--disable-lcms], [disable lcms support]),
-    [liblcms=$enableval], [liblcms=auto])
-
-if test "x${liblcms}" != "xno"; then
-  PKG_CHECK_MODULES(LCMS, [lcms2 >= 2.0],
-    [
-      HAVE_LCMS=yes
-      AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
-      AC_DEFINE(HAVE_LCMS2, 1, [lcms2 is used])
-    ],
-    [
-    PKG_CHECK_MODULES(LCMS, [lcms >= 1.14],
-      [
-        HAVE_LCMS=yes
-        AC_DEFINE(HAVE_LCMS, 1, [define to enable use of color profiles with lcms])
-      ],
-      [
-        HAVE_LCMS=no
-        AC_MSG_WARN([$LCMS_PKG_ERRORS])
-      ])
-    ])
-else
-  HAVE_LCMS=disabled
-fi
-
-AM_CONDITIONAL(HAVE_LCMS, [test "x$HAVE_LCMS" = xyes])
-AC_SUBST(LCMS_CFLAGS)
-AC_SUBST(LCMS_LIBS)
-
-#  libjpeg support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([jpeg],
-  AC_HELP_STRING([--disable-jpeg], [disable direct jpeg support]),
-    [libjpeg=$enableval], [libjpeg=auto])
-
-if test "x${libjpeg}" != "xno"; then
-  AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
-      HAVE_JPEG=yes
-      JPEG_LIBS=-ljpeg
-      AC_DEFINE(HAVE_JPEG, 1, [define to enable use of custom jpeg loader]),
-      HAVE_JPEG=no)
-else
-  HAVE_JPEG=disabled
-fi
-
-AM_CONDITIONAL(HAVE_JPEG, [test "x$HAVE_JPEG" = xyes])
-AC_SUBST(JPEG_CFLAGS)
-AC_SUBST(JPEG_LIBS)
-
-
-#  libtiff support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([tiff],
-  AC_HELP_STRING([--disable-tiff], [disable direct tiff support]),
-    [libtiff=$enableval], [libtiff=auto])
-
-if test "x${libtiff}" != "xno"; then
-  AC_CHECK_LIB(tiff, TIFFClientOpen,
-      HAVE_TIFF=yes
-      TIFF_LIBS=-ltiff
-      AC_DEFINE(HAVE_TIFF, 1, [define to enable use of custom tiff loader]),
-      HAVE_TIFF=no)
-else
-  HAVE_TIFF=disabled
-fi
-
-AM_CONDITIONAL(HAVE_TIFF, [test "x$HAVE_TIFF" = xyes])
-AC_SUBST(TIFF_CFLAGS)
-AC_SUBST(TIFF_LIBS)
-
-#  libraw support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([raw],
-  AC_HELP_STRING([--disable-raw], [disable LibRaw support]),
-    [libraw=$enableval], [libraw=auto])
-
-if test "x${libraw}" != "xno"; then
-  PKG_CHECK_MODULES(RAW, [libraw >= 0.20],
-    [
-      HAVE_RAW=yes
-      AC_DEFINE(HAVE_RAW, 1, [define to enable libraw support])
-    ],
-    [
-      HAVE_RAW=no
-      AC_MSG_WARN([$RAW_PKG_ERRORS])
-    ])
-else
-  HAVE_RAW=disabled
-fi
-
-AM_CONDITIONAL(HAVE_RAW, [test "x$HAVE_RAW" = xyes])
-AC_SUBST(RAW_CFLAGS)
-AC_SUBST(RAW_LIBS)
-
-#  libgspell support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([spell],
-  AC_HELP_STRING([--disable-spell], [disable libgspell support]),
-    [libgspell=$enableval], [libgspell=auto])
-
-if test "x${libgspell}" != "xno" -a "x${gtk3}" != "xno"; then
-  PKG_CHECK_MODULES(SPELL, [gspell-1 >= 1.6],
-    [
-      HAVE_SPELL=yes
-      AC_DEFINE(HAVE_SPELL, 1, [define to enable libgspell support])
-    ],
-    [
-      HAVE_SPELL=no
-      AC_MSG_WARN([$SPELL_PKG_ERRORS])
-    ])
-else
-  HAVE_SPELL=disabled
-fi
-
-AM_CONDITIONAL(HAVE_SPELL, [test "x$HAVE_SPELL" = xyes])
-AC_SUBST(SPELL_CFLAGS)
-AC_SUBST(SPELL_LIBS)
-
-#  libffmpegthumbnailer support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([ffmpegthumbnailer],
-  AC_HELP_STRING([--disable-ffmpegthumbnailer], [disable ffmpegthumbnailer support for generating thumbnails of video files]),
-    [ffmpegthumbnailer=$enableval], [ffmpegthumbnailer=auto])
-
-if test "x${ffmpegthumbnailer}" != "xno"; then
-  PKG_CHECK_MODULES(FFMPEGTHUMBNAILER, [libffmpegthumbnailer >= 2.1.0],
-    [
-      HAVE_FFMPEGTHUMBNAILER=yes
-      AC_DEFINE(HAVE_FFMPEGTHUMBNAILER, 1, [define to enable ffmpegthumbnailer support])
-      AC_CHECK_MEMBER([video_thumbnailer.prefer_embedded_metadata], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_METADATA, 1, [define if ffmpegthumbnailer supports embedded metadata])], [], [[#include <libffmpegthumbnailer/videothumbnailerc.h>]])
-      AC_CHECK_MEMBER([image_data.image_data_width], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_RGB, 1, [define if ffmpegthumbnailer supports raw RGB output])], [], [[#include <libffmpegthumbnailer/videothumbnailerc.h>]])
-      AC_CHECK_LIB([ffmpegthumbnailer], [video_thumbnailer_set_size], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_WH, 1, [define if ffmpegthumbnailer supports specifying size by width/height])])
-    ],
-    [
-      HAVE_FFMPEGTHUMBNAILER=no
-    ])
-else
-  HAVE_FFMPEGTHUMBNAILER=disabled
-fi
-
-AM_CONDITIONAL(HAVE_FFMPEGTHUMBNAILER, [test "x$HAVE_FFMPEGTHUMBNAILER" = xyes])
-AC_SUBST(FFMPEGTHUMBNAILER_CFLAGS)
-AC_SUBST(FFMPEGTHUMBNAILER_LIBS)
-
-#  Exiv2 support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([exiv2],
-  AC_HELP_STRING([--disable-exiv2], [disable exiv2 support]),
-    [libexiv2=$enableval], [libexiv2=auto])
-
-if test "x${libexiv2}" != "xno"; then
-  PKG_CHECK_MODULES(EXIV2, [exiv2 >= 0.11],
-    [
-      HAVE_EXIV2=yes
-      AC_DEFINE(HAVE_EXIV2, 1, [define to enable exiv2 support])
-    ],
-    [
-      HAVE_EXIV2=no
-      AC_MSG_WARN([$EXIV2_PKG_ERRORS])
-    ])
-else
-  HAVE_EXIV2=disabled
-fi
-
-AM_CONDITIONAL(HAVE_EXIV2, [test "x$HAVE_EXIV2" = xyes])
-AC_SUBST(EXIV2_CFLAGS)
-AC_SUBST(EXIV2_LIBS)
-
-
-#  Gettext support
-# ----------------------------------------------------------------------
-
-dnl Set of available languages
-ALL_LINGUAS="`grep -v '^#' "$srcdir/po/LINGUAS" | tr '\n' ' '`"
-AC_SUBST([CONFIG_STATUS_DEPENDENCIES],['$(top_srcdir)/po/LINGUAS'])
-
-GETTEXT_PACKAGE=$PACKAGE
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["${GETTEXT_PACKAGE}"],[Name of gettext file])
-AM_GLIB_GNU_GETTEXT
-AM_GLIB_DEFINE_LOCALEDIR(GQ_LOCALEDIR)
-
-AC_SUBST(CFLAGS)
-AC_SUBST(CXXFLAGS)
-AC_SUBST(CPPFLAGS)
-AC_SUBST(LDFLAGS)
-
-
-#  clutter and champlain support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([map],
-  AC_HELP_STRING([--disable-map], [disable map support]),
-    [libgps=$enableval], [libgps=auto])
-
-AC_ARG_ENABLE([gpu-accel],
-  AC_HELP_STRING([--disable-gpu-accel], [disable GPU acceleration support - experimental]),
-    [libclutter=$enableval], [libclutter=auto])
-
-if test "x${libclutter}" != "xno" -a "x${gtk3}" != "xno"; then
-  PKG_CHECK_MODULES(CLUTTER, [clutter-1.0 >= 1.0],
-    [
-      PKG_CHECK_MODULES(CLUTTER_GTK, [clutter-gtk-1.0 >= 1.0],
-        [
-          HAVE_CLUTTER=yes
-          AC_DEFINE(HAVE_CLUTTER, 1, [define to enable use of clutter library])
-        ],
-        [
-          HAVE_CLUTTER=no
-          AC_MSG_WARN([$CLUTTER_GTK_PKG_ERRORS])
-        ])
-    ],
-    [
-      HAVE_CLUTTER=no
-      AC_MSG_WARN([$CLUTTER_PKG_ERRORS])
-    ])
-else
-  HAVE_CLUTTER=disabled
-fi
-
-AC_SUBST(CLUTTER_CFLAGS)
-AC_SUBST(CLUTTER_LIBS)
-AC_SUBST(CLUTTER_GTK_CFLAGS)
-AC_SUBST(CLUTTER_GTK_LIBS)
-
-
-#  Libchamplain support - used for map facility
-# ----------------------------------------------------------------------
-
-if test "x${libgps}" != "xno" -a "x${HAVE_CLUTTER}" = "xyes"; then
-    if test "x${gtk3}" != "xno"; then
-      PKG_CHECK_MODULES(LIBCHAMPLAIN, [champlain-0.12 >= 0.12],
-        [
-          HAVE_LIBCHAMPLAIN=yes
-          AC_DEFINE(HAVE_LIBCHAMPLAIN, 1, [define to enable use of maps])
-        ],
-        [
-          HAVE_LIBCHAMPLAIN=no
-          AC_MSG_WARN([$LIBCHAMPLAIN_PKG_ERRORS])
-        ])
-    else
-      HAVE_LIBCHAMPLAIN=disabled
-    fi
-else
-  HAVE_LIBCHAMPLAIN=disabled
-fi
-
-if test "x${libgps}" != "xno" -a "x${HAVE_LIBCHAMPLAIN}" = "xyes" ; then
-  PKG_CHECK_MODULES(LIBCHAMPLAIN_GTK, [champlain-gtk-0.12 >= 0.12],
-    [
-      HAVE_LIBCHAMPLAIN_GTK=yes
-      AC_DEFINE(HAVE_LIBCHAMPLAIN_GTK, 1, [define to enable use of maps])
-    ],
-    [
-      HAVE_LIBCHAMPLAIN_GTK=no
-      AC_MSG_WARN([$LIBCHAMPLAIN_GTK_PKG_ERRORS])
-    ])
-else
-  HAVE_LIBCHAMPLAIN_GTK=disabled
-fi
-
-AM_CONDITIONAL(HAVE_LIBCHAMPLAIN_GTK, [test "x$HAVE_LIBCHAMPLAIN_GTK" = xyes])
-AC_SUBST(LIBCHAMPLAIN_GTK_CFLAGS)
-AC_SUBST(LIBCHAMPLAIN_GTK_LIBS)
-
-#  Lua support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([lua],
-  AC_HELP_STRING([--disable-lua], [disable lua support]),
-    [liblua=$enableval], [liblua=auto])
-
-if test "x${liblua}" != "xno"; then
-  PKG_CHECK_MODULES(LUA, lua5.3 >= 5.3,
-    [
-      HAVE_LUA=yes
-      AC_DEFINE(HAVE_LUA, 1, [define to enable lua support])
-    ],
-    [
-     PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1,
-       [
-        HAVE_LUA=yes
-        AC_DEFINE(HAVE_LUA, 1, [define to enable lua support])
-       ],
-       [
-        PKG_CHECK_MODULES(LUA, lua >= 5.1,
-           [
-             HAVE_LUA=yes
-             AC_DEFINE(HAVE_LUA, 1, [define to enable lua support])
-           ],
-           [
-              HAVE_LUA=no
-              AC_MSG_WARN([$LUA_PKG_ERRORS])
-           ])
-       ])
-     ])
-else
-  HAVE_LUA=disabled
-fi
-
-AM_CONDITIONAL(HAVE_LUA, [test "x$HAVE_LUA" = xyes])
-AC_SUBST(LUA_CFLAGS)
-AC_SUBST(LUA_LIBS)
-
-#  Pdf support
-# ----------------------------------------------------------------------
-
-if test "x${gtk3}" != "xno"; then
-    AC_ARG_ENABLE([pdf],
-      AC_HELP_STRING([--disable-pdf], [disable pdf support]),
-        [libpdf=$enableval], [libpdf=auto])
-
-    if test "x${libpdf}" != "xno"; then
-      PKG_CHECK_MODULES(PDF, poppler-glib >= 0.62,
-        [
-          HAVE_PDF=yes
-          AC_DEFINE(HAVE_PDF, 1, [define to enable pdf support])
-        ],
-        [
-          HAVE_PDF=no
-          AC_MSG_WARN([$PDF_PKG_ERRORS])
-        ])
-    else
-        HAVE_PDF=disabled
-    fi
-else
-    HAVE_PDF=disabled
-fi
-
-AM_CONDITIONAL(HAVE_PDF, [test "x$HAVE_PDF" = xyes])
-AC_SUBST(PDF_CFLAGS)
-AC_SUBST(PDF_LIBS)
-
-#  Heif support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([heif],
-  AC_HELP_STRING([--disable-heif], [disable heif support]),
-    [libheif=$enableval], [libheif=auto])
-
-if test "x${libheif}" != "xno"; then
-  PKG_CHECK_MODULES(HEIF, libheif >= 1.3.2,
-    [
-      HAVE_HEIF=yes
-      AC_DEFINE(HAVE_HEIF, 1, [define to enable heif support])
-    ],
-    [
-      HAVE_HEIF=no
-      AC_MSG_WARN([$HEIF_PKG_ERRORS])
-    ])
-else
-    HAVE_HEIF=disabled
-fi
-
-AM_CONDITIONAL(HAVE_HEIF, [test "x$HAVE_HEIF" = xyes])
-AC_SUBST(HEIF_CFLAGS)
-AC_SUBST(HEIF_LIBS)
-
-#  WebP support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([webp],
-  AC_HELP_STRING([--disable-webp], [disable webp support]),
-    [libwebp=$enableval], [libwebp=auto])
-
-if test "x${libwebp}" != "xno"; then
-  PKG_CHECK_MODULES(WEBP, libwebp >= 0.6.1,
-    [
-      HAVE_WEBP=yes
-      AC_DEFINE(HAVE_WEBP, 1, [define to enable webp support])
-    ],
-    [
-      HAVE_WEBP=no
-      AC_MSG_WARN([$WEBP_PKG_ERRORS])
-    ])
-else
-    HAVE_WEBP=disabled
-fi
-
-AM_CONDITIONAL(HAVE_WEBP, [test "x$HAVE_WEBP" = xyes])
-AC_SUBST(WEBP_CFLAGS)
-AC_SUBST(WEBP_LIBS)
-
-#  Libarchive support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([archive],
-  AC_HELP_STRING([--disable-archive], [disable archive support]),
-    [libarchive=$enableval], [libarchive=auto])
-
-if test "x${libarchive}" != "xno"; then
-  PKG_CHECK_MODULES(ARCHIVE, libarchive >= 3.4.0,
-    [
-      HAVE_ARCHIVE=yes
-      AC_DEFINE(HAVE_ARCHIVE, 1, [define to enable archive support])
-    ],
-    [
-      HAVE_ARCHIVE=no
-      AC_MSG_WARN([$ARCHIVE_PKG_ERRORS])
-    ])
-else
-    HAVE_ARCHIVE=disabled
-fi
-
-AM_CONDITIONAL(HAVE_ARCHIVE, [test "x$HAVE_ARCHIVE" = xyes])
-AC_SUBST(ARCHIVE_CFLAGS)
-AC_SUBST(ARCHIVE_LIBS)
-
-#  J2K support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([j2k],
-  AC_HELP_STRING([--disable-j2k], [disable j2k support]),
-    [libopenjp2=$enableval], [libopenjp2=auto])
-
-if test "x${libopenjp2}" != "xno"; then
-  PKG_CHECK_MODULES(J2K, libopenjp2 >= 2.3.0,
-    [
-      HAVE_J2K=yes
-      AC_DEFINE(HAVE_J2K, 1, [define to enable j2k support])
-    ],
-    [
-      HAVE_J2K=no
-      AC_MSG_WARN([$J2K_PKG_ERRORS])
-    ])
-else
-    HAVE_J2K=disabled
-fi
-
-AM_CONDITIONAL(HAVE_J2K, [test "x$HAVE_J2K" = xyes])
-AC_SUBST(J2K_CFLAGS)
-AC_SUBST(J2K_LIBS)
-
-#  DjVu support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([djvu],
-  AC_HELP_STRING([--disable-djvu], [disable djvu support]),
-    [libdjvulibre=$enableval], [libdjvulibre=auto])
-
-if test "x${libdjvulibre}" != "xno"; then
-  PKG_CHECK_MODULES(DJVU, ddjvuapi >= 3.5.27,
-    [
-      HAVE_DJVU=yes
-      AC_DEFINE(HAVE_DJVU, 1, [define to enable DjVu support])
-    ],
-    [
-      HAVE_DJVU=no
-      AC_MSG_WARN([$DJVU_PKG_ERRORS])
-    ])
-else
-    HAVE_DJVU=disabled
-fi
-
-AM_CONDITIONAL(HAVE_DJVU, [test "x$HAVE_DJVU" = xyes])
-AC_SUBST(DJVU_CFLAGS)
-AC_SUBST(DJVU_LIBS)
-
-#  JPEG XL support
-# ----------------------------------------------------------------------
-
-AC_ARG_ENABLE([jpegxl],
-  AC_HELP_STRING([--disable-jpegxl], [disable jpeg xl support]),
-    [libjxl=$enableval], [libjxl=auto])
-
-if test "x${libjxl}" != "xno"; then
-  PKG_CHECK_MODULES(JPEGXL, libjxl >= 0.3.7,
-    [
-      HAVE_JPEGXL=yes
-      AC_DEFINE(HAVE_JPEGXL, 1, [define to enable JPEG XL support])
-    ],
-    [
-      HAVE_JPEGXL=no
-      AC_MSG_WARN([$JPEGXL_PKG_ERRORS])
-    ])
-else
-    HAVE_JPEGXL=disabled
-fi
-
-AM_CONDITIONAL(HAVE_JPEGXL, [test "x$HAVE_JPEGXL" = xyes])
-AC_SUBST(JPEGXL_CFLAGS)
-AC_SUBST(JPEGXL_LIBS)
-
-#  Markdown support
-# ----------------------------------------------------------------------
-
-AM_CONDITIONAL(HAVE_PANDOC, [ "$(command -v pandoc)" ])
-
-# _NL_TIME_FIRST_WEEKDAY support
-# note that it is an enum and not a define
-# ----------------------------------------------------------------------
-
-AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
-AC_TRY_LINK([#include <langinfo.h>], [
-char c;
-c = *((unsigned char *)  nl_langinfo(_NL_TIME_FIRST_WEEKDAY));
-], nl_ok=yes, nl_ok=no)
-AC_MSG_RESULT($nl_ok)
-if test "$nl_ok" = "yes"; then
-  AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
-      [Define if _NL_TIME_FIRST_WEEKDAY is available])
-fi
-
-# ----------------------------------------------------------------------
-
-AH_TOP([
-/** \file
- * \short autogenerated definition by autoheader.
- * \author Bruclik
- */
-
-/*
- *  This file is a part of Geeqie project (https://www.geeqie.org/).
- *  Copyright (C) 2008 - 2016 The Geeqie Team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- */
-
-#ifndef _INCLUDE_CONFIG_H
-#define _INCLUDE_CONFIG_H
-])
-
-AH_BOTTOM([#endif])
-
-dnl Write the output
-dnl
-
-AC_CONFIG_FILES([
-    Makefile
-    src/Makefile
-    src/icons/Makefile
-    src/icons/svg/Makefile
-    po/Makefile.in
-    doc/Makefile
-    plugins/Makefile
-    plugins/symlink/Makefile
-    plugins/rotate/Makefile
-    plugins/geocode-parameters/Makefile
-    plugins/export-jpeg/Makefile
-    plugins/tethered-photography/Makefile
-    plugins/camera-import/Makefile
-    plugins/image-crop/Makefile
-    plugins/random-image/Makefile
-    plugins/lens/Makefile
-    geeqie.spec
-])
-
-AC_OUTPUT
-dnl Print the results
-dnl
-
-cat > config.report << END
-
-     Config results:
-    -=-=-=-=-=-=-=-=-
-
-Package:
-  Name:          $PACKAGE_NAME
-  Version:       $PACKAGE_VERSION
-
-Architecture:
-  UNIX:          $os_unix
-  Win32:         $platform_win32 (native: $os_win32)
-
-Flags:
-  Geeqie:        $GQ_CFLAGS
-  DEFS:          $DEFS
-  CPPFLAGS:      $__CPPFLAGS
-  CFLAGS:        $CFLAGS
-  CXXFLAGS:      $CXXFLAGS
-  Gtk:           $GTK_CFLAGS
-  Glib:          $GLIB_CFLAGS
-  Thread:        $GTHREAD_LIBS
-  Others:       $JPEG_LIBS $TIFF_LIBS $LCMS_LIBS $EXIV2_LIBS $CLUTTER_LIBS $CLUTTER_GTK_LIBS $LIBCHAMPLAIN_LIBS $LIBCHAMPLAIN_GTK_LIBS $LUA_LIBS $RAW_LIBS $JPEGXL_LIBS
-
-Localization:
-  NLS support:   $USE_NLS
-  LINGUAS:       $LINGUAS
-
-Settings:
-  Developer:     $__IS_DEVELOPER
-  Debug flags:   $__IS_DEBUG_FLAGS
-  Debug log:     $__IS_DEBUG_LOG
-  Deprecated:    $__IS_DEPRECATED
-
-Support:
-  LCMS:          $HAVE_LCMS
-  Exiv2:        $HAVE_EXIV2
-  Lirc:          $HAVE_LIRC
-  Clutter:       $HAVE_CLUTTER
-  Libchamplain:                $HAVE_LIBCHAMPLAIN
-  Libchamplain-gtk:    $HAVE_LIBCHAMPLAIN_GTK
-  Lua:          $HAVE_LUA
-  FFmpegthumbnailer:   $HAVE_FFMPEGTHUMBNAILER
-  Pdf:          $HAVE_PDF
-  HEIF:                 $HAVE_HEIF
-  WebP:                 $HAVE_WEBP
-  DjVu:                 $HAVE_DJVU
-  J2K:          $HAVE_J2K
-  LibRaw:        $HAVE_RAW
-  Libjxl:        $HAVE_JPEGXL
-  Libarchive:    $HAVE_ARCHIVE
-  Spelling       $HAVE_SPELL
-
-Documentation:
-  Doxygen:       $DX_DOXYGEN
-  doc-tool:      $GNOME_DOC_TOOL
-
-END
-
-cat config.report
-cat <<EOF
-
-  Now you can type "make" to build Geeqie
-  (or you take blue pill and the story ends :)
-
-EOF
diff --git a/doc/Makefile.am b/doc/Makefile.am
deleted file mode 100644 (file)
index ae71bdf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-helpdir = @htmldir@
-
-EXTRA_DIST = docbook icons
-
-html/GuideIndex.html: docbook/GuideIndex.xml
-       rm -rf html; mkdir html; cp $(srcdir)/icons/* html/; ./create-doxygen-lua-api.sh
-       if [ -x "$(GNOME_DOC_TOOL)" ]; then \
-               "$(GNOME_DOC_TOOL)" html -i -o html/ $(srcdir)/docbook/GuideIndex.xml ; \
-       else \
-               echo "yelp-tools not found, html is not built" ; \
-       fi
-
-html: html/GuideIndex.html
-
-install-data-hook: html
-       if [ -x "$(GNOME_DOC_TOOL)" ]; then \
-               $(MKDIR_P) "$(DESTDIR)$(helpdir)" || exit 1; \
-               cd $(srcdir)/html; for f in * ; do $(INSTALL_DATA) "$$f" "$(DESTDIR)$(helpdir)/$$f" ; done; \
-               ln -s -f GuideIndex.html "$(DESTDIR)$(helpdir)/index.html" ; \
-               $(MKDIR_P) "$(DESTDIR)$(helpdir)/lua-api" || exit 1; \
-               $(MKDIR_P) "$(DESTDIR)$(helpdir)/lua-api/html" || exit 1; \
-               cd ./lua-api/html; for f in * ; do $(INSTALL_DATA) "$$f" "$(DESTDIR)$(helpdir)/lua-api/html/$$f" ; done; \
-       fi
-
-uninstall-hook:
-       rm -r "$(DESTDIR)$(helpdir)/"*
-
-clean-local:
-       rm -rf html
index 6730694..f08e1a5 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #**********************************************************************
-# Copyright (C) 2021 - The Geeqie Team
+# Copyright (C) 2022 - The Geeqie Team
 #
 # Author: Colin Clark
 #
@@ -35,8 +35,8 @@
 export PROJECT="Geeqie"
 VERSION=$(git tag --list v[1-9]* | tail -1)
 export VERSION
-export SRCDIR="$PWD/.."
-export DOCDIR="$PWD/html/lua-api"
+export SRCDIR="$1"
+export DOCDIR="$2"
 export INLINE_SOURCES=NO
 export STRIP_CODE_COMMENTS=YES
 
index 004250d..c040eb9 100644 (file)
@@ -3,12 +3,12 @@
                    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
 <!-- lifted from man+troff by doclifter -->
 <refentry id='geeqie1'>
-<!-- DO NOT MODIFY THIS FILE!  It was generated by help2man 1.48.4. -->
+<!-- DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1. -->
 <refmeta>
 <refentrytitle>GEEQIE</refentrytitle>
 <manvolnum>1</manvolnum>
-<refmiscinfo class='source'>January 2022</refmiscinfo>
-<refmiscinfo class='manual'>Geeqie 1.7.2 GTK3</refmiscinfo>
+<refmiscinfo class='source'>July 2022</refmiscinfo>
+<refmiscinfo class='manual'>Geeqie 1.7+git20220716-5ef5596d GTK3</refmiscinfo>
 </refmeta>
 <refnamediv>
 <refname>Geeqie</refname>
@@ -30,7 +30,7 @@ zooming, panning, thumbnails and sorting images into collections.</para>
 
 <para>Generated for version:</para>
 
-<para>Geeqie 1.7.2</para>
+<para>Geeqie 1.7+git20220716-5ef5596d</para>
 
 <refsect2 id='valid_options'><title>Valid options:</title>
 <variablelist remap='TP'>
@@ -158,7 +158,7 @@ zooming, panning, thumbnails and sorting images into collections.</para>
   </listitem>
   </varlistentry>
   <varlistentry>
-  <term><emphasis role='strong' remap='B'>--config-load</emphasis>: &lt;FILE&gt;|layout ID</term>
+  <term><emphasis role='strong' remap='B'>--config-load</emphasis>:&lt;FILE&gt;|layout ID</term>
   <listitem>
 <para>load configuration from FILE</para>
   </listitem>
diff --git a/doc/meson.build b/doc/meson.build
new file mode 100644 (file)
index 0000000..ecfaae5
--- /dev/null
@@ -0,0 +1,27 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+guideindex = files('docbook/GuideIndex.xml')
+destdir = join_paths(meson.project_build_root(), 'doc', 'html/')
+iconsdir = join_paths(meson.project_source_root(), 'doc', 'icons/')
+
+run_command(gnome_doc_tool, 'html', '-o', destdir, '-p', iconsdir, guideindex, check : false)
+
+install_subdir(destdir, install_dir : helpdir, install_tag : 'help')
+
+srcdir = join_paths(meson.project_source_root())
+destdir = join_paths(meson.project_build_root(), 'doc', 'html', 'lua-api')
+
+run_command(find_program('create-doxygen-lua-api.sh'), srcdir, destdir, check : false)
+
+install_subdir(destdir, install_dir : htmldir, install_tag : 'html')
index 527d891..baf97d2 100755 (executable)
@@ -8,7 +8,7 @@
 ## Dialogs allow the user to install additional features.
 ##
 
-version="2022-05-26"
+version="2022-07-17"
 description='
 Geeqie is an image viewer.
 This script will download, compile, and install Geeqie on Debian-based systems.
@@ -23,17 +23,18 @@ Command line options are:
 -t --tag=TAG Checkout and compile TAG (e.g. v1.4 or v1.3)
 -b --back=N Checkout commit -N (e.g. "-b 1" for last-but-one commit)
 -l --list List required dependencies
--d --debug=yes Compile with debug output
 '
 
 # Essential for compiling
 essential_array="git
 build-essential
-autoconf
 libglib2.0-0
 intltool
 libtool
-yelp-tools"
+meson
+yelp-tools
+help2man
+doclifter"
 
 # Optional for both GTK2 and GTK3
 optional_array="LCMS (for color management)
@@ -224,7 +225,7 @@ uninstall()
        if [ "$current_dir" = "geeqie" ]
        then
 
-               sudo --askpass make uninstall
+               sudo --askpass  ninja -C build uninstall
 
                if ! zenity --title="Uninstall Geeqie" --width=370 --text="WARNING.\nThis will delete folder:\n\n$PWD\n\nand all sub-folders!" --question --ok-label="Cancel" --cancel-label="OK" 2> /dev/null
                then
@@ -345,11 +346,6 @@ do
                        shift
                        shift
                        ;;
-               -d | --debug)
-                       DEBUG="$2"
-                       shift
-                       shift
-                       ;;
                *)
                        break
                        ;;
@@ -573,10 +569,7 @@ if [ $mode = "install" ]
 then
        cd geeqie || exit 1
 else
-       # shellcheck disable=SC2024
-       sudo --askpass make uninstall >> "$install_log" 2>&1
-       # shellcheck disable=SC2024
-       sudo --askpass make maintainer-clean >> "$install_log" 2>&1
+       sudo --askpass  ninja -C build uninstall
 fi
 
 printf '%b\n' "30" > "$zen_pipe"
@@ -609,44 +602,26 @@ then
                exit
        fi
 fi
-if [ "$DEBUG" = "yes" ]
-then
-       debug_opt=""
-else
-       debug_opt="--disable-debug-log"
-fi
 
 printf '%b\n' "40" > "$zen_pipe"
 printf '%b\n' "#Creating configuration files..." > "$zen_pipe"
 
 if [ -z "${gtk_version%%GTK3*}" ]
 then
-       ./autogen.sh "$debug_opt" >> "$install_log" 2>&1
+       meson setup build
+       printf '%b\n' "90 " > "$zen_pipe"
+       printf '%b\n' "#Installing Geeqie..." > "$zen_pipe"
+       ninja -C build install
 else
-       ./autogen.sh "$debug_opt" --disable-gtk3 >> "$install_log" 2>&1
+       meson setup build
+       meson configure build -Dgtk3=false
+       printf '%b\n' "90 " > "$zen_pipe"
+       printf '%b\n' "#Installing Geeqie..." > "$zen_pipe"
+       ninja -C build install
 fi
 
-printf '%b\n' "60" > "$zen_pipe"
-printf '%b\n' "#Compiling..." > "$zen_pipe"
-
-export CFLAGS=$CFLAGS" -Wno-deprecated-declarations"
-export CXXFLAGS=$CXXFLAGS" -Wno-deprecated-declarations"
-
-if ! make -j >> "$install_log" 2>&1
-then
-       zenity --title="$title" --width=370 --height=400 --error --text="Compile error" 2> /dev/null
-       exit_install
-       exit
-fi
-
-printf '%b\n' "90 " > "$zen_pipe"
-printf '%b\n' "#Installing Geeqie..." > "$zen_pipe"
-
-# shellcheck disable=SC2024
-sudo --askpass make install >> "$install_log" 2>&1
-
 rm "$install_pass_script"
-mv -f "$install_log" install.log
+mv -f "$install_log" "./build/install.log"
 
 printf '%b\n' "100 " > "$zen_pipe"
 rm "$zen_pipe"
index 4cbecb8..effd2c8 100644 (file)
--- a/geeqie.1
+++ b/geeqie.1
@@ -1,5 +1,5 @@
-.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.48.4.
-.TH GEEQIE "1" "January 2022" "Geeqie 1.7.2 GTK3" "User Commands"
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.1.
+.TH GEEQIE "1" "July 2022" "Geeqie 1.7+git20220716-5ef5596d GTK3" "User Commands"
 .SH NAME
 Geeqie - GTK based multiformat image viewer
 .SH SYNOPSIS
@@ -11,7 +11,7 @@ zooming, panning, thumbnails and sorting images into collections.
 
 Generated for version:
 .PP
-Geeqie 1.7.2
+Geeqie 1.7+git20220716\-5ef5596d
 .SS "Valid options:"
 .TP
 \fB\-\-blank\fR
@@ -74,7 +74,7 @@ previous image
 \fB\-\-close\-window\fR
 close window
 .TP
-\fB\-\-config\-load\fR: <FILE>|layout ID
+\fB\-\-config\-load\fR:<FILE>|layout ID
 load configuration from FILE
 .TP
 \fB\-cm\fR  \fB\-\-cache\-metadata\fR
index 8711a09..6592e00 100644 (file)
@@ -1,7 +1,7 @@
 [Desktop Entry]
-_Name=Geeqie
-_GenericName=Image Viewer
-_Comment=View and manage images
+Name=Geeqie
+GenericName=Image Viewer
+Comment=View and manage images
 Exec=geeqie -r %F
 Icon=geeqie
 Type=Application
index e74bd59..b2b68e9 100755 (executable)
@@ -9,30 +9,33 @@
 ## ChangeLog.html is also created
 ##
 
+builddir="$2"
+
+cd "$1"
+
 [ ! -e "ChangeLog.gqview" ] && exit 1
 [ ! -x "$(command -v git)" ] && exit 0
 [ ! -d ".git" ] && exit 0
 
-LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --no-follow --use-mailmap 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD > ChangeLog.$$.new && \
-cat ChangeLog.gqview >> ChangeLog.$$.new && \
-mv -f ChangeLog.$$.new ChangeLog
-
-
-echo "<textarea rows='6614' cols='100'>" >ChangeLog.$$.old.html && \
-tail -6613 ChangeLog >> ChangeLog.$$.old.html && \
-echo "</textarea>" >>ChangeLog.$$.old.html && \
-echo "<html>" > ChangeLog.$$.new.html && \
-echo "<body>" >> ChangeLog.$$.new.html && \
-echo "<ul>" >> ChangeLog.$$.new.html && \
-LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --date=format:'%Y-%m-%d' --no-follow --use-mailmap --pretty=format:"<li><a href=\"http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=%H\">view commit </a></li><p>Author: %aN<br>Date: %ad<br><textarea rows=4 cols=100>%s %n%n%b</textarea><br><br></p>" 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD >> ChangeLog.$$.new.html && \
-echo "" >> ChangeLog.$$.new.html && \
-cat ChangeLog.$$.old.html >> ChangeLog.$$.new.html && \
-echo "</ul>" >> ChangeLog.$$.new.html && \
-echo "</body>" >> ChangeLog.$$.new.html && \
-echo "</html>" >> ChangeLog.$$.new.html
-[ -e ChangeLog.html ] && mv -f ChangeLog.html ChangeLog.html.bak
-mv -f ChangeLog.$$.new.html ChangeLog.html
-
-rm -f ChangeLog.$$.old.html
+LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --no-follow --use-mailmap 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD > "$builddir/ChangeLog.$$.new" && \
+cat ChangeLog.gqview >> "$builddir/ChangeLog.$$.new" && \
+mv -f "$builddir/ChangeLog.$$.new" "$builddir/ChangeLog"
+
+
+echo "<textarea rows='6614' cols='100'>" >"$builddir/ChangeLog.$$.old.html" && \
+tail -6613 "$builddir/ChangeLog" >> "$builddir/ChangeLog.$$.old.html" && \
+echo "</textarea>" >>"$builddir/ChangeLog.$$.old.html" && \
+echo "<html>" > "$builddir/ChangeLog.$$.new.html" && \
+echo "<body>" >> "$builddir/ChangeLog.$$.new.html" && \
+echo "<ul>" >> "$builddir/ChangeLog.$$.new.html" && \
+LC_ALL=C git log --no-merges --no-notes --encoding=UTF-8 --date=format:'%Y-%m-%d' --no-follow --use-mailmap --pretty=format:"<li><a href=\"http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commit;h=%H\">view commit </a></li><p>Author: %aN<br>Date: %ad<br><textarea rows=4 cols=100>%s %n%n%b</textarea><br><br></p>" 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD >> "$builddir/ChangeLog.$$.new.html" && \
+echo "" >> "$builddir/ChangeLog.$$.new.html" && \
+cat "$builddir/ChangeLog.$$.old.html" >> "$builddir/ChangeLog.$$.new.html" && \
+echo "</ul>" >> "$builddir/ChangeLog.$$.new.html" && \
+echo "</body>" >> "$builddir/ChangeLog.$$.new.html" && \
+echo "</html>" >> "$builddir/ChangeLog.$$.new.html"
+
+rm "$builddir/ChangeLog.$$.old.html"
+mv -f "$builddir/ChangeLog.$$.new.html" "$builddir/ChangeLog.html"
 
 exit 0
index 4ffa123..d087eb9 100755 (executable)
@@ -3,10 +3,13 @@
 ## @file
 ## @brief Convert README.md to README.html
 ##
-## Ceate README.html file,
+## Create README.html file,
 ##
 
-if [ ! -e "README.md" ]
+srcdir="$1"
+builddir="$2"
+
+if [ ! -e "$srcdir/README.md" ]
 then
        printf '%s\n' "ERROR: README.md not found"
        exit 1
@@ -18,8 +21,6 @@ then
        exit 1
 fi
 
-[ -e README.html ] && mv -f README.html README.html.bak
-
-pandoc README.md > README.html
+pandoc "$srcdir/README.md" > "$builddir/README.html"
 
 exit 0
diff --git a/meson.build b/meson.build
new file mode 100644 (file)
index 0000000..efaaa1f
--- /dev/null
@@ -0,0 +1,355 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# Meson default directories used in this project:
+# prefix - /usr/local
+# bindir - bin
+# datadir - share
+
+# Meson core options:
+# buildtype
+# debug
+
+# Project expanded default directories:
+# prefix        /usr/local/
+# bindir        /usr/local/bin                          geeqie executable
+# gq_bindir     /usr/local/lib/geeqie               *   plugins scripts
+# datadir       /usr/local/share/
+#               /usr/local/share/applications           geeqie.desktop
+# [gq_]appdir   /usr/local/share/geeqie/            *   template.desktop
+# desktopdir    /usr/local/share/geeqie/applications    plugin desktop files
+# appdatadir    /usr/local/share/metainfo               org.geeqie.Geeqie.appdata.xml
+# icondir       /usr/local/share/pixmaps                geeqie.png icon
+# [gq_]helpdir  /usr/local/share/doc/geeqie         *   readme files etc.
+# [gq_]htmldir  /usr/local/share/doc/geeqie/html    *   help files
+# gq_localedir  /usr/locale/share/locale
+# mandir1       /usr/local/share/man/man1               man page
+# podir         project_root/po
+
+# * See meson_options.txt file
+
+project(
+    'geeqie',
+    'c',
+    'cpp',
+    version : run_command('./version.sh', check : true).stdout().strip(),
+    license : ['GPL-2.0-or-later'],
+    meson_version : '>= 0.60.0',
+    default_options : ['warning_level=0', 'buildtype=debugoptimized']
+)
+
+# Project requirements
+project_sources = []
+gnome = import('gnome')
+thread_dep = dependency('threads')
+cc = meson.get_compiler('c')
+i18n = import('i18n')
+configuration_inc = include_directories('.')
+
+# External programs
+gdk_pixbuf_csource = find_program('gdk-pixbuf-csource', required : true)
+glib_genmarshal = find_program('glib-genmarshal', required : true)
+gnome_doc_tool = find_program('yelp-build', required : false)
+if not gnome_doc_tool.found()
+    message('yelp-build not found. Help files not created.')
+endif
+
+debug = get_option('debug')
+
+# Note that main.c sets prefix to the directory above where the executable is run from.
+# This is to allow AppImages to be used
+
+# These gq_* variables are paths relative to /prefix/,
+# and are also used in defines in the source as GQ_*
+if get_option('gq_appdir') == ''
+    gq_appdir = join_paths(get_option('datadir'), 'geeqie')
+else
+    gq_appdir = get_option('gq_appdir')
+endif
+
+# This is not the same as Meson bindir
+if get_option('gq_bindir') == ''
+    gq_bindir = 'lib/geeqie'
+else
+    gq_bindir = get_option('gq_bindir')
+endif
+
+if get_option('gq_helpdir') == ''
+    gq_helpdir = join_paths(get_option('datadir'), 'doc/geeqie')
+else
+    gq_helpdir = get_option('gq_helpdir')
+endif
+
+if get_option('gq_htmldir') == ''
+    gq_htmldir = join_paths(get_option('datadir'), 'doc/geeqie/html')
+else
+    gq_htmldir = get_option('gq_htmldir')
+endif
+
+if get_option('gq_localedir') == ''
+    gq_localedir = join_paths(get_option('datadir'), 'locale')
+else
+    gq_localedir = get_option('gq_localedir')
+endif
+
+
+# Set up the absolute directory paths used
+prefix = get_option('prefix')
+datadir = join_paths(prefix, get_option('datadir'))
+
+# Installation paths are absolute
+appdir = join_paths(prefix, gq_appdir)
+appdatadir = join_paths(datadir, 'metainfo')
+desktopdir = join_paths(datadir, meson.project_name(), 'applications')
+helpdir = join_paths(prefix, gq_helpdir)
+htmldir = join_paths(prefix, gq_htmldir)
+icondir = join_paths(datadir, 'pixmaps')
+mandir1 = join_paths(datadir, 'man', 'man1')
+
+podir = join_paths(meson.project_source_root(), 'po')
+
+# Create the define constants used in the sources. Set via config.h.in
+conf_data = configuration_data()
+conf_data.set_quoted('VERSION', run_command('./version.sh', check : true).stdout())
+conf_data.set('DEBUG', debug)
+
+if get_option('gtk3')
+    gtk_dep = dependency('gtk+-3.0', version : '>=3.0', required: true) 
+else
+    gtk_dep = dependency('gtk+-2.0', version : '>=2.20', required: true)
+endif
+
+glib_dep = dependency('glib-2.0', version: '>=2.52', required: true)
+
+libarchive_dep = []
+libarchive_dep = dependency('libarchive', version: '>=3.4.0', required : get_option('archive'))
+if libarchive_dep.found()
+    conf_data.set('HAVE_ARCHIVE', 1)
+endif
+
+clutter_dep = []
+clutter_gtk_dep = []
+if get_option('gtk3')
+    clutter_dep = dependency('clutter-1.0', required : get_option('clutter'))
+    clutter_gtk_dep = dependency('clutter-gtk-1.0', required : get_option('clutter'))
+    if clutter_dep.found() and clutter_gtk_dep.found()
+        conf_data.set('HAVE_CLUTTER', 1)
+    endif
+endif
+
+lcms_dep = []
+lcms_dep = dependency('lcms2', version: '>=2.0', required : get_option('cms'))
+if lcms_dep.found()
+    conf_data.set('HAVE_LCMS', 1)
+    conf_data.set('HAVE_LCMS2', 1)
+endif
+
+ddjvuapi_dep = []
+ddjvuapi_dep = dependency('ddjvuapi', version: '>=3.5.27', required : get_option('djvu'))
+if ddjvuapi_dep.found()
+    conf_data.set('HAVE_DJVU', 1)
+endif
+
+exiv2_dep = []
+exiv2_dep = dependency('exiv2', version: '>=0.11', required : get_option('exiv2'))
+if exiv2_dep.found()
+    conf_data.set('HAVE_EXIV2', 1)
+endif
+
+libffmpegthumbnailer_dep = []
+libffmpegthumbnailer_dep = dependency('libffmpegthumbnailer',
+    version: '>=2.1.0',
+    required : get_option('ffmpegthumbnailer'))
+
+if libffmpegthumbnailer_dep.found()
+    conf_data.set('HAVE_FFMPEGTHUMBNAILER', 1)
+
+    if cc.has_member('struct video_thumbnailer_struct', 'prefer_embedded_metadata',
+        prefix : '#include <libffmpegthumbnailer/videothumbnailerc.h>')
+
+        conf_data.set('HAVE_FFMPEGTHUMBNAILER_METADATA', 1)
+    endif
+
+    if cc.has_member('struct image_data_struct', 'image_data_width',
+        prefix : '#include <libffmpegthumbnailer/videothumbnailerc.h>' )
+
+        conf_data.set('HAVE_FFMPEGTHUMBNAILER_RGB', 1)
+    endif
+
+    if cc.has_function('video_thumbnailer_set_size',
+        dependencies : libffmpegthumbnailer_dep)
+
+        conf_data.set('HAVE_FFMPEGTHUMBNAILER_WH', 1)
+    endif 
+endif
+
+champlain_dep = []
+champlain_gtk_dep = []
+if conf_data.has('HAVE_CLUTTER')
+    champlain_dep = dependency('champlain-0.12', version: '>=0.12', required : get_option('gps-map'))
+    champlain_gtk_dep = dependency('champlain-gtk-0.12', version: '>=0.12', required : get_option('gps-map'))
+    if champlain_dep.found() and champlain_gtk_dep.found()
+        conf_data.set('HAVE_LIBCHAMPLAIN', 1)
+        conf_data.set('HAVE_LIBCHAMPLAIN_GTK', 1)
+    endif
+endif
+
+libheif_dep = []
+libheif_dep = dependency('libheif', version: '>=1.3.2', required : get_option('heif'))
+if libheif_dep.found()
+    conf_data.set('HAVE_HEIF', 1)
+endif
+
+libopenjp2_dep = []
+libopenjp2_dep = dependency('libopenjp2', version: '>=2.3.0', required : get_option('j2k'))
+if libopenjp2_dep.found()
+    conf_data.set('HAVE_J2K', 1)
+endif
+
+libjpeg_dep = []
+libjpeg_dep = dependency('libjpeg', required : get_option('jpeg'))
+if libjpeg_dep.found()
+    if cc.has_function('jpeg_destroy_decompress',
+        dependencies : libjpeg_dep)
+
+        conf_data.set('HAVE_JPEG', 1)
+    endif
+endif
+
+libjxl_dep = []
+libjxl_dep = dependency('libjxl', version: '>=0.3.7', required : get_option('jpegxl'))
+if libjxl_dep.found()
+    conf_data.set('HAVE_JPEGXL', 1)
+endif
+
+libraw_dep = []
+libraw_dep = dependency('libraw', version: '>=0.20', required : get_option('libraw'))
+if libraw_dep.found()
+    conf_data.set('HAVE_RAW', 1)
+endif
+
+lirc_dep = []
+lirc_dep = dependency('lirc', version: '>=0.6.1', required : get_option('lirc'))
+if lirc_dep.found()
+    conf_data.set('HAVE_LIRC', 1)
+endif
+
+lua_dep = []
+lua_dep = dependency('lua5.1', required : get_option('lua'))
+if lua_dep.found()
+    conf_data.set('HAVE_LUA', 1)
+endif
+
+poppler_glib_dep = []
+if get_option('gtk3')
+    poppler_glib_dep = dependency('poppler-glib', version: '>=0.62', required : get_option('pdf'))
+    if poppler_glib_dep.found()
+        conf_data.set('HAVE_PDF', 1)
+    endif
+endif
+
+gspell_dep = []
+if get_option('gtk3')
+    gspell_dep = dependency('gspell-1', required: get_option('spell'))
+    if gspell_dep.found()
+        conf_data.set('HAVE_SPELL', 1)
+    endif
+endif
+
+tiff_dep = []
+tiff_dep = cc.find_library('tiff', required: get_option('tiff'))
+if tiff_dep.found()
+    if cc.has_function('TIFFClientOpen',
+        dependencies : tiff_dep)
+
+        conf_data.set('HAVE_TIFF', 1)
+    endif
+endif
+
+libwebp_dep = []
+    libwebp_dep = dependency('libwebp', version: '>=0.6.1', required : get_option('webp'))
+    if libwebp_dep.found()
+        conf_data.set('HAVE_WEBP', 1)
+    endif
+
+# Check for nl_langinfo and _NL_TIME_FIRST_WEEKDAY
+code = '''#include <langinfo.h>
+#include<stdio.h>
+int main (int argc, char ** argv) {
+    char *c;
+    c =  nl_langinfo(_NL_TIME_FIRST_WEEKDAY);
+    return 0;
+}'''
+if cc.links(code, name : 'nl_langinfo and _NL_TIME_FIRST_WEEKDAY')
+    conf_data.set('HAVE__NL_TIME_FIRST_WEEKDAY', 1)
+endif
+
+conf_data.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+conf_data.set_quoted('GQ_APPDIR', gq_appdir)
+conf_data.set_quoted('GQ_BINDIR', gq_bindir)
+conf_data.set_quoted('GQ_HELPDIR', gq_helpdir)
+conf_data.set_quoted('GQ_HTMLDIR', gq_htmldir)
+conf_data.set_quoted('GQ_LOCALEDIR', gq_localedir)
+
+conf_data.set_quoted('PACKAGE', meson.project_name())
+conf_data.set_quoted('PACKAGE_NAME', meson.project_name())
+conf_data.set_quoted('PACKAGE_STRING', meson.project_version())
+conf_data.set_quoted('PACKAGE_TARNAME', meson.project_name())
+conf_data.set_quoted('PACKAGE_VERSION', meson.project_version())
+conf_data.set_quoted('VERSION', meson.project_version())
+
+configure_file(input : 'config.h.in',
+               output : 'config.h',
+               encoding : 'UTF-8',
+               configuration : conf_data)
+
+# Process subdirs before the sources
+subdir('po')
+subdir('plugins')
+
+# Generate the executable and the help files
+subdir('src')
+subdir('doc')
+
+# Install other project files
+run_command(find_program('gen_changelog.sh'), meson.project_source_root(), meson.project_build_root(), check : true)
+
+run_command(find_program('gen_readme.sh'), meson.project_source_root(), meson.project_build_root(), check : true)
+
+pandoc = find_program('pandoc')
+if pandoc.found()
+    install_data('README.md', 'COPYING', join_paths(meson.project_build_root(), 'ChangeLog'), 'TODO', 'README.lirc', 'AUTHORS', join_paths(meson.project_build_root(), 'README.html'), join_paths(meson.project_build_root(), 'ChangeLog.html'), install_dir : helpdir, install_tag : 'help')
+else
+    install_data('README.md', 'COPYING', join_paths(meson.project_build_root(), 'ChangeLog'), 'TODO', 'README.lirc', 'AUTHORS', install_dir : helpdir, install_tag : 'help')
+endif
+
+install_data('geeqie.png', install_dir : icondir, install_tag : 'icons')
+install_data('geeqie.1', install_dir : mandir1, install_tag : 'man')
+
+i18n.merge_file(
+    input : 'geeqie.desktop.in',
+    output : 'geeqie.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : join_paths(datadir, 'applications'))
+
+i18n.merge_file(
+    input : 'org.geeqie.Geeqie.appdata.xml.in',
+    output : 'org.geeqie.Geeqie.appdata.xml',
+    type : 'xml',
+    po_dir : podir,
+    install : true,
+    install_dir : appdatadir)
+
+configure_file(input: 'geeqie.spec.in', output: 'geeqie.spec', configuration: conf_data)
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644 (file)
index 0000000..cb1a69c
--- /dev/null
@@ -0,0 +1,46 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# These gq_* paths are used relative to /prefix/ e.g.
+#               prefix
+# gq_bindir -> /user/local / 'lib/geeqie'
+# gq_helpdir -> /user/local / 'share/doc/geeqie'
+
+# Override the default values set in meson.build
+option('gq_appdir', type : 'string', value : '', description : 'Location of application data')
+option('gq_bindir', type : 'string', value : '', description : 'Location of plugin scripts and executables')
+option('gq_helpdir', type : 'string', value : '', description : 'Location of documentation files')
+option('gq_htmldir', type : 'string', value : '', description : 'Location of html documentation')
+option('gq_localedir', type : 'string', value : '', description : 'Location where the catalogs will be installed')
+
+option('gtk3', type : 'boolean', value : 'true', description : 'GTK3')
+
+option('archive', type : 'feature', value : 'auto', description : 'archive files e.g. zip, gz')
+option('clutter', type : 'feature', value : 'auto', description : 'clutter (for GPS maps)')
+option('cms', type : 'feature', value : 'auto', description : 'color management system')
+option('djvu', type : 'feature', value : 'auto', description : 'djvu')
+option('exiv2', type : 'feature', value : 'auto', description : 'exiv2')
+option('ffmpegthumbnailer', type : 'feature', value : 'auto', description : 'ffmpegthumbnailer')
+option('gps-map', type : 'feature', value : 'auto', description : 'gps map')
+option('heif', type : 'feature', value : 'auto', description : 'heif')
+option('j2k', type : 'feature', value : 'auto', description : 'j2k')
+option('jpeg', type : 'feature', value : 'auto', description : 'jpeg')
+option('jpegxl', type : 'feature', value : 'auto', description : 'jpegxl')
+option('libraw', type : 'feature', value : 'auto', description : 'libraw')
+option('lirc', type : 'feature', value : 'auto', description : 'lirc')
+option('lua', type : 'feature', value : 'auto', description : 'lua')
+option('markdown', type : 'feature', value : 'auto', description : 'markdown')
+option('pdf', type : 'feature', value : 'auto', description : 'pdf')
+option('spell', type : 'feature', value : 'auto', description : 'spelling checks')
+option('tiff', type : 'feature', value : 'auto', description : 'tiff')
+option('webp', type : 'feature', value : 'auto', description : 'webp')
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
deleted file mode 100644 (file)
index 989ad99..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-SUBDIRS = rotate symlink geocode-parameters export-jpeg tethered-photography camera-import image-crop random-image lens
-qq_desktoptemplatedir = $(appdir)
-qq_desktoptemplate_in_files = template.desktop.in
-qq_desktoptemplate_DATA = $(qq_desktoptemplate_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(qq_desktoptemplate_in_files)
-CLEANFILES = $(qq_desktoptemplate_DATA)
diff --git a/plugins/camera-import/Makefile.am b/plugins/camera-import/Makefile.am
deleted file mode 100644 (file)
index 58b91b8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-camera-import geeqie-camera-import-hook-script
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = camera-import.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
index 60bef21..cd9181e 100644 (file)
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Camera import
-_Comment=Import all images from camera
+Name=Camera import
+Comment=Import all images from camera
 
 # Requires gphoto2
 # The gphoto2 file $HOME/.gphoto2/settings can
diff --git a/plugins/camera-import/meson.build b/plugins/camera-import/meson.build
new file mode 100644 (file)
index 0000000..1c8242d
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-camera-import', 'geeqie-camera-import-hook-script', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'camera-import.desktop.in',
+    output : 'camera-import.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
diff --git a/plugins/export-jpeg/Makefile.am b/plugins/export-jpeg/Makefile.am
deleted file mode 100644 (file)
index b2a7da3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-export-jpeg
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = export-jpeg.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
index 8e2b21e..70ba843 100644 (file)
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Export jpeg
-_Comment=Extract embedded jpegs from a raw file
+Name=Export jpeg
+Comment=Extract embedded jpegs from a raw file
 
 Exec=geeqie-export-jpeg %f
 
diff --git a/plugins/export-jpeg/meson.build b/plugins/export-jpeg/meson.build
new file mode 100644 (file)
index 0000000..86b204a
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-export-jpeg', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'export-jpeg.desktop.in',
+    output : 'export-jpeg.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
diff --git a/plugins/geocode-parameters/Makefile.am b/plugins/geocode-parameters/Makefile.am
deleted file mode 100644 (file)
index eab0c1d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dist_gq_bin_SCRIPTS = geocode-parameters.awk
diff --git a/plugins/geocode-parameters/meson.build b/plugins/geocode-parameters/meson.build
new file mode 100644 (file)
index 0000000..8e7e74c
--- /dev/null
@@ -0,0 +1,14 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geocode-parameters.awk', install_dir : gq_bindir, install_tag : 'plugins')
diff --git a/plugins/image-crop/Makefile.am b/plugins/image-crop/Makefile.am
deleted file mode 100644 (file)
index 809260c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-image-crop
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = image-crop.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
index 16cb806..39107ca 100644 (file)
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Image crop
-_Comment=Crop image from marked rectangle
+Name=Image crop
+Comment=Crop image from marked rectangle
 
 # Requires ImageMagick and exiftools
 
diff --git a/plugins/image-crop/meson.build b/plugins/image-crop/meson.build
new file mode 100644 (file)
index 0000000..d023b1f
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-image-crop', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'image-crop.desktop.in',
+    output : 'image-crop.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
diff --git a/plugins/lens/Makefile.am b/plugins/lens/Makefile.am
deleted file mode 100644 (file)
index 4447d44..0000000
+++ /dev/null
@@ -1 +0,0 @@
-dist_gq_bin_SCRIPTS = lensID
diff --git a/plugins/lens/meson.build b/plugins/lens/meson.build
new file mode 100644 (file)
index 0000000..dd314bf
--- /dev/null
@@ -0,0 +1,14 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('lensID', install_dir : gq_bindir, install_tag : 'plugins')
diff --git a/plugins/meson.build b/plugins/meson.build
new file mode 100644 (file)
index 0000000..7045fb1
--- /dev/null
@@ -0,0 +1,31 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+subdir('camera-import')
+subdir('export-jpeg')
+subdir('geocode-parameters')
+subdir('image-crop')
+subdir('lens')
+subdir('random-image')
+subdir('rotate')
+subdir('symlink')
+subdir('tethered-photography')
+
+
+i18n.merge_file(
+    input : 'template.desktop.in',
+    output : 'template.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : appdir)
diff --git a/plugins/random-image/Makefile.am b/plugins/random-image/Makefile.am
deleted file mode 100644 (file)
index 423ae9b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-random-image
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = random-image.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
diff --git a/plugins/random-image/meson.build b/plugins/random-image/meson.build
new file mode 100644 (file)
index 0000000..5db10b5
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-random-image', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'random-image.desktop.in',
+    output : 'random-image.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
index e7765f1..afd3f64 100644 (file)
@@ -1,8 +1,8 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Random image
-_Comment=Display random image from Collections and current folder
+Name=Random image
+Comment=Display random image from Collections and current folder
 
 Exec=geeqie-random-image
 
diff --git a/plugins/rotate/Makefile.am b/plugins/rotate/Makefile.am
deleted file mode 100644 (file)
index 0722744..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-rotate
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = rotate.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
-
diff --git a/plugins/rotate/meson.build b/plugins/rotate/meson.build
new file mode 100644 (file)
index 0000000..fc5871b
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-rotate', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'rotate.desktop.in',
+    output : 'rotate.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
index 65e1b6f..217a287 100644 (file)
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Apply the orientation to image content
+Name=Apply the orientation to image content
 
 # call the helper script
 Exec=geeqie-rotate -g %f
diff --git a/plugins/symlink/Makefile.am b/plugins/symlink/Makefile.am
deleted file mode 100644 (file)
index 0e9039c..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-symlink
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = symlink.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
diff --git a/plugins/symlink/meson.build b/plugins/symlink/meson.build
new file mode 100644 (file)
index 0000000..5549500
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-symlink', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'symlink.desktop.in',
+    output : 'symlink.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
index 678d8db..f82a706 100644 (file)
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Symlink
+Name=Symlink
 
 # call the helper script
 Exec=geeqie-symlink %f
index 83bdc12..5e0c778 100644 (file)
@@ -3,7 +3,7 @@ Version=1.0
 Type=Application
 
 # The name which appears in the menu:
-_Name=Template
+Name=Template
 #Name[cs]=Å ablona
 #Name[fr]=Modèle
 #Name[de]=Vorlage
diff --git a/plugins/tethered-photography/Makefile.am b/plugins/tethered-photography/Makefile.am
deleted file mode 100644 (file)
index 841b467..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-dist_gq_bin_SCRIPTS = geeqie-tethered-photography geeqie-tethered-photography-hook-script
-
-gq_desktopdir = $(appdir)/applications
-gq_desktop_in_files = tethered-photography.desktop.in
-gq_desktop_DATA = $(gq_desktop_in_files:.desktop.in=.desktop)
-@INTLTOOL_DESKTOP_RULE@
-
-EXTRA_DIST = $(gq_desktop_in_files)
-CLEANFILES = $(gq_desktop_DATA)
diff --git a/plugins/tethered-photography/meson.build b/plugins/tethered-photography/meson.build
new file mode 100644 (file)
index 0000000..536877a
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+install_data('geeqie-tethered-photography', 'geeqie-tethered-photography-hook-script', install_dir : gq_bindir, install_tag : 'plugins')
+
+i18n.merge_file(
+    input : 'tethered-photography.desktop.in',
+    output : 'tethered-photography.desktop',
+    type : 'desktop',
+    po_dir : podir,
+    install : true,
+    install_dir : desktopdir)
index 5ffdb35..ef8d76b 100644 (file)
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Version=1.0
 Type=Application
-_Name=Tethered photography
+Name=Tethered photography
 
 Exec=geeqie-tethered-photography
 
diff --git a/po/meson.build b/po/meson.build
new file mode 100644 (file)
index 0000000..193b6d0
--- /dev/null
@@ -0,0 +1,16 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+add_project_arguments('-DGETTEXT_PACKAGE="geeqie"', language:'c')
+
+i18n.gettext(meson.project_name())
index e8ff83d..bfb4782 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 #**********************************************************************
-# Copyright (C) 2021 - The Geeqie Team
+# Copyright (C) 2022 - The Geeqie Team
 #
 # Author: Colin Clark
 #
@@ -39,15 +39,13 @@ then
        exit 1
 fi
 
+rm -rf ./build-appimge
 rm -rf "$target_dir"/AppDir
 mkdir "$target_dir"/AppDir || { printf '%s\n' "Cannot make $target_dir/AppDir"; exit 1; }
 
-sudo rm -rf doc/html
-
-sudo make maintainer-clean
-./autogen.sh --prefix="/usr/"
-make -j
-make install DESTDIR="$target_dir"/AppDir
+meson setup build-appimage
+meson configure build-appimage -Dprefix="/usr/"
+DESTDIR=/"$target_dir"/AppDir ninja -C build-appimage install
 
 VERSION=$(git tag | tail -1)
 export VERSION
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644 (file)
index 15013f3..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-SUBDIRS = icons
-DIST_SUBDIRS = icons
-
-AM_CFLAGS =                            \
-       $(GLIB_CFLAGS) $(GTK_CFLAGS)    \
-       $(LCMS_CFLAGS)                  \
-       $(EXIV2_CFLAGS)                 \
-       $(LIBCHAMPLAIN_CFLAGS)          \
-       $(LIBCHAMPLAIN_GTK_CFLAGS)      \
-       $(LUA_CFLAGS)                   \
-       $(CLUTTER_CFLAGS)               \
-       $(CLUTTER_GTK_CFLAGS)           \
-       $(FFMPEGTHUMBNAILER_CFLAGS)     \
-       $(PDF_CFLAGS)   \
-       $(SPELL_CFLAGS) \
-       $(HEIF_CFLAGS)  \
-       $(WEBP_CFLAGS)  \
-       $(J2K_CFLAGS)   \
-       $(JPEGXL_CFLAGS)        \
-       -I$(top_srcdir)                 \
-       -I$(top_builddir)
-
-
-AM_CXXFLAGS =                          \
-       $(GLIB_CFLAGS) $(GTK_CFLAGS)    \
-       $(LCMS_CFLAGS)                  \
-       $(EXIV2_CFLAGS)                 \
-       $(LIBCHAMPLAIN_CFLAGS)          \
-       $(LIBCHAMPLAIN_GTK_CFLAGS)      \
-       $(LUA_CFLAGS)                   \
-       $(CLUTTER_CFLAGS)               \
-       $(CLUTTER_GTK_CFLAGS)           \
-       $(FFMPEGTHUMBNAILER_CFLAGS)     \
-       $(PDF_CFLAGS)   \
-       $(SPELL_CFLAGS) \
-       $(HEIF_CFLAGS)  \
-       $(WEBP_CFLAGS)  \
-       $(J2K_CFLAGS)   \
-       $(JPEGXL_CFLAGS)        \
-       -I$(top_srcdir)                 \
-       -I$(top_builddir)
-
-module_SLIK = \
-       intl.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
-
-extra_ICONS = \
-       ui_spinner.png  \
-       ui_tabcomp.png
-
-ICON_PAIRS = \
-       icon_spinner            $(srcdir)/ui_spinner.png        \
-       icon_tabcomp            $(srcdir)/ui_tabcomp.png
-
-ui_icons.h: $(extra_ICONS) Makefile.in
-       @sh -ec "echo '/* Auto generated file, do not edit */'; echo; \
-        echo '#ifndef UI_ICONS_H'; \
-        echo '#define UI_ICONS_H'; echo; \
-        $(GDK_PIXBUF_CSOURCE) --raw --extern --build-list $(ICON_PAIRS); \
-        echo '#endif /* UI_ICONS_H */'" > $@ || { echo "!!! Failed to generate $@ !!!"; exit 1; }
-
-ClayRGB1998_icc.h: ClayRGB1998.icc
-       echo "/*" > $@
-       echo " * This file was generated from ClayRGB1998.icc, DO NOT EDIT " >> $@
-       echo " * http://www.argyllcms.com/ClayRGB1998.zip " >> $@
-       echo " */ " >> $@
-       xxd -i $^ >> $@
-
-ui_spinner.o: ui_icons.h
-
-
-noinst_DATA = ui_icons.h
-CLEANFILES = $(noinst_DATA)
-
-extra_SLIK = \
-       $(extra_ICONS)
-
-include $(srcdir)/pan-view/Makefile.am
-include $(srcdir)/view_file/Makefile.am
-
-bin_PROGRAMS = geeqie
-
-geeqie_SOURCES = \
-       $(module_SLIK)  \
-       $(module_pan_view)      \
-       $(module_view_file)     \
-       ClayRGB1998.icc \
-       ClayRGB1998_icc.h \
-       advanced_exif.c \
-       advanced_exif.h \
-       bar.c           \
-       bar.h           \
-       bar_comment.c   \
-       bar_comment.h   \
-       bar_gps.c       \
-       bar_gps.h       \
-       bar_histogram.c \
-       bar_histogram.h \
-       bar_keywords.c  \
-       bar_keywords.h  \
-       bar_exif.c      \
-       bar_exif.h      \
-       bar_rating.c    \
-       bar_rating.h    \
-       bar_sort.c      \
-       bar_sort.h      \
-       cache.c         \
-       cache.h         \
-       cache-loader.c  \
-       cache-loader.h  \
-       cache_maint.c   \
-       cache_maint.h   \
-       cellrenderericon.c      \
-       cellrenderericon.h      \
-       collect.c       \
-       collect.h       \
-       collect-dlg.c   \
-       collect-dlg.h   \
-       collect-io.c    \
-       collect-io.h    \
-       collect-table.c \
-       collect-table.h \
-       color-man.c     \
-       color-man.h     \
-       compat.c        \
-       compat.h        \
-       debug.c         \
-       debug.h         \
-       desktop_file.c  \
-       desktop_file.h  \
-       dnd.c           \
-       dnd.h           \
-       dupe.c          \
-       dupe.h          \
-       editors.c       \
-       editors.h       \
-       exif.c          \
-       exif.h          \
-       exif-int.h      \
-       exif-common.c   \
-       exiv2.cc        \
-       filecache.c     \
-       filecache.h     \
-       filedata.c      \
-       filedata.h      \
-       filefilter.c    \
-       filefilter.h    \
-       gq-marshal.c    \
-       gq-marshal.h    \
-       gq-marshal.list \
-       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    \
-       fullscreen.h    \
-       histogram.c     \
-       histogram.h     \
-       history_list.c  \
-       history_list.h  \
-       image.c         \
-       image.h         \
-       image-load.c    \
-       image-load.h    \
-       image_load_cr3.c\
-       image_load_cr3.h\
-       image_load_gdk.c\
-       image_load_gdk.h\
-       image_load_jpeg.c\
-       image_load_jpeg.h\
-       image_load_tiff.c\
-       image_load_tiff.h\
-       image_load_dds.c\
-       image_load_dds.h\
-       image_load_external.c\
-       image_load_external.h\
-       image_load_collection.c\
-       image_load_collection.h\
-       image_load_pdf.c\
-       image_load_pdf.h\
-       image_load_heif.c\
-       image_load_heif.h\
-       image_load_webp.c\
-       image_load_webp.h\
-       image_load_zxscr.c\
-       image_load_zxscr.h\
-       image_load_djvu.c\
-       image_load_djvu.h\
-       image_load_psd.c\
-       image_load_psd.h\
-       image_load_j2k.c\
-       image_load_j2k.h\
-       image_load_jpegxl.c\
-       image_load_jpegxl.h\
-       image_load_libraw.c\
-       image_load_libraw.h\
-       image_load_svgz.c\
-       image_load_svgz.h\
-       image_load_ffmpegthumbnailer.c\
-       image_load_ffmpegthumbnailer.h\
-       image-overlay.c \
-       image-overlay.h \
-       img-view.c      \
-       img-view.h      \
-       jpeg_parser.c   \
-       jpeg_parser.h   \
-       layout.c        \
-       layout.h        \
-       layout_config.c \
-       layout_config.h \
-       layout_image.c  \
-       layout_image.h  \
-       layout_util.c   \
-       layout_util.h   \
-       keymap_template.c\
-       keymap_template.h\
-       lirc.c          \
-       lirc.h          \
-       logwindow.c     \
-       logwindow.h     \
-       main.c          \
-       main.h          \
-       md5-util.c      \
-       md5-util.h      \
-       menu.c          \
-       menu.h          \
-       metadata.c      \
-       metadata.h      \
-       misc.c          \
-       misc.h          \
-       options.c       \
-       options.h       \
-       osd.c   \
-       osd.h   \
-       pan-view.h      \
-       pixbuf-renderer.c       \
-       pixbuf-renderer.h       \
-       renderer-tiles.c        \
-       renderer-tiles.h        \
-       renderer-clutter.c      \
-       renderer-clutter.h      \
-       pixbuf_util.c   \
-       pixbuf_util.h   \
-       preferences.c   \
-       preferences.h   \
-       print.c         \
-       print.h         \
-       remote.c        \
-       remote.h        \
-       rcfile.c        \
-       rcfile.h        \
-       search.c        \
-       search.h        \
-       search_and_run.c        \
-       search_and_run.h        \
-       secure_save.c   \
-       secure_save.h   \
-       shortcuts.c     \
-       shortcuts.h     \
-       similar.c       \
-       similar.h       \
-       slideshow.c     \
-       slideshow.h     \
-       typedefs.h      \
-       thumb.c         \
-       thumb.h         \
-       thumb_standard.c        \
-       thumb_standard.h        \
-       toolbar.c       \
-       toolbar.h       \
-       trash.c         \
-       trash.h         \
-       uri_utils.c     \
-       uri_utils.h     \
-       utilops.c       \
-       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      \
-       whereami.h      \
-       window.c        \
-       window.h        \
-       lua.c           \
-       glua.h          \
-       zonedetect.c    \
-       zonedetect.h
-
-geeqie_LDADD = $(GTK_LIBS) $(GLIB_LIBS) $(INTLLIBS) $(JPEG_LIBS) $(TIFF_LIBS) $(LCMS_LIBS) $(EXIV2_LIBS) $(LIBCHAMPLAIN_LIBS) $(LIBCHAMPLAIN_GTK_LIBS) $(LUA_LIBS) $(CLUTTER_LIBS) $(CLUTTER_GTK_LIBS) $(FFMPEGTHUMBNAILER_LIBS) $(PDF_LIBS) $(HEIF_LIBS) $(WEBP_LIBS) $(SPELL_LIBS) $(DJVU_LIBS) $(J2K_LIBS) $(RAW_LIBS) $(JPEGXL_LIBS) $(ARCHIVE_LIBS)
-
-EXTRA_DIST = \
-       $(extra_SLIK)
-
-image-load.o: gq-marshal.h
-
-gq-marshal.h: gq-marshal.list
-       $(GLIB_GENMARSHAL) --prefix=gq_marshal $(srcdir)/gq-marshal.list --header >$@
-
-gq-marshal.c: gq-marshal.list gq-marshal.h
-       (echo "#include \"gq-marshal.h\"" ; $(GLIB_GENMARSHAL) --prefix=gq_marshal $(srcdir)/gq-marshal.list --body ) >$@
index 5b6905e..dbcbd66 100644 (file)
@@ -458,7 +458,7 @@ GList *editor_get_desktop_files(void)
        else
                xdg_data_dirs = g_strdup("/usr/share");
 
-       all_dirs = g_strconcat(get_rc_dir(), ":", gq_app_dir, ":", xdg_data_home_get(), ":", xdg_data_dirs, NULL);
+       all_dirs = g_strconcat(get_rc_dir(), ":", gq_appdir, ":", xdg_data_home_get(), ":", xdg_data_dirs, NULL);
 
        g_free(xdg_data_dirs);
 
index 4d14b75..b6b01f6 100644 (file)
@@ -17,9 +17,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #define _XOPEN_SOURCE
 
index ec2f4ff..5eed8ea 100644 (file)
@@ -45,9 +45,7 @@
  *     Add support for marker tag 0x0000
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
index f876127..dbfc588 100644 (file)
@@ -18,7 +18,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include "config.h"
+#include <config.h>
 
 #ifdef HAVE_EXIV2
 
index b9e5bc3..cc9b6d2 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
index 694f708..de4fda4 100644 (file)
@@ -20,9 +20,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
index c55f66e..5e296fe 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
index 305699f..7ae1a0f 100644 (file)
@@ -17,9 +17,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
index 835c2fd..4ba9823 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifndef HAVE_EXIV2
 
diff --git a/src/icons/Makefile.am b/src/icons/Makefile.am
deleted file mode 100644 (file)
index 7a6f89f..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-SUBDIRS = svg
-DIST_SUBDIRS = svg
-
-## GQview inline icons
-
-ICONS_INLINE = \
-       folder_closed.png       \
-       folder_locked.png       \
-       folder_open.png         \
-       folder_up.png           \
-       gqview_icon.png         \
-       geeqie_logo.png         \
-       scroller.png            \
-       sheet_broken.png        \
-       archive_file.png        \
-       sheet_metadata.png      \
-       sheet_unknown.png       \
-       sheet_video.png \
-       collection.png  \
-       icon_float.png          \
-       icon_thumb.png          \
-       icon_book.png           \
-       icon_config.png         \
-       icon_tools.png          \
-       icon_view.png           \
-       icon_panorama.png       \
-       icon_maintenance.png    \
-       icon_zoomfillhor.png    \
-       icon_zoomfillvert.png   \
-       icon_hidetools.png      \
-       icon_exif.png   \
-       icon_marks.png  \
-       icon_info.png   \
-       icon_sort.png   \
-       icon_pdf.png    \
-       icon_draw_rectangle.png \
-       icon_move.png \
-       icon_rename.png \
-       icon_select_all.png \
-       icon_select_none.png \
-       icon_select_invert.png \
-       icon_select_rectangle.png \
-       icon_file_filter.png \
-       icon_rotate_clockwise.png \
-       icon_rotate_counter_clockwise.png \
-       icon_rotate_180.png \
-       icon_mirror.png \
-       icon_flip.png \
-       icon_original.png \
-       icon_trash.png \
-       icon_heic.png \
-       icon_grayscale.png \
-       icon_exposure.png \
-       icon_split_pane_sync.png
-
-ICONS_INLINE_PAIRS = \
-       folder_closed           $(srcdir)/folder_closed.png     \
-       folder_locked           $(srcdir)/folder_locked.png     \
-       folder_open             $(srcdir)/folder_open.png       \
-       folder_up               $(srcdir)/folder_up.png         \
-       gqview_icon             $(srcdir)/gqview_icon.png       \
-       geeqie_logo             $(srcdir)/geeqie_logo.png       \
-       icon_float              $(srcdir)/icon_float.png        \
-       icon_thumb              $(srcdir)/icon_thumb.png        \
-       icon_scroller           $(srcdir)/scroller.png          \
-       icon_broken             $(srcdir)/sheet_broken.png      \
-       icon_archive    $(srcdir)/archive_file.png      \
-       icon_metadata           $(srcdir)/sheet_metadata.png    \
-       icon_unknown            $(srcdir)/sheet_unknown.png     \
-       icon_video              $(srcdir)/sheet_video.png       \
-       icon_collection $(srcdir)/collection.png        \
-       icon_book               $(srcdir)/icon_book.png         \
-       icon_config             $(srcdir)/icon_config.png       \
-       icon_tools              $(srcdir)/icon_tools.png        \
-       icon_view               $(srcdir)/icon_view.png         \
-       icon_panorama   $(srcdir)/icon_panorama.png     \
-       icon_maintenance        $(srcdir)/icon_maintenance.png  \
-       icon_zoomfillhor        $(srcdir)/icon_zoomfillhor.png  \
-       icon_zoomfillvert       $(srcdir)/icon_zoomfillvert.png \
-       icon_hidetools  $(srcdir)/icon_hidetools.png    \
-       icon_exif       $(srcdir)/icon_exif.png \
-       icon_marks      $(srcdir)/icon_marks.png        \
-       icon_info       $(srcdir)/icon_info.png \
-       icon_sort       $(srcdir)/icon_sort.png \
-       icon_pdf        $(srcdir)/icon_pdf.png \
-       icon_draw_rectangle     $(srcdir)/icon_draw_rectangle.png \
-       icon_move       $(srcdir)/icon_move.png \
-       icon_rename     $(srcdir)/icon_rename.png \
-       icon_select_all $(srcdir)/icon_select_all.png \
-       icon_select_none        $(srcdir)/icon_select_none.png \
-       icon_select_invert      $(srcdir)/icon_select_invert.png \
-       icon_select_rectangle   $(srcdir)/icon_select_rectangle.png \
-       icon_file_filter        $(srcdir)/icon_file_filter.png \
-       icon_rotate_clockwise   $(srcdir)/icon_rotate_clockwise.png \
-       icon_rotate_counter_clockwise   $(srcdir)/icon_rotate_counter_clockwise.png \
-       icon_rotate_180 $(srcdir)/icon_rotate_180.png \
-       icon_mirror     $(srcdir)/icon_mirror.png \
-       icon_flip       $(srcdir)/icon_flip.png \
-       icon_original   $(srcdir)/icon_original.png \
-       icon_trash      $(srcdir)/icon_trash.png \
-       icon_heic       $(srcdir)/icon_heic.png \
-       icon_grayscale  $(srcdir)/icon_grayscale.png \
-       icon_exposure   $(srcdir)/icon_exposure.png \
-       icon_split_pane_sync    $(srcdir)/icon_split_pane_sync.png
-
-icons_inline.h: $(ICONS_INLINE) Makefile.in
-       @sh -ec "echo '/* Auto generated file, do not edit */'; echo; \
-        echo '#ifndef ICONS_INLINE_H'; \
-        echo '#define ICONS_INLINE_H'; echo; \
-        $(GDK_PIXBUF_CSOURCE) --raw --extern --build-list $(ICONS_INLINE_PAIRS); \
-        echo '#endif /* ICONS_INLINE_H */'" > $@ || echo "!!! Failed to generate $@ !!!"
-
-noinst_DATA = icons_inline.h
-CLEANFILES = $(noinst_DATA)
-
-## end GQview specific icons
-
-
-EXTRA_DIST = \
-       $(ICONS_INLINE)         \
-       marker.xpm
diff --git a/src/icons/meson.build b/src/icons/meson.build
new file mode 100644 (file)
index 0000000..ba4bc2f
--- /dev/null
@@ -0,0 +1,69 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+icons_inline_pairs = [
+'folder_closed', files('folder_closed.png'),
+'folder_locked', files('folder_locked.png'),
+'folder_open', files('folder_open.png'),
+'folder_up', files('folder_up.png'),
+'gqview_icon', files('gqview_icon.png'),
+'geeqie_logo', files('geeqie_logo.png'),
+'icon_float', files('icon_float.png'),
+'icon_thumb', files('icon_thumb.png'),
+'icon_scroller', files('scroller.png'),
+'icon_broken', files('sheet_broken.png'),
+'icon_archive', files('archive_file.png'),
+'icon_metadata', files('sheet_metadata.png'),
+'icon_unknown', files('sheet_unknown.png'),
+'icon_video', files('sheet_video.png'),
+'icon_collection', files('collection.png'),
+'icon_book', files('icon_book.png'),
+'icon_config', files('icon_config.png'),
+'icon_tools', files('icon_tools.png'),
+'icon_view', files('icon_view.png'),
+'icon_panorama', files('icon_panorama.png'),
+'icon_maintenance', files('icon_maintenance.png'),
+'icon_zoomfillhor', files('icon_zoomfillhor.png'),
+'icon_zoomfillvert', files('icon_zoomfillvert.png'),
+'icon_hidetools', files('icon_hidetools.png'),
+'icon_exif', files('icon_exif.png'),
+'icon_marks', files('icon_marks.png'),
+'icon_info', files('icon_info.png'),
+'icon_sort', files('icon_sort.png'),
+'icon_pdf', files('icon_pdf.png'),
+'icon_draw_rectangle', files('icon_draw_rectangle.png'),
+'icon_move', files('icon_move.png'),
+'icon_rename', files('icon_rename.png'),
+'icon_select_all', files('icon_select_all.png'),
+'icon_select_none', files('icon_select_none.png'),
+'icon_select_invert', files('icon_select_invert.png'),
+'icon_select_rectangle', files('icon_select_rectangle.png'),
+'icon_file_filter', files('icon_file_filter.png'),
+'icon_rotate_clockwise', files('icon_rotate_clockwise.png'),
+'icon_rotate_counter_clockwise', files('icon_rotate_counter_clockwise.png'),
+'icon_rotate_180', files('icon_rotate_180.png'),
+'icon_mirror', files('icon_mirror.png'),
+'icon_flip', files('icon_flip.png'),
+'icon_original', files('icon_original.png'),
+'icon_trash', files('icon_trash.png'),
+'icon_heic', files('icon_heic.png'),
+'icon_grayscale', files('icon_grayscale.png'),
+'icon_exposure', files('icon_exposure.png'),
+'icon_split_pane_sync', files('icon_split_pane_sync.png')
+]
+
+icons_inline_h = custom_target( output : 'icons_inline.h',
+        command : [gdk_pixbuf_csource, '--raw', '--extern', '--build-list', icons_inline_pairs],
+        capture : true)
+
+project_sources += icons_inline_h
diff --git a/src/icons/svg/Makefile.am b/src/icons/svg/Makefile.am
deleted file mode 100644 (file)
index c79080a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-## Process this file with automake to produce Makefile.in.
-
-svg_images = \
-       folder_closed.svg       \
-       folder_locked.svg       \
-       folder_open.svg         \
-       folder_up.svg           \
-       gqview_icon.svg         \
-       icon_book.svg           \
-       icon_config.svg         \
-       icon_tools.svg          \
-       icon_view.svg           \
-       sheet_blank.svg         \
-       sheet_broken.svg        \
-       sheet_metadata.svg      \
-       sheet_unknown.svg       \
-       sheet_video.svg \
-       spinner_orbit.svg
-
-EXTRA_DIST = $(svg_images)
-
index 60b5312..40316dd 100644 (file)
@@ -577,7 +577,7 @@ static void layout_menu_write_rotate(GtkToggleAction *action, gpointer data, gbo
                        }
 
                rotation = g_strdup_printf("%d", fd_n->user_orientation);
-               command = g_strconcat(gq_bin_dir, "/geeqie-rotate -r ", rotation,
+               command = g_strconcat(gq_bindir, "/geeqie-rotate -r ", rotation,
                                                                keep_date ? " -t \"" : " \"", fd_n->path, "\"", NULL);
                cmdstatus = runcmd(command);
                run_result = WEXITSTATUS(cmdstatus);
index 1ee9992..c6888f4 100644 (file)
--- a/src/lua.c
+++ b/src/lua.c
@@ -18,7 +18,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include "config.h"
+#include <config.h>
 
 #ifdef HAVE_LUA
 
index e4a2627..0ccd1cd 100644 (file)
@@ -73,8 +73,8 @@ gchar *gq_prefix;
 gchar *gq_localedir;
 gchar *gq_helpdir;
 gchar *gq_htmldir;
-gchar *gq_app_dir;
-gchar *gq_bin_dir;
+gchar *gq_appdir;
+gchar *gq_bindir;
 gchar *gq_executable_path;
 gchar *desktop_file_template;
 gchar *instance_identifier;
@@ -712,7 +712,7 @@ static void process_command_line_for_cache_maintenance_option(gint argc, gchar *
 static void setup_env_path(void)
 {
        const gchar *old_path = g_getenv("PATH");
-       gchar *path = g_strconcat(gq_bin_dir, ":", old_path, NULL);
+       gchar *path = g_strconcat(gq_bindir, ":", old_path, NULL);
         g_setenv("PATH", path, TRUE);
        g_free(path);
 }
@@ -1109,18 +1109,16 @@ static void create_application_paths(gchar *argv[])
        path[length] = '\0';
 
        gq_executable_path = g_strdup(path);
-       dirname = g_path_get_dirname(gq_executable_path); // default is /usr/bin/
+       dirname = g_path_get_dirname(gq_executable_path);
        gq_prefix = g_path_get_dirname(dirname);
 
-       gq_localedir = g_build_filename(gq_prefix, "share", "locale", NULL);
-       tmp = g_build_filename(gq_prefix, "share", "doc", NULL);
-       gq_helpdir = g_strconcat(tmp, G_DIR_SEPARATOR_S, "geeqie-", VERSION, NULL);
-       gq_htmldir = g_build_filename(gq_helpdir, "html", NULL);
-       gq_app_dir = g_build_filename(gq_prefix, "share", "geeqie", NULL);
-       gq_bin_dir = g_build_filename(gq_prefix, "lib", "geeqie", NULL);
-       desktop_file_template = g_build_filename(gq_app_dir, "template.desktop", NULL);
+       gq_localedir = g_build_filename(gq_prefix, GQ_LOCALEDIR, NULL);
+       gq_helpdir = g_build_filename(gq_prefix, GQ_HELPDIR, NULL);
+       gq_htmldir = g_build_filename(gq_prefix, GQ_HTMLDIR, NULL);
+       gq_appdir = g_build_filename(gq_prefix, GQ_APPDIR, NULL);
+       gq_bindir = g_build_filename(gq_prefix, GQ_BINDIR, NULL);
+       desktop_file_template = g_build_filename(gq_appdir, "template.desktop", NULL);
 
-       g_free(tmp);
        g_free(dirname);
        g_free(path);
 }
index cb8eb7a..fe2ac10 100644 (file)
@@ -22,9 +22,7 @@
 #ifndef MAIN_H
 #define MAIN_H
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #ifdef HAVE_STRVERSCMP
 #  ifndef _GNU_SOURCE
@@ -151,8 +149,8 @@ extern gchar *gq_prefix;
 extern gchar *gq_localedir;
 extern gchar *gq_helpdir;
 extern gchar *gq_htmldir;
-extern gchar *gq_app_dir;
-extern gchar *gq_bin_dir;
+extern gchar *gq_appdir;
+extern gchar *gq_bindir;
 extern gchar *gq_executable_path;
 extern gchar *desktop_file_template;
 extern gchar *instance_identifier;
diff --git a/src/meson.build b/src/meson.build
new file mode 100644 (file)
index 0000000..91d938a
--- /dev/null
@@ -0,0 +1,297 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# 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',
+'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',
+'cache.h',
+'cache-loader.c',
+'cache-loader.h',
+'cache_maint.c',
+'cache_maint.h',
+'cellrenderericon.c',
+'cellrenderericon.h',
+'collect.c',
+'collect-dlg.c',
+'collect-dlg.h',
+'collect.h',
+'collect-io.c',
+'collect-io.h',
+'collect-table.c',
+'collect-table.h',
+'color-man.c',
+'color-man.h',
+'compat.c',
+'compat.h',
+'debug.c',
+'debug.h',
+'desktop_file.c',
+'desktop_file.h',
+'dnd.c',
+'dnd.h',
+'dupe.c',
+'dupe.h',
+'editors.c',
+'editors.h',
+'exif.c',
+'exif-common.c',
+'exif.h',
+'exif-int.h',
+'exiv2.cc',
+'filecache.c',
+'filecache.h',
+'filedata.c',
+'filedata.h',
+'filefilter.c',
+'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',
+'fullscreen.h',
+'glua.h',
+'histogram.c',
+'histogram.h',
+'history_list.c',
+'history_list.h',
+'image.c',
+'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.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-overlay.h',
+'img-view.c',
+'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',
+'layout.h',
+'layout_image.c',
+'layout_image.h',
+'layout_util.c',
+'layout_util.h',
+'lirc.c',
+'lirc.h',
+'logwindow.c',
+'logwindow.h',
+'lua.c',
+'main.c',
+'main.h',
+'md5-util.c',
+'md5-util.h',
+'menu.c',
+'menu.h',
+'metadata.c',
+'metadata.h',
+'misc.c',
+'misc.h',
+'options.c',
+'options.h',
+'osd.c',
+'osd.h',
+'pan-view.h',
+'pixbuf-renderer.c',
+'pixbuf-renderer.h',
+'pixbuf_util.c',
+'pixbuf_util.h',
+'preferences.c',
+'preferences.h',
+'print.c',
+'print.h',
+'rcfile.c',
+'rcfile.h',
+'remote.c',
+'remote.h',
+'renderer-clutter.c',
+'renderer-clutter.h',
+'renderer-tiles.c',
+'renderer-tiles.h',
+'search_and_run.c',
+'search_and_run.h',
+'search.c',
+'search.h',
+'secure_save.c',
+'secure_save.h',
+'shortcuts.c',
+'shortcuts.h',
+'similar.c',
+'similar.h',
+'slideshow.c',
+'slideshow.h',
+'thumb.c',
+'thumb.h',
+'thumb_standard.c',
+'thumb_standard.h',
+'toolbar.c',
+'toolbar.h',
+'trash.c',
+'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',
+'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',
+'whereami.h',
+'window.c',
+'window.h',
+'zonedetect.c',
+'zonedetect.h')
+
+project_sources += main_sources
+
+subdir('icons')
+subdir('pan-view')
+subdir('view_file')
+
+gqmarshal = gnome.genmarshal('gq-marshal', prefix : 'gq_marshal', sources : 'gq-marshal.list')
+project_sources += gqmarshal[0]
+project_sources += gqmarshal[1]
+
+icon_pairs = [
+'icon_spinner', files('ui_spinner.png'),
+'icon_tabcomp', files('ui_tabcomp.png'),
+]
+
+ui_icons_h = custom_target(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)
+
+project_sources += 'ClayRGB1998_icc.h'
+
+executable('geeqie', project_sources,
+dependencies : [
+champlain_dep,
+champlain_gtk_dep,
+clutter_dep,
+clutter_gtk_dep,
+ddjvuapi_dep,
+exiv2_dep,
+glib_dep,
+gspell_dep,
+gtk_dep,
+lcms_dep,
+libarchive_dep,
+libffmpegthumbnailer_dep,
+libheif_dep,
+libjpeg_dep,
+libjxl_dep,
+libopenjp2_dep,
+libraw_dep,
+libwebp_dep,
+lirc_dep,
+lua_dep,
+poppler_glib_dep,
+thread_dep,
+tiff_dep
+],
+include_directories : [configuration_inc], install : true)
index 1130135..51e670e 100644 (file)
@@ -179,7 +179,7 @@ gchar *decode_geo_parameters(const gchar *input_text)
        gchar *message;
        gchar *dir;
 
-       message = decode_geo_script(gq_bin_dir, input_text);
+       message = decode_geo_script(gq_bindir, input_text);
        if (strstr(message, "Error"))
                {
                g_free(message);
diff --git a/src/pan-view/Makefile.am b/src/pan-view/Makefile.am
deleted file mode 100644 (file)
index 2401b5e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-module_pan_view = \
-       %D%/pan-calendar.c      \
-       %D%/pan-calendar.h      \
-       %D%/pan-folder.c        \
-       %D%/pan-folder.h        \
-       %D%/pan-grid.c  \
-       %D%/pan-grid.h  \
-       %D%/pan-item.c  \
-       %D%/pan-item.h  \
-       %D%/pan-timeline.c      \
-       %D%/pan-timeline.h      \
-       %D%/pan-types.h \
-       %D%/pan-util.c  \
-       %D%/pan-util.h  \
-       %D%/pan-view.c  \
-       %D%/pan-view.h  \
-       %D%/pan-view-filter.c   \
-       %D%/pan-view-filter.h   \
-       %D%/pan-view-search.c   \
-       %D%/pan-view-search.h
-
diff --git a/src/pan-view/meson.build b/src/pan-view/meson.build
new file mode 100644 (file)
index 0000000..e76c963
--- /dev/null
@@ -0,0 +1,33 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+pan_view_sources = files('pan-calendar.c',
+'pan-calendar.h',
+'pan-folder.c',
+'pan-folder.h',
+'pan-grid.c',
+'pan-grid.h',
+'pan-item.c',
+'pan-item.h',
+'pan-timeline.c',
+'pan-timeline.h',
+'pan-types.h',
+'pan-util.c',
+'pan-util.h',
+'pan-view.c',
+'pan-view-filter.c',
+'pan-view-filter.h',
+'pan-view.h',
+'pan-view-search.c',
+'pan-view-search.h')
+project_sources += pan_view_sources
index 3989715..19521e0 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index 3e3601a..d322e41 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 
 #include <pwd.h>
 #include <stdio.h>
index 5d48b45..cbff451 100644 (file)
@@ -21,8 +21,7 @@
 
 #ifndef UI_FILEOPS_H
 #define UI_FILEOPS_H
-
-#include "config.h"
+#include <config.h>
 #include <sys/stat.h>
 #include <sys/time.h>
 #include <sys/types.h>
index 0d09e08..e5bf3a7 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index 5528849..7ad048b 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index c2d59b8..b3bd002 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index c821330..899bc12 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index 372c8c6..eda3503 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index 8b5616d..cf6175b 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index b572c1d..ef65af5 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
index 4d75304..5fa4ad4 100644 (file)
@@ -19,9 +19,7 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <config.h>
 #include "intl.h"
 
 #include <stdio.h>
diff --git a/src/view_file/Makefile.am b/src/view_file/Makefile.am
deleted file mode 100644 (file)
index 7c06985..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-module_view_file = \
-       %D%/view_file.c         \
-       %D%/view_file_icon.c    \
-       %D%/view_file_icon.h    \
-       %D%/view_file_list.c    \
-       %D%/view_file_list.h
diff --git a/src/view_file/meson.build b/src/view_file/meson.build
new file mode 100644 (file)
index 0000000..782f180
--- /dev/null
@@ -0,0 +1,19 @@
+# This file is a part of Geeqie project (https://www.geeqie.org/).
+# Copyright (C) 2008 - 2022 The Geeqie Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#
+
+view_file_sources= files('view_file.c',
+'view_file_icon.c',
+'view_file_icon.h',
+'view_file_list.c',
+'view_file_list.h')
+project_sources += view_file_sources
index 2fe3fde..94912c7 100755 (executable)
@@ -32,7 +32,7 @@ then
                minor_version=$2
 #              patch_version=$3  # not used on master branch
 
-               printf '%s' "$major_version" && printf '%s' "." && printf '%s' "$minor_version" && printf '%s' "+git" && git log --max-count=1 --date=format:"%Y%m%d" --format="%ad" && printf '%s' "-" && git rev-parse --quiet --verify --short HEAD
+               printf '%s%s%s%s%s%s%s' "$major_version" "." "$minor_version" "+git" $(git log --max-count=1 --date=format:"%Y%m%d" --format="%ad") "-" $(git rev-parse --quiet --verify --short HEAD)
        else
                version=$(head -1 NEWS)
                # shellcheck disable=SC2086