From 7099c38736b97970194f90d1bc3130c27e0a3f6b Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Sun, 17 Jul 2022 18:33:05 +0100 Subject: [PATCH] Change configuration system from Autotools to Meson --- .gitignore | 3 +- .travis.yml | 10 - .tx/config | 7 - Makefile.am | 56 -- README.md | 32 +- acinclude.m4 | 321 ------ aminclude.am | 186 ---- autogen.sh | 140 --- config.h.in | 227 +++++ configure.ac | 929 ------------------ doc/Makefile.am | 31 - doc/create-doxygen-lua-api.sh | 6 +- doc/docbook/CommandLineOptions.xml | 10 +- doc/meson.build | 27 + geeqie-install-debian.sh | 59 +- geeqie.1 | 8 +- geeqie.desktop.in | 6 +- gen_changelog.sh | 45 +- gen_readme.sh | 11 +- meson.build | 355 +++++++ meson_options.txt | 46 + plugins/Makefile.am | 9 - plugins/camera-import/Makefile.am | 9 - .../camera-import/camera-import.desktop.in | 4 +- plugins/camera-import/meson.build | 22 + plugins/export-jpeg/Makefile.am | 9 - plugins/export-jpeg/export-jpeg.desktop.in | 4 +- plugins/export-jpeg/meson.build | 22 + plugins/geocode-parameters/Makefile.am | 1 - plugins/geocode-parameters/meson.build | 14 + plugins/image-crop/Makefile.am | 9 - plugins/image-crop/image-crop.desktop.in | 4 +- plugins/image-crop/meson.build | 22 + plugins/lens/Makefile.am | 1 - plugins/lens/meson.build | 14 + plugins/meson.build | 31 + plugins/random-image/Makefile.am | 9 - plugins/random-image/meson.build | 22 + plugins/random-image/random-image.desktop.in | 4 +- plugins/rotate/Makefile.am | 10 - plugins/rotate/meson.build | 22 + plugins/rotate/rotate.desktop.in | 2 +- plugins/symlink/Makefile.am | 9 - plugins/symlink/meson.build | 22 + plugins/symlink/symlink.desktop.in | 2 +- plugins/template.desktop.in | 2 +- plugins/tethered-photography/Makefile.am | 9 - plugins/tethered-photography/meson.build | 22 + .../tethered-photography.desktop.in | 2 +- po/meson.build | 16 + scripts/generate-appimage.sh | 12 +- src/Makefile.am | 329 ------- src/editors.c | 2 +- src/exif-common.c | 4 +- src/exif.c | 4 +- src/exiv2.cc | 2 +- src/format_canon.c | 4 +- src/format_fuji.c | 4 +- src/format_nikon.c | 4 +- src/format_olympus.c | 4 +- src/format_raw.c | 4 +- src/icons/Makefile.am | 121 --- src/icons/meson.build | 69 ++ src/icons/svg/Makefile.am | 21 - src/layout_util.c | 2 +- src/lua.c | 2 +- src/main.c | 22 +- src/main.h | 8 +- src/meson.build | 297 ++++++ src/misc.c | 2 +- src/pan-view/Makefile.am | 21 - src/pan-view/meson.build | 33 + src/ui_bookmark.c | 4 +- src/ui_fileops.c | 4 +- src/ui_fileops.h | 3 +- src/ui_help.c | 4 +- src/ui_menu.c | 4 +- src/ui_misc.c | 4 +- src/ui_pathsel.c | 4 +- src/ui_spinner.c | 4 +- src/ui_tabcomp.c | 4 +- src/ui_tree_edit.c | 4 +- src/ui_utildlg.c | 4 +- src/view_file/Makefile.am | 6 - src/view_file/meson.build | 19 + version.sh | 2 +- 86 files changed, 1442 insertions(+), 2442 deletions(-) delete mode 100644 .travis.yml delete mode 100644 .tx/config delete mode 100644 Makefile.am delete mode 100644 acinclude.m4 delete mode 100644 aminclude.am delete mode 100755 autogen.sh create mode 100644 config.h.in delete mode 100644 configure.ac delete mode 100644 doc/Makefile.am create mode 100644 doc/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt delete mode 100644 plugins/Makefile.am delete mode 100644 plugins/camera-import/Makefile.am create mode 100644 plugins/camera-import/meson.build delete mode 100644 plugins/export-jpeg/Makefile.am create mode 100644 plugins/export-jpeg/meson.build delete mode 100644 plugins/geocode-parameters/Makefile.am create mode 100644 plugins/geocode-parameters/meson.build delete mode 100644 plugins/image-crop/Makefile.am create mode 100644 plugins/image-crop/meson.build delete mode 100644 plugins/lens/Makefile.am create mode 100644 plugins/lens/meson.build create mode 100644 plugins/meson.build delete mode 100644 plugins/random-image/Makefile.am create mode 100644 plugins/random-image/meson.build delete mode 100644 plugins/rotate/Makefile.am create mode 100644 plugins/rotate/meson.build delete mode 100644 plugins/symlink/Makefile.am create mode 100644 plugins/symlink/meson.build delete mode 100644 plugins/tethered-photography/Makefile.am create mode 100644 plugins/tethered-photography/meson.build create mode 100644 po/meson.build delete mode 100644 src/Makefile.am delete mode 100644 src/icons/Makefile.am create mode 100644 src/icons/meson.build delete mode 100644 src/icons/svg/Makefile.am create mode 100644 src/meson.build delete mode 100644 src/pan-view/Makefile.am create mode 100644 src/pan-view/meson.build delete mode 100644 src/view_file/Makefile.am create mode 100644 src/view_file/meson.build diff --git a/.gitignore b/.gitignore index 3d6611c8..714b0ec2 100644 --- a/.gitignore +++ b/.gitignore @@ -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 index 23693a86..00000000 --- a/.travis.yml +++ /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 index 1c1c077f..00000000 --- a/.tx/config +++ /dev/null @@ -1,7 +0,0 @@ -[main] -host = https://www.transifex.com - -[geeqie.main] -file_filter = po/.po -source_file = po/geeqie.pot -source_lang = en diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 93a9b866..00000000 --- a/Makefile.am +++ /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 diff --git a/README.md b/README.md index b803ff43..ad751ff3 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,10 @@ The project website is 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; 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 index 577ccf1d..00000000 --- a/acinclude.m4 +++ /dev/null @@ -1,321 +0,0 @@ -# This file is part of Autoconf. -*- Autoconf -*- - -# Copyright (C) 2004 Oren Ben-Kiki -# This file is distributed under the same terms as the Autoconf macro files. - -########## CHANGELOG ################## -# 2009-01-14 Martin Mann -# * DX_ARG_ABLE : new variable 'DX_FLAG_DX_CURRENT_FEATURE' -# * DX_CLEAR_DEPEND : use of explicit variable 'DX_FLAG_DX_CURRENT_FEATURE' -# in AC_SUBST instead of 'DX_FLAG[]DX_CURRENT_FEATURE' which is rejected by -# newer autotools - -# Generate automatic documentation using Doxygen. Works in concert with the -# aminclude.m4 file and a compatible doxygen configuration file. Defines the -# following public macros: -# -# DX_???_FEATURE(ON|OFF) - control the default setting fo a Doxygen feature. -# Supported features are 'DOXYGEN' itself, 'DOT' for generating graphics, -# 'HTML' for plain HTML, 'CHM' for compressed HTML help (for MS users), 'CHI' -# for generating a separate .chi file by the .chm file, and 'MAN', 'RTF', -# 'XML', 'PDF' and 'PS' for the appropriate output formats. The environment -# variable DOXYGEN_PAPER_SIZE may be specified to override the default 'a4wide' -# paper size. -# -# By default, HTML, PDF and PS documentation is generated as this seems to be -# the most popular and portable combination. MAN pages created by Doxygen are -# usually problematic, though by picking an appropriate subset and doing some -# massaging they might be better than nothing. CHM and RTF are specific for MS -# (note that you can't generate both HTML and CHM at the same time). The XML is -# rather useless unless you apply specialized post-processing to it. -# -# The macro mainly controls the default state of the feature. The use can -# override the default by specifying --enable or --disable. The macros ensure -# that contradictory flags are not given (e.g., --enable-doxygen-html and -# --enable-doxygen-chm, --enable-doxygen-anything with --disable-doxygen, etc.) -# Finally, each feature will be automatically disabled (with a warning) if the -# required programs are missing. -# -# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN with -# the following parameters: a one-word name for the project for use as a -# filename base etc., an optional configuration file name (the default is -# 'Doxyfile', the same as Doxygen's default), and an optional output directory -# name (the default is 'doxygen-doc'). - -## ----------## -## Defaults. ## -## ----------## - -DX_ENV="" -AC_DEFUN([DX_FEATURE_doc], ON) -AC_DEFUN([DX_FEATURE_dot], ON) -AC_DEFUN([DX_FEATURE_man], OFF) -AC_DEFUN([DX_FEATURE_html], ON) -AC_DEFUN([DX_FEATURE_chm], OFF) -AC_DEFUN([DX_FEATURE_chi], OFF) -AC_DEFUN([DX_FEATURE_rtf], OFF) -AC_DEFUN([DX_FEATURE_xml], OFF) -AC_DEFUN([DX_FEATURE_pdf], ON) -AC_DEFUN([DX_FEATURE_ps], ON) - -## --------------- ## -## Private macros. ## -## --------------- ## - -# DX_ENV_APPEND(VARIABLE, VALUE) -# ------------------------------ -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) - -# DX_DIRNAME_EXPR -# --------------- -# Expand into a shell expression prints the directory part of a path. -AC_DEFUN([DX_DIRNAME_EXPR], - [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) - -# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF) -# ------------------------------------- -# Expands according to the M4 (static) status of the feature. -AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) - -# DX_REQUIRE_PROG(VARIABLE, PROGRAM) -# ---------------------------------- -# Require the specified program to be found for the DX_CURRENT_FEATURE to work. -AC_DEFUN([DX_REQUIRE_PROG], [ -AC_PATH_TOOL([$1], [$2]) -if test "$DX_FLAG_DX_CURRENT_FEATURE$$1" = 1; then - AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) - AC_SUBST([DX_FLAG_DX_CURRENT_FEATURE], 0) -fi -]) - -# DX_TEST_FEATURE(FEATURE) -# ------------------------ -# Expand to a shell expression testing whether the feature is active. -AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) - -# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE) -# ------------------------------------------------- -# Verify that a required features has the right state before trying to turn on -# the DX_CURRENT_FEATURE. -AC_DEFUN([DX_CHECK_DEPEND], [ -test "$DX_FLAG_$1" = "$2" \ -|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, - requires, contradicts) doxygen-DX_CURRENT_FEATURE]) -]) - -# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE) -# ---------------------------------------------------------- -# Turn off the DX_CURRENT_FEATURE if the required feature is off. -AC_DEFUN([DX_CLEAR_DEPEND], [ -test "$DX_FLAG_$1" = "$2" || AC_SUBST([DX_FLAG_DX_CURRENT_FEATURE], 0) -]) - - -# DX_FEATURE_ARG(FEATURE, DESCRIPTION, -# CHECK_DEPEND, CLEAR_DEPEND, -# REQUIRE, DO-IF-ON, DO-IF-OFF) -# -------------------------------------------- -# Parse the command-line option controlling a feature. CHECK_DEPEND is called -# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND), -# otherwise CLEAR_DEPEND is called to turn off the default state if a required -# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional -# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and -# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature. -AC_DEFUN([DX_ARG_ABLE], [ - AC_DEFUN([DX_CURRENT_FEATURE], [$1]) - AC_DEFUN([DX_FLAG_DX_CURRENT_FEATURE], [DX_FLAG_$1]) - AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) - AC_ARG_ENABLE(doxygen-$1, - [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], - [--enable-doxygen-$1]), - DX_IF_FEATURE([$1], [don't $2], [$2]))], - [ -case "$enableval" in -#( -y|Y|yes|Yes|YES) - AC_SUBST([DX_FLAG_$1], 1) - $3 -;; #( -n|N|no|No|NO) - AC_SUBST([DX_FLAG_$1], 0) -;; #( -*) - AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) -;; -esac -], [ -AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) -$4 -]) -if DX_TEST_FEATURE([$1]); then - $5 - : -fi -if DX_TEST_FEATURE([$1]); then - AM_CONDITIONAL(DX_COND_$1, :) - $6 - : -else - AM_CONDITIONAL(DX_COND_$1, false) - $7 - : -fi -]) - -## -------------- ## -## Public macros. ## -## -------------- ## - -# DX_XXX_FEATURE(DEFAULT_STATE) -# ----------------------------- -AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) -AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) -AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) -AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) -AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) -AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) -AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) - -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) -# --------------------------------------------------------- -# PROJECT also serves as the base name for the documentation files. -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". -AC_DEFUN([DX_INIT_DOXYGEN], [ - -# Files: -AC_SUBST([DX_PROJECT], [$1]) -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) - -# Environment variables used inside doxygen.cfg: -DX_ENV_APPEND(SRCDIR, $srcdir) -DX_ENV_APPEND(PROJECT, $DX_PROJECT) -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) -DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) - -# Doxygen itself: -DX_ARG_ABLE(doc, [generate any doxygen documentation], - [], - [], - [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) - DX_REQUIRE_PROG([DX_PERL], perl)], - [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) - -# Dot for graphics: -DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_DOT], dot)], - [DX_ENV_APPEND(HAVE_DOT, YES) - DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], - [DX_ENV_APPEND(HAVE_DOT, NO)]) - -# Man pages generation: -DX_ARG_ABLE(man, [generate doxygen manual pages], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_MAN, YES)], - [DX_ENV_APPEND(GENERATE_MAN, NO)]) - -# RTF file generation: -DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_RTF, YES)], - [DX_ENV_APPEND(GENERATE_RTF, NO)]) - -# XML file generation: -DX_ARG_ABLE(xml, [generate doxygen XML documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_XML, YES)], - [DX_ENV_APPEND(GENERATE_XML, NO)]) - -# (Compressed) HTML help generation: -DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_HHC], hhc)], - [DX_ENV_APPEND(HHC_PATH, $DX_HHC) - DX_ENV_APPEND(GENERATE_HTML, YES) - DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], - [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) - -# Separate CHI file generation. -DX_ARG_ABLE(chi, [generate doxygen separate compressed HTML help index file], - [DX_CHECK_DEPEND(chm, 1)], - [DX_CLEAR_DEPEND(chm, 1)], - [], - [DX_ENV_APPEND(GENERATE_CHI, YES)], - [DX_ENV_APPEND(GENERATE_CHI, NO)]) - -# Plain HTML pages generation: -DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], - [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], - [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], - [], - [DX_ENV_APPEND(GENERATE_HTML, YES)], - [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) - -# PostScript file generation: -DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_LATEX], latex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_DVIPS], dvips) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# PDF file generation: -DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# LaTeX generation for PS and/or PDF: -if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then - AM_CONDITIONAL(DX_COND_latex, :) - DX_ENV_APPEND(GENERATE_LATEX, YES) -else - AM_CONDITIONAL(DX_COND_latex, false) - DX_ENV_APPEND(GENERATE_LATEX, NO) -fi - -# Paper size for PS and/or PDF: -AC_ARG_VAR(DOXYGEN_PAPER_SIZE, - [a4wide (default), a4, letter, legal or executive]) -case "$DOXYGEN_PAPER_SIZE" in -#( -"") - AC_SUBST(DOXYGEN_PAPER_SIZE, "") -;; #( -a4wide|a4|letter|legal|executive) - DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) -;; #( -*) - AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) -;; -esac - -#For debugging: -#echo DX_FLAG_doc=$DX_FLAG_doc -#echo DX_FLAG_dot=$DX_FLAG_dot -#echo DX_FLAG_man=$DX_FLAG_man -#echo DX_FLAG_html=$DX_FLAG_html -#echo DX_FLAG_chm=$DX_FLAG_chm -#echo DX_FLAG_chi=$DX_FLAG_chi -#echo DX_FLAG_rtf=$DX_FLAG_rtf -#echo DX_FLAG_xml=$DX_FLAG_xml -#echo DX_FLAG_pdf=$DX_FLAG_pdf -#echo DX_FLAG_ps=$DX_FLAG_ps -#echo DX_ENV=$DX_ENV -]) diff --git a/aminclude.am b/aminclude.am deleted file mode 100644 index 420049ec..00000000 --- a/aminclude.am +++ /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 index 9a326050..00000000 --- a/autogen.sh +++ /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 index 00000000..65bdb49e --- /dev/null +++ b/config.h.in @@ -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 file defines LC_MESSAGES. */ +#define HAVE_LC_MESSAGES 1 no longr requierd + +/* Define to 1 if you have the header file. */ +#define HAVE_LOCALE_H 1 not required + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the 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 header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the 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 index bbd30fd2..00000000 --- a/configure.ac +++ /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 ]]) - AC_CHECK_MEMBER([image_data.image_data_width], [AC_DEFINE(HAVE_FFMPEGTHUMBNAILER_RGB, 1, [define if ffmpegthumbnailer supports raw RGB output])], [], [[#include ]]) - 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 ], [ -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 < - + GEEQIE 1 -January 2022 -Geeqie 1.7.2 GTK3 +July 2022 +Geeqie 1.7+git20220716-5ef5596d GTK3 Geeqie @@ -30,7 +30,7 @@ zooming, panning, thumbnails and sorting images into collections. Generated for version: -Geeqie 1.7.2 +Geeqie 1.7+git20220716-5ef5596d Valid options: @@ -158,7 +158,7 @@ zooming, panning, thumbnails and sorting images into collections. - --config-load: <FILE>|layout ID + --config-load:<FILE>|layout ID load configuration from FILE diff --git a/doc/meson.build b/doc/meson.build new file mode 100644 index 00000000..ecfaae57 --- /dev/null +++ b/doc/meson.build @@ -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') diff --git a/geeqie-install-debian.sh b/geeqie-install-debian.sh index 527d8917..baf97d2c 100755 --- a/geeqie-install-debian.sh +++ b/geeqie-install-debian.sh @@ -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" diff --git a/geeqie.1 b/geeqie.1 index 4cbecb85..effd2c83 100644 --- 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: |layout ID +\fB\-\-config\-load\fR:|layout ID load configuration from FILE .TP \fB\-cm\fR \fB\-\-cache\-metadata\fR diff --git a/geeqie.desktop.in b/geeqie.desktop.in index 8711a094..6592e00d 100644 --- a/geeqie.desktop.in +++ b/geeqie.desktop.in @@ -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 diff --git a/gen_changelog.sh b/gen_changelog.sh index e74bd592..b2b68e9a 100755 --- a/gen_changelog.sh +++ b/gen_changelog.sh @@ -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 "" >>ChangeLog.$$.old.html && \ -echo "" > ChangeLog.$$.new.html && \ -echo "" >> ChangeLog.$$.new.html && \ -echo "
    " >> 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:"
  • view commit
  • Author: %aN
    Date: %ad


    " 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD >> ChangeLog.$$.new.html && \ -echo "" >> ChangeLog.$$.new.html && \ -cat ChangeLog.$$.old.html >> ChangeLog.$$.new.html && \ -echo "
" >> ChangeLog.$$.new.html && \ -echo "" >> ChangeLog.$$.new.html && \ -echo "" >> 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 "" >>"$builddir/ChangeLog.$$.old.html" && \ +echo "" > "$builddir/ChangeLog.$$.new.html" && \ +echo "" >> "$builddir/ChangeLog.$$.new.html" && \ +echo "
    " >> "$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:"
  • view commit
  • Author: %aN
    Date: %ad


    " 1b58572cf58e9d2d4a0305108395dab5c66d3a09..HEAD >> "$builddir/ChangeLog.$$.new.html" && \ +echo "" >> "$builddir/ChangeLog.$$.new.html" && \ +cat "$builddir/ChangeLog.$$.old.html" >> "$builddir/ChangeLog.$$.new.html" && \ +echo "
" >> "$builddir/ChangeLog.$$.new.html" && \ +echo "" >> "$builddir/ChangeLog.$$.new.html" && \ +echo "" >> "$builddir/ChangeLog.$$.new.html" + +rm "$builddir/ChangeLog.$$.old.html" +mv -f "$builddir/ChangeLog.$$.new.html" "$builddir/ChangeLog.html" exit 0 diff --git a/gen_readme.sh b/gen_readme.sh index 4ffa1239..d087eb91 100755 --- a/gen_readme.sh +++ b/gen_readme.sh @@ -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 index 00000000..efaaa1ff --- /dev/null +++ b/meson.build @@ -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 ') + + conf_data.set('HAVE_FFMPEGTHUMBNAILER_METADATA', 1) + endif + + if cc.has_member('struct image_data_struct', 'image_data_width', + prefix : '#include ' ) + + 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 +#include +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 index 00000000..cb1a69cf --- /dev/null +++ b/meson_options.txt @@ -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 index 989ad99e..00000000 --- a/plugins/Makefile.am +++ /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 index 58b91b84..00000000 --- a/plugins/camera-import/Makefile.am +++ /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) diff --git a/plugins/camera-import/camera-import.desktop.in b/plugins/camera-import/camera-import.desktop.in index 60bef21b..cd9181ea 100644 --- a/plugins/camera-import/camera-import.desktop.in +++ b/plugins/camera-import/camera-import.desktop.in @@ -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 index 00000000..1c8242d2 --- /dev/null +++ b/plugins/camera-import/meson.build @@ -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 index b2a7da35..00000000 --- a/plugins/export-jpeg/Makefile.am +++ /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) diff --git a/plugins/export-jpeg/export-jpeg.desktop.in b/plugins/export-jpeg/export-jpeg.desktop.in index 8e2b21ef..70ba8439 100644 --- a/plugins/export-jpeg/export-jpeg.desktop.in +++ b/plugins/export-jpeg/export-jpeg.desktop.in @@ -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 index 00000000..86b204a1 --- /dev/null +++ b/plugins/export-jpeg/meson.build @@ -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 index eab0c1d5..00000000 --- a/plugins/geocode-parameters/Makefile.am +++ /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 index 00000000..8e7e74cf --- /dev/null +++ b/plugins/geocode-parameters/meson.build @@ -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 index 809260c0..00000000 --- a/plugins/image-crop/Makefile.am +++ /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) diff --git a/plugins/image-crop/image-crop.desktop.in b/plugins/image-crop/image-crop.desktop.in index 16cb806e..39107ca1 100644 --- a/plugins/image-crop/image-crop.desktop.in +++ b/plugins/image-crop/image-crop.desktop.in @@ -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 index 00000000..d023b1f8 --- /dev/null +++ b/plugins/image-crop/meson.build @@ -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 index 4447d440..00000000 --- a/plugins/lens/Makefile.am +++ /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 index 00000000..dd314bf2 --- /dev/null +++ b/plugins/lens/meson.build @@ -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 index 00000000..7045fb16 --- /dev/null +++ b/plugins/meson.build @@ -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 index 423ae9b7..00000000 --- a/plugins/random-image/Makefile.am +++ /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 index 00000000..5db10b51 --- /dev/null +++ b/plugins/random-image/meson.build @@ -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) diff --git a/plugins/random-image/random-image.desktop.in b/plugins/random-image/random-image.desktop.in index e7765f10..afd3f649 100644 --- a/plugins/random-image/random-image.desktop.in +++ b/plugins/random-image/random-image.desktop.in @@ -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 index 07227444..00000000 --- a/plugins/rotate/Makefile.am +++ /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 index 00000000..fc5871b8 --- /dev/null +++ b/plugins/rotate/meson.build @@ -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) diff --git a/plugins/rotate/rotate.desktop.in b/plugins/rotate/rotate.desktop.in index 65e1b6f6..217a287d 100644 --- a/plugins/rotate/rotate.desktop.in +++ b/plugins/rotate/rotate.desktop.in @@ -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 index 0e9039cd..00000000 --- a/plugins/symlink/Makefile.am +++ /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 index 00000000..55495003 --- /dev/null +++ b/plugins/symlink/meson.build @@ -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) diff --git a/plugins/symlink/symlink.desktop.in b/plugins/symlink/symlink.desktop.in index 678d8dbc..f82a706e 100644 --- a/plugins/symlink/symlink.desktop.in +++ b/plugins/symlink/symlink.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] Version=1.0 Type=Application -_Name=Symlink +Name=Symlink # call the helper script Exec=geeqie-symlink %f diff --git a/plugins/template.desktop.in b/plugins/template.desktop.in index 83bdc12b..5e0c778e 100644 --- a/plugins/template.desktop.in +++ b/plugins/template.desktop.in @@ -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 index 841b4679..00000000 --- a/plugins/tethered-photography/Makefile.am +++ /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 index 00000000..536877aa --- /dev/null +++ b/plugins/tethered-photography/meson.build @@ -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) diff --git a/plugins/tethered-photography/tethered-photography.desktop.in b/plugins/tethered-photography/tethered-photography.desktop.in index 5ffdb35a..ef8d76b7 100644 --- a/plugins/tethered-photography/tethered-photography.desktop.in +++ b/plugins/tethered-photography/tethered-photography.desktop.in @@ -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 index 00000000..193b6d07 --- /dev/null +++ b/po/meson.build @@ -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()) diff --git a/scripts/generate-appimage.sh b/scripts/generate-appimage.sh index e8ff83de..bfb47828 100755 --- a/scripts/generate-appimage.sh +++ b/scripts/generate-appimage.sh @@ -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 index 15013f3a..00000000 --- a/src/Makefile.am +++ /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 ) >$@ diff --git a/src/editors.c b/src/editors.c index 5b6905ee..dbcbd666 100644 --- a/src/editors.c +++ b/src/editors.c @@ -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); diff --git a/src/exif-common.c b/src/exif-common.c index 4d14b750..b6b01f6b 100644 --- a/src/exif-common.c +++ b/src/exif-common.c @@ -17,9 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #define _XOPEN_SOURCE diff --git a/src/exif.c b/src/exif.c index ec2f4ff9..5eed8ea2 100644 --- a/src/exif.c +++ b/src/exif.c @@ -45,9 +45,7 @@ * Add support for marker tag 0x0000 */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/exiv2.cc b/src/exiv2.cc index f8761270..dbfc588d 100644 --- a/src/exiv2.cc +++ b/src/exiv2.cc @@ -18,7 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#include "config.h" +#include #ifdef HAVE_EXIV2 diff --git a/src/format_canon.c b/src/format_canon.c index b9e5bc38..cc9b6d20 100644 --- a/src/format_canon.c +++ b/src/format_canon.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/format_fuji.c b/src/format_fuji.c index 694f7086..de4fda43 100644 --- a/src/format_fuji.c +++ b/src/format_fuji.c @@ -20,9 +20,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/format_nikon.c b/src/format_nikon.c index c55f66ed..5e296fe2 100644 --- a/src/format_nikon.c +++ b/src/format_nikon.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/format_olympus.c b/src/format_olympus.c index 305699ff..7ae1a0f3 100644 --- a/src/format_olympus.c +++ b/src/format_olympus.c @@ -17,9 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/format_raw.c b/src/format_raw.c index 835c2fd3..4ba9823f 100644 --- a/src/format_raw.c +++ b/src/format_raw.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #ifndef HAVE_EXIV2 diff --git a/src/icons/Makefile.am b/src/icons/Makefile.am deleted file mode 100644 index 7a6f89f5..00000000 --- a/src/icons/Makefile.am +++ /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 index 00000000..ba4bc2f9 --- /dev/null +++ b/src/icons/meson.build @@ -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 index c79080a6..00000000 --- a/src/icons/svg/Makefile.am +++ /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) - diff --git a/src/layout_util.c b/src/layout_util.c index 60b53124..40316dd0 100644 --- a/src/layout_util.c +++ b/src/layout_util.c @@ -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); diff --git a/src/lua.c b/src/lua.c index 1ee99921..c6888f4e 100644 --- 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 #ifdef HAVE_LUA diff --git a/src/main.c b/src/main.c index e4a26272..0ccd1cd9 100644 --- a/src/main.c +++ b/src/main.c @@ -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); } diff --git a/src/main.h b/src/main.h index cb8eb7a5..fe2ac10b 100644 --- a/src/main.h +++ b/src/main.h @@ -22,9 +22,7 @@ #ifndef MAIN_H #define MAIN_H -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #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 index 00000000..91d938a9 --- /dev/null +++ b/src/meson.build @@ -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) diff --git a/src/misc.c b/src/misc.c index 1130135c..51e670ec 100644 --- a/src/misc.c +++ b/src/misc.c @@ -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 index 2401b5ed..00000000 --- a/src/pan-view/Makefile.am +++ /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 index 00000000..e76c963a --- /dev/null +++ b/src/pan-view/meson.build @@ -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 diff --git a/src/ui_bookmark.c b/src/ui_bookmark.c index 39897155..19521e08 100644 --- a/src/ui_bookmark.c +++ b/src/ui_bookmark.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_fileops.c b/src/ui_fileops.c index 3e3601ac..d322e416 100644 --- a/src/ui_fileops.c +++ b/src/ui_fileops.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include #include diff --git a/src/ui_fileops.h b/src/ui_fileops.h index 5d48b45d..cbff4510 100644 --- a/src/ui_fileops.h +++ b/src/ui_fileops.h @@ -21,8 +21,7 @@ #ifndef UI_FILEOPS_H #define UI_FILEOPS_H - -#include "config.h" +#include #include #include #include diff --git a/src/ui_help.c b/src/ui_help.c index 0d09e088..e5bf3a75 100644 --- a/src/ui_help.c +++ b/src/ui_help.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_menu.c b/src/ui_menu.c index 5528849b..7ad048b9 100644 --- a/src/ui_menu.c +++ b/src/ui_menu.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_misc.c b/src/ui_misc.c index c2d59b88..b3bd0029 100644 --- a/src/ui_misc.c +++ b/src/ui_misc.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_pathsel.c b/src/ui_pathsel.c index c821330c..899bc122 100644 --- a/src/ui_pathsel.c +++ b/src/ui_pathsel.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_spinner.c b/src/ui_spinner.c index 372c8c62..eda3503b 100644 --- a/src/ui_spinner.c +++ b/src/ui_spinner.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_tabcomp.c b/src/ui_tabcomp.c index 8b5616d3..cf6175b9 100644 --- a/src/ui_tabcomp.c +++ b/src/ui_tabcomp.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_tree_edit.c b/src/ui_tree_edit.c index b572c1d5..ef65af56 100644 --- a/src/ui_tree_edit.c +++ b/src/ui_tree_edit.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/ui_utildlg.c b/src/ui_utildlg.c index 4d753043..5fa4ad40 100644 --- a/src/ui_utildlg.c +++ b/src/ui_utildlg.c @@ -19,9 +19,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif +#include #include "intl.h" #include diff --git a/src/view_file/Makefile.am b/src/view_file/Makefile.am deleted file mode 100644 index 7c069856..00000000 --- a/src/view_file/Makefile.am +++ /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 index 00000000..782f1803 --- /dev/null +++ b/src/view_file/meson.build @@ -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 diff --git a/version.sh b/version.sh index 2fe3fde2..94912c70 100755 --- a/version.sh +++ b/version.sh @@ -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 -- 2.20.1