From 85458ef87e12e1a3fcd8c94639de315178cc9778 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 10 Feb 2018 13:13:06 +0100 Subject: [PATCH 01/15] Convert to meson based build system --- Makefile | 279 ------------------------------------------- colors.mk | 31 ----- common.mk | 9 -- config.mk | 173 --------------------------- data/meson.build | 10 ++ doc/Makefile | 55 --------- doc/config.mk | 8 -- doc/meson.build | 23 ++++ meson.build | 190 +++++++++++++++++++++++++++++ meson_options.txt | 15 +++ po/LINGUAS | 21 ++++ po/Makefile | 58 --------- po/POTFILES | 30 +++++ po/meson.build | 4 + tests/Makefile | 132 -------------------- tests/config.mk | 17 --- tests/meson.build | 24 ++++ zathura.pc.in | 9 -- zathura/version.h.in | 12 +- 19 files changed, 323 insertions(+), 777 deletions(-) delete mode 100644 Makefile delete mode 100644 colors.mk delete mode 100644 common.mk delete mode 100644 config.mk create mode 100644 data/meson.build delete mode 100644 doc/Makefile delete mode 100644 doc/config.mk create mode 100644 doc/meson.build create mode 100644 meson.build create mode 100644 meson_options.txt create mode 100644 po/LINGUAS delete mode 100644 po/Makefile create mode 100644 po/POTFILES create mode 100644 po/meson.build delete mode 100644 tests/Makefile delete mode 100644 tests/config.mk create mode 100644 tests/meson.build delete mode 100644 zathura.pc.in diff --git a/Makefile b/Makefile deleted file mode 100644 index 9a22c30..0000000 --- a/Makefile +++ /dev/null @@ -1,279 +0,0 @@ -# See LICENSE file for license and copyright information - -include config.mk -include colors.mk -include common.mk - -# source files -OSOURCE = $(sort $(wildcard ${PROJECT}/*.c) \ - ${PROJECT}/resources.c) -SOURCE_FILTER = - -ifneq (${WITH_SQLITE},0) -CPPFLAGS += -DWITH_SQLITE -else -SOURCE_FILTER += ${PROJECT}/database-sqlite.c -endif - -ifneq ($(WITH_MAGIC),0) -CPPFLAGS += -DWITH_MAGIC -endif - -ifneq ($(WITH_SYNCTEX),0) -CPPFLAGS += -DWITH_SYNCTEX -endif - -ifneq ($(wildcard ${VALGRIND_SUPPRESSION_FILE}),) -VALGRIND_ARGUMENTS += --suppressions=${VALGRIND_SUPPRESSION_FILE} -endif - -ifeq (,$(findstring -DZATHURA_PLUGINDIR,${CPPFLAGS})) -CPPFLAGS += -DZATHURA_PLUGINDIR=\"${PLUGINDIR}\" -endif -ifeq (,$(findstring -DGETTEXT_PACKAGE,${CPPFLAGS})) -CPPFLAGS += -DGETTEXT_PACKAGE=\"${PROJECT}\" -endif -ifeq (,$(findstring -DLOCALEDIR,${CPPFLAGS})) -CPPFLAGS += -DLOCALEDIR=\"${LOCALEDIR}\" -endif - -SOURCE = $(filter-out $(SOURCE_FILTER),$(OSOURCE)) -OBJECTS = $(addprefix ${BUILDDIR_RELEASE}/,${SOURCE:.c=.o}) -OBJECTS_DEBUG = $(addprefix ${BUILDDIR_DEBUG}/,${SOURCE:.c=.o}) -OBJECTS_GCOV = $(addprefix ${BUILDDIR_GCOV}/,${SOURCE:.c=.o}) -HEADERINST = $(addprefix ${PROJECT}/,version.h document.h macros.h page.h types.h plugin-api.h links.h) - -all: options ${PROJECT} po build-manpages - -# pkg-config based version checks -.version-checks/%: config.mk - $(QUIET)test $($(*)_VERSION_CHECK) -eq 0 || \ - ${PKG_CONFIG} --atleast-version $($(*)_MIN_VERSION) $($(*)_PKG_CONFIG_NAME) || ( \ - echo "The minimum required version of $(*) is $($(*)_MIN_VERSION)" && \ - false \ - ) - @mkdir -p .version-checks - $(QUIET)touch $@ - -options: - @echo ${PROJECT} build options: - @echo "CFLAGS = ${CFLAGS}" - @echo "LIBS = ${LIBS}" - @echo "DFLAGS = ${DFLAGS}" - @echo "CC = ${CC}" - -# generated files - -${PROJECT}/version.h: ${PROJECT}/version.h.in config.mk - $(QUIET)sed -e 's/ZVMAJOR/${ZATHURA_VERSION_MAJOR}/' \ - -e 's/ZVMINOR/${ZATHURA_VERSION_MINOR}/' \ - -e 's/ZVREV/${ZATHURA_VERSION_REV}/' \ - -e 's/ZVAPI/${ZATHURA_API_VERSION}/' \ - -e 's/ZVABI/${ZATHURA_ABI_VERSION}/' ${PROJECT}/version.h.in > ${PROJECT}/version.h.tmp - $(QUIET)mv ${PROJECT}/version.h.tmp ${PROJECT}/version.h - -${PROJECT}/resources.%: data/zathura.gresource.xml config.mk - $(call colorecho,GEN,$@) - @mkdir -p ${DEPENDDIR}/$(dir $@) - $(QUIET)$(GLIB_COMPILE_RESOURCES) --generate --c-name=zathura_resources --internal \ - --dependency-file=$(DEPENDDIR)/$@.dep \ - --sourcedir=data --target=$@ data/zathura.gresource.xml - -# common dependencies - -${OBJECTS} ${OBJECTS_DEBUG} ${OBJECTS_GCOV}: config.mk \ - .version-checks/GIRARA \ - .version-checks/GLIB \ - .version-checks/GTK \ - ${PROJECT}/version.h \ - ${PROJECT}/resources.h - -# rlease build - -${BUILDDIR_RELEASE}/%.o: %.c - $(call colorecho,CC,$<) - @mkdir -p ${DEPENDDIR}/$(dir $@) - @mkdir -p $(dir $(abspath $@)) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} -o $@ $< -MMD -MF ${DEPENDDIR}/$@.dep - -${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT}: ${OBJECTS} - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_RELEASE}/${BINDIR} - $(QUIET)${CC} ${SFLAGS} ${LDFLAGS} \ - -o ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} ${OBJECTS} ${LIBS} - -${PROJECT}: ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} - -release: ${PROJECT} - -run: release - $(QUIET)./${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} - -# debug build - -${BUILDDIR_DEBUG}/%.o: %.c - $(call colorecho,CC,$<) - @mkdir -p ${DEPENDDIR}/$(dir $@) - @mkdir -p $(dir $(abspath $@)) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} ${DFLAGS} \ - -o $@ $< -MMD -MF ${DEPENDDIR}/$@.dep - -${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT}: ${OBJECTS_DEBUG} - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_DEBUG}/${BINDIR} - $(QUIET)${CC} ${LDFLAGS} \ - -o ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} ${OBJECTS_DEBUG} ${LIBS} - -debug: ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -run-debug: debug - $(QUIET)./${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -# gcov build - -${BUILDDIR_GCOV}/%.o: %.c - $(call colorecho,CC,$<) - @mkdir -p ${DEPENDDIR}/$(dir $@) - @mkdir -p $(dir $(abspath $@)) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} ${GCOV_CFLAGS} \ - -o $@ $< -MMD -MF ${DEPENDDIR}/$@.dep - -${BUILDDIR_GCOV}/${BINDIR}/${PROJECT}: ${OBJECTS_GCOV} - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_GCOV}/${BINDIR} - $(QUIET)${CC} ${LDFLAGS} ${GCOV_CFLAGS} ${GCOV_LDFLAGS} \ - -o ${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} ${OBJECTS_GCOV} ${LIBS} - -gcov: options ${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} - $(QUIET)${MAKE} -C tests run-gcov - $(call colorecho,LCOV,"Analyse data") - $(QUIET)${LCOV_EXEC} ${LCOV_FLAGS} - $(call colorecho,LCOV,"Generate report") - $(QUIET)${GENHTML_EXEC} ${GENHTML_FLAGS} - -run-gcov: ${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} - $(QUIET)./${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} - -# clean - -clean: - $(QUIET)rm -rf \ - ${BUILDDIR} \ - ${DEPENDDIR} \ - ${TARFILE} \ - ${TARDIR} \ - ${PROJECT}.pc \ - ${PROJECT}/version.h \ - ${PROJECT}/version.h.tmp \ - ${PROJECT}/resources.c \ - ${PROJECT}/resources.h \ - $(PROJECT).info \ - gcov \ - .version-checks - $(QUIET)$(MAKE) -C tests clean - $(QUIET)$(MAKE) -C po clean - $(QUIET)$(MAKE) -C doc clean - -${PROJECT}.pc: ${PROJECT}.pc.in config.mk - $(QUIET)echo project=${PROJECT} > ${PROJECT}.pc - $(QUIET)echo version=${VERSION} >> ${PROJECT}.pc - $(QUIET)echo apiversion=${ZATHURA_API_VERSION} >> ${PROJECT}.pc - $(QUIET)echo abiversion=${ZATHURA_ABI_VERSION} >> ${PROJECT}.pc - $(QUIET)echo includedir=${INCLUDEDIR} >> ${PROJECT}.pc - $(QUIET)echo plugindir=${PLUGINDIR} >> ${PROJECT}.pc - $(QUIET)echo GTK_VERSION=3 >> ${PROJECT}.pc - $(QUIET)cat ${PROJECT}.pc.in >> ${PROJECT}.pc - -valgrind: debug - $(QUIET)G_SLICE=always-malloc G_DEBUG=gc-friendly ${VALGRIND} ${VALGRIND_ARGUMENTS} \ - ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -gdb: debug - $(QUIET)cgdb ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -test: ${OBJECTS} - $(QUIET)$(MAKE) -C tests run - -dist: clean build-manpages - $(QUIET)tar -czf $(TARFILE) --exclude=.gitignore \ - --transform 's,^,zathura-$(VERSION)/,' \ - `git ls-files` \ - doc/_build/$(PROJECT).1 doc/_build/$(PROJECT)rc.5 - -doc: - $(QUIET)$(MAKE) -C doc - -po: - $(QUIET)${MAKE} -C po - -update-po: - $(QUIET)${MAKE} -C po update-po - -build-manpages: - $(QUIET)${MAKE} -C doc man - -install-manpages: build-manpages - $(call colorecho,INSTALL,"man pages") - $(QUIET)mkdir -m 755 -p ${DESTDIR}${MANPREFIX}/man1 ${DESTDIR}${MANPREFIX}/man5 -ifneq "$(wildcard doc/_build/${PROJECT}.1)" "" - $(QUIET)install -m 644 doc/_build/${PROJECT}.1 ${DESTDIR}${MANPREFIX}/man1 -endif -ifneq "$(wildcard doc/_build/${PROJECT}rc.5)" "" - $(QUIET)install -m 644 doc/_build/${PROJECT}rc.5 ${DESTDIR}${MANPREFIX}/man5 -endif - -install-headers: ${PROJECT}.pc - $(call colorecho,INSTALL,"header files") - $(QUIET)mkdir -m 755 -p ${DESTDIR}${INCLUDEDIR}/${PROJECT} - $(QUIET)install -m 644 ${HEADERINST} ${DESTDIR}${INCLUDEDIR}/${PROJECT} - - $(call colorecho,INSTALL,"pkgconfig file") - $(QUIET)mkdir -m 755 -p ${DESTDIR}${LIBDIR}/pkgconfig - $(QUIET)install -m 644 ${PROJECT}.pc ${DESTDIR}${LIBDIR}/pkgconfig - -install-dbus: - $(call colorecho,INSTALL,"D-Bus interface definitions") - $(QUIET)mkdir -m 755 -p $(DESTDIR)$(DBUSINTERFACEDIR) - $(QUIET)install -m 644 data/org.pwmt.zathura.xml $(DESTDIR)$(DBUSINTERFACEDIR) - -install-appdata: - $(call colorecho,INSTALL,"AppData file") - $(QUIET)mkdir -m 755 -p $(DESTDIR)$(APPDATAPREFIX) - $(QUIET)install -m 644 data/$(PROJECT).appdata.xml $(DESTDIR)$(APPDATAPREFIX) - -install: all install-headers install-manpages install-dbus install-appdata - $(call colorecho,INSTALL,"executeable file") - $(QUIET)mkdir -m 755 -p ${DESTDIR}${PREFIX}/bin - $(QUIET)install -m 755 ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} ${DESTDIR}${PREFIX}/bin - $(QUIET)mkdir -m 755 -p ${DESTDIR}${DESKTOPPREFIX} - $(call colorecho,INSTALL,"desktop file") - $(QUIET)install -m 644 ${PROJECT}.desktop ${DESTDIR}${DESKTOPPREFIX} - $(MAKE) -C po install - -uninstall-headers: - $(call colorecho,UNINSTALL,"header files") - $(QUIET)rm -rf ${DESTDIR}${INCLUDEDIR}/${PROJECT} - $(call colorecho,UNINSTALL,"pkgconfig file") - $(QUIET)rm -f ${DESTDIR}${LIBDIR}/pkgconfig/${PROJECT}.pc - -uninstall: uninstall-headers - $(ECHO) removing executable file - $(call colorecho,UNINSTALL,"executeable") - $(QUIET)rm -f ${DESTDIR}${PREFIX}/bin/${PROJECT} - $(call colorecho,UNINSTALL,"man pages") - $(QUIET)rm -f ${DESTDIR}${MANPREFIX}/man1/${PROJECT}.1 - $(QUIET)rm -f ${DESTDIR}${MANPREFIX}/man5/${PROJECT}rc.5 - $(call colorecho,UNINSTALL,"desktop file") - $(QUIET)rm -f ${DESTDIR}${DESKTOPPREFIX}/${PROJECT}.desktop - $(call colorecho,UNINSTALL,"D-Bus interface definitions") - $(QUIET)rm -f $(DESTDIR)$(DBUSINTERFACEDIR)/org.pwmt.zathura.xml - $(call colorecho,UNINSTALL,"AppData file") - $(QUIET)rm -f $(DESTDIR)$(APPDATAPREFIX)/$(PROJECT).appdata.xml - $(MAKE) -C po uninstall - -DEPENDS = ${DEPENDDIRS:^=${DEPENDDIR}/}$(addprefix ${DEPENDDIR}/,${OBJECTS:.o=.o.dep}) --include ${DEPENDS} - -.PHONY: all options clean doc debug valgrind gdb dist doc install uninstall \ - test po install-headers uninstall-headers update-po install-manpages \ - build-manpages install-dbus diff --git a/colors.mk b/colors.mk deleted file mode 100644 index 774204b..0000000 --- a/colors.mk +++ /dev/null @@ -1,31 +0,0 @@ -# See LICENSE file for license and copyright information - -ifeq ($(COLOR),1) -# GCC diagnostics colors -DIAGNOSTICS_COLOR_AVAILABLE ?= $(shell ($(CC) -fdiagnostics-color=always -E - /dev/null 2>/dev/null && echo 1) || echo 0) -ifeq ($(DIAGNOSTICS_COLOR_AVAILABLE),1) -CPPFLAGS += -fdiagnostics-color=always -endif - -# colorful output -TPUT ?= /usr/bin/tput -TPUT_AVAILABLE ?= $(shell ${TPUT} -V 2>/dev/null) - -ifdef TPUT_AVAILABLE -COLOR_NORMAL = `$(TPUT) sgr0` -COLOR_ACTION = `$(TPUT) bold``$(TPUT) setaf 3` -COLOR_COMMENT = `$(TPUT) bold``$(TPUT) setaf 2` -COLOR_BRACKET = `$(TPUT) setaf 4` -define colorecho - @echo $(COLOR_BRACKET)" ["$(COLOR_ACTION)$1$(COLOR_BRACKET)"] "$(COLOR_COMMENT)$2$(COLOR_BRACKET) $(COLOR_NORMAL) -endef -else -define colorecho - @echo " [$1]" $2 -endef -endif -else -define colorecho - @echo " [$1]" $2 -endef -endif diff --git a/common.mk b/common.mk deleted file mode 100644 index eb586f8..0000000 --- a/common.mk +++ /dev/null @@ -1,9 +0,0 @@ -# See LICENSE file for license and copyright information - -ifeq "$(VERBOSE)" "0" -ECHO=@echo -QUIET=@ -else -ECHO=@\# -QUIET= -endif diff --git a/config.mk b/config.mk deleted file mode 100644 index d40a334..0000000 --- a/config.mk +++ /dev/null @@ -1,173 +0,0 @@ -# See LICENSE file for license and copyright information -# zathura make config - -# project -PROJECT = zathura - -ZATHURA_VERSION_MAJOR = 0 -ZATHURA_VERSION_MINOR = 3 -ZATHURA_VERSION_REV = 8 -# If the API changes, the API version and the ABI version have to be bumped. -ZATHURA_API_VERSION = 2 -# If the ABI breaks for any reason, this has to be bumped. -ZATHURA_ABI_VERSION = 3 -VERSION = ${ZATHURA_VERSION_MAJOR}.${ZATHURA_VERSION_MINOR}.${ZATHURA_VERSION_REV} - -# version checks -# If you want to disable any of the checks, set *_VERSION_CHECK to 0. - -# girara -GIRARA_VERSION_CHECK ?= 1 -GIRARA_MIN_VERSION = 0.2.8 -GIRARA_PKG_CONFIG_NAME = girara-gtk3 -# glib -GLIB_VERSION_CHECK ?= 1 -GLIB_MIN_VERSION = 2.50 -GLIB_PKG_CONFIG_NAME = glib-2.0 -# GTK -GTK_VERSION_CHECK ?= 1 -GTK_MIN_VERSION = 3.10 -GTK_PKG_CONFIG_NAME = gtk+-3.0 - -# pkg-config binary -PKG_CONFIG ?= pkg-config - -# glib-compile-resources -GLIB_COMPILE_RESOURCES ?= glib-compile-resources - -# database -# To disable support for the sqlite backend set WITH_SQLITE to 0. -WITH_SQLITE ?= $(shell (${PKG_CONFIG} --atleast-version=3.5.9 sqlite3 && echo 1) || echo 0) - -# synctex -# To disable support for synctex with libsynctex set WITH_SYNCTEX to 0. -WITH_SYNCTEX ?= $(shell (${PKG_CONFIG} synctex && echo 1) || echo 0) - -# mimetype detection -# To disable support for mimetype detction with libmagic set WITH_MAGIC to 0. -WITH_MAGIC ?= 1 - -# paths -PREFIX ?= /usr -MANPREFIX ?= ${PREFIX}/share/man -DESKTOPPREFIX ?= ${PREFIX}/share/applications -APPDATAPREFIX ?= ${PREFIX}/share/metainfo -LIBDIR ?= ${PREFIX}/lib -INCLUDEDIR ?= ${PREFIX}/include -DBUSINTERFACEDIR ?= ${PREFIX}/share/dbus-1/interfaces -VIMFTPLUGINDIR ?= ${PREFIX}/share/vim/addons/ftplugin -DEPENDDIR ?= .depend -BUILDDIR ?= build -BUILDDIR_RELEASE ?= ${BUILDDIR}/release -BUILDDIR_DEBUG ?= ${BUILDDIR}/debug -BUILDDIR_GCOV ?= ${BUILDDIR}/gcov -BINDIR ?= bin - -# plugin directory -PLUGINDIR ?= ${LIBDIR}/zathura -# locale directory -LOCALEDIR ?= ${PREFIX}/share/locale - -# libs -ifeq (${GTK_INC}-${GTK_LIB},-) -PKG_CONFIG_LIBS += gtk+-3.0 -else -INCS += ${GTK_INC} -LIBS += ${GTK_LIB} -endif - -ifeq (${GLIB_INC}-${GLIB_LIB},-) -PKG_CONFIG_LIBS += gthread-2.0 gmodule-no-export-2.0 glib-2.0 -else -INCS += ${GLIB_INC} -LIBS += ${GLIB_LIB} -endif - -ifeq (${GIRARA_INC}-${GIRARA_LIB},-) -PKG_CONFIG_LIBS += girara-gtk3 -else -INCS += ${GIRARA_INC} -LIBS += ${GIRARA_LIB} -endif - -ifneq (${WITH_SQLITE},0) -ifeq (${SQLITE_INC}-${SQLITE_LIB},-) -PKG_CONFIG_LIBS += sqlite3 -else -INCS += ${SQLITE_INC} -LIBS += ${SQLITE_LIB} -endif -endif - -ifneq (${WITH_MAGIC},0) -MAGIC_INC ?= -MAGIC_LIB ?= -lmagic - -INCS += ${MAGIC_INC} -LIBS += ${MAGIC_LIB} -endif - -ifneq ($(WITH_SYNCTEX),0) -ifeq (${SYNCTEX_INC}-${SYNCTEX_LIB},-) -PKG_CONFIG_LIBS += synctex -else -INCS += ${SYNCTEX_INC} -LIBS += ${SYNCTEX_LIB} -endif -endif - -ifneq (${PKG_CONFIG_LIBS},) -INCS += $(shell ${PKG_CONFIG} --cflags ${PKG_CONFIG_LIBS}) -LIBS += $(shell ${PKG_CONFIG} --libs ${PKG_CONFIG_LIBS}) -endif -LIBS += -lpthread -lm - -# pre-processor flags -CPPFLAGS += -D_FILE_OFFSET_BITS=64 - -# compiler flags -CFLAGS += -std=c11 -pedantic -Wall -Wno-format-zero-length -Wextra $(INCS) - -# debug -DFLAGS ?= -g - -# linker flags -LDFLAGS += -rdynamic - -# compiler -CC ?= gcc - -# strip -SFLAGS ?= -s - -# msgfmt -MSGFMT ?= msgfmt - -# gcov & lcov -GCOV_CFLAGS=-fprofile-arcs -ftest-coverage -GCOV_LDFLAGS=-fprofile-arcs -LCOV_OUTPUT=gcov -LCOV_EXEC=lcov -LCOV_FLAGS=--base-directory . --directory ${BUILDDIR_GCOV} --capture --rc \ - lcov_branch_coverage=1 --output-file ${BUILDDIR_GCOV}/$(PROJECT).info -GENHTML_EXEC=genhtml -GENHTML_FLAGS=--rc lcov_branch_coverage=1 --output-directory ${LCOV_OUTPUT} ${BUILDDIR_GCOV}/$(PROJECT).info - -# valgrind -VALGRIND = valgrind -VALGRIND_ARGUMENTS = --tool=memcheck --leak-check=yes --leak-resolution=high \ - --show-reachable=yes --log-file=zathura-valgrind.log -VALGRIND_SUPPRESSION_FILE = zathura.suppression - -# set to something != 0 if you want verbose build output -VERBOSE ?= 0 - -# gettext package name -GETTEXT_PACKAGE ?= ${PROJECT} - -# colors -COLOR ?= 1 - -# dist -TARFILE = ${PROJECT}-${VERSION}.tar.gz -TARDIR = ${PROJECT}-${VERSION} diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..1e7dc72 --- /dev/null +++ b/data/meson.build @@ -0,0 +1,10 @@ +gnome = import('gnome') +zathura_resources = gnome.compile_resources( + 'resources', + 'zathura.gresource.xml', + c_name: 'zathura_resources', + dependencies: files('zathura.css_t', 'org.pwmt.zathura.xml') +) + +install_data('zathura.appdata.xml', install_dir: metainfodir) +install_data('org.pwmt.zathura.xml', install_dir: dbusinterfacesdir) diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index c4151da..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,55 +0,0 @@ -# See LICENSE file for license and copyright information -# -include ../config.mk -include ../common.mk -include ../colors.mk -include config.mk - -MAN_SOURCES=$(wildcard man/*.rst) $(wildcard man/*.txt) man/conf.py -DOXYGEN_SOURCES=$(wildcard ../zathura/*.h) Doxyfile -HTML_SOURCES=$(wildcard *.rst api/*.rst configuration/*.rst installation/*.rst usage/*.rst) conf.py - -SPHINX_OPTS+=-d $(SPHINX_BUILDDIR)/doctrees - -all: man html - -clean: - $(call colorecho,RM,doc/$(SPHINX_BUILDDIR)) - $(QUIET)rm -rf $(SPHINX_BUILDDIR)/ - -$(SPHINX_BUILDDIR)/html/index.html: $(HTML_SOURCES) $(SPHINX_BUILDDIR)/doxygen/xml/index.xml - $(QUIET)mkdir -p $(SPHINX_BUILDDIR)/html - $(call colorecho,DOC,"Build HTML documentation") - $(QUIET)$(SPHINX_BIN) -b html $(SPHINX_OPTS) . $(SPHINX_BUILDDIR)/html - -$(SPHINX_BUILDDIR)/zathura.1: $(MAN_SOURCES) - $(QUIET)mkdir -p $(SPHINX_BUILDDIR) - $(call colorecho,DOC,"Build man pages") - $(QUIET)$(SPHINX_BIN) -b man $(SPHINX_OPTS) man $(SPHINX_BUILDDIR) - -$(SPHINX_BUILDDIR)/zathurarc.5: $(SPHINX_BUILDDIR)/zathura.1 - @if test -f $@; then :; else \ - rm -f $(SPHINX_BUILDDIR)/zathura.1; \ - $(MAKE) $(SPHINX_BUILDDIR)/zathura.1; \ - fi - -$(SPHINX_BUILDDIR)/doxygen/xml/index.xml: $(DOXYGEN_SOURCES) - $(QUIET)mkdir -p $(SPHINX_BUILDDIR)/doxygen/xml - $(call colorecho,DOC,"Run doxygen") - $(QUIET)$(DOXYGEN_BIN) Doxyfile - -ifeq ($(shell which $(SPHINX_BIN) >/dev/null 2>&1; echo $$?), 1) -man: -html: -else -man: $(SPHINX_BUILDDIR)/zathura.1 $(SPHINX_BUILDDIR)/zathurarc.5 - -# TODO: Make a better test for breathe and sphinx_rtd_theme -ifeq ($(shell which $(DOXYGEN_BIN) >/dev/null 2>&1 && $(PYTHON_BIN) -c "import breathe; import sphinx_rtd_theme" >/dev/null 2>&1; echo $$?), 0) -html: $(SPHINX_BUILDDIR)/html/index.html -else -html: -endif -endif - -.PHONY: clean html man all diff --git a/doc/config.mk b/doc/config.mk deleted file mode 100644 index 60e395b..0000000 --- a/doc/config.mk +++ /dev/null @@ -1,8 +0,0 @@ -# See LICENSE file for license and copyright information - -SPHINX_BIN ?= sphinx-build -SPHINX_BUILDDIR = _build -SPHINX_OPTS ?= -DOXYGEN_BIN ?= doxygen -# This needs to be the same python interpreter as used by sphinx-build -PYTHON_BIN ?= python diff --git a/doc/meson.build b/doc/meson.build new file mode 100644 index 0000000..4c24352 --- /dev/null +++ b/doc/meson.build @@ -0,0 +1,23 @@ +sphinx = find_program('sphinx-build') +custom_target('man pages', + command: [sphinx, '-b', 'man', join_paths(meson.current_source_dir(), 'man'), meson.current_build_dir()], + output: ['zathura.1', 'zathurarc.5'], + input: [ + 'man/conf.py', + 'man/_bindings.txt', + 'man/_commands.txt', + 'man/_options.txt', + 'man/_synopsis.txt', + 'man/zathurarc.5.rst', + 'man/_bugs.txt', + 'man/_configuration.txt', + 'man/_description.txt', + 'man/_synctex.txt', + 'man/zathura.1.rst' + ], + build_by_default: true +) +install_man( + join_paths(meson.current_build_dir(), 'zathura.1'), + join_paths(meson.current_build_dir(), 'zathurarc.5') +) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..4f3ab19 --- /dev/null +++ b/meson.build @@ -0,0 +1,190 @@ +project('zathura', 'c', + version: '0.3.8', + meson_version: '>=0.43', + default_options: 'c_std=c11', +) + +version = meson.project_version() +version_array = version.split('.') + +# Rules for so_major and so_minor: +# Before a release perform the following checks against the last release: +# * If a function has been removed or the paramaters of a function have changed +# bump SOMAJOR and set SOMINOR to 0. +# * If any of the exported datastructures have changed in a incompatible way +# bump SOMAJOR and set SOMINOR to 0. +# * If a function has been added bump SOMINOR. +plugin_api_version = '2' +plugin_abi_version = '3' + +conf_data = configuration_data() +conf_data.set('ZVMAJOR', version_array[0]) +conf_data.set('ZVMINOR', version_array[1]) +conf_data.set('ZVREV', version_array[2]) +conf_data.set('ZVAPI', plugin_api_version) +conf_data.set('ZVABI', plugin_abi_version) +conf_data.set('version', version) + +cc = meson.get_compiler('c', required: false) + +prefix = get_option('prefix') +localedir = get_option('localedir') +datadir = get_option('datadir') +metainfodir = join_paths(datadir, 'metainfo') +desktopdir = join_paths(datadir, 'applications') +dbusinterfacesdir = join_paths(datadir, 'dbus-1', 'interfaces') +plugindir = join_paths(get_option('libdir'), 'zathura') + +# required dependencies +libm = cc.find_library('libm') +girara = dependency('girara-gtk3', version: '>=0.2.8') +glib = dependency('glib-2.0', version: '>=2.50') +gthread = dependency('gthread-2.0', version: '>=2.50') +gmodule = dependency('gmodule-no-export-2.0', version: '>=2.50') +gtk3 = dependency('gtk+-3.0', version: '>=3.10') + +build_dependencies = [libm, girara, glib, gthread, gmodule, gtk3] + +# defines +defines = [ + '-DGETTEXT_PACKAGE="zathura"', + '-DLOCALEDIR="@0@"'.format(join_paths(prefix, localedir)), + '-DZATHURA_PLUGINDIR="@0@"'.format(join_paths(prefix, plugindir)), + '-D_DEFAULT_SOURCE', +] + +# compile flags +flags = [ + '-Wall', + '-Wextra', + '-pedantic', + '-Werror=implicit-function-declaration' +] +flags = cc.get_supported_arguments(flags) + +# linker flags +linker_flags = [ + '-rdynamic' +] +linker_flags = cc.get_supported_arguments(linker_flags) + +# optional dependencies +additional_sources = [] +sqlite = dependency('sqlite3', version: '>=3.5.9', required: false) +synctex = dependency('synctex', required: false) +magic = cc.find_library('magic', required: false) + +if get_option('enable-sqlite') and sqlite.found() + build_dependencies += sqlite + defines += '-DWITH_SQLITE' + additional_sources = files('zathura/database-sqlite.c') +endif + +if get_option('enable-synctex') and synctex.found() + build_dependencies += synctex + defines += '-DWITH_SYNCTEX' +endif + +if get_option('enable-magic') and magic.found() + build_dependencies += magic + defines += '-DWITH_MAGIC' +endif + +# generate version header file +version_header = configure_file( + input: 'zathura/version.h.in', + output: 'version.h', + configuration: conf_data +) +include_directories = [ + include_directories('.') +] + +subdir('data') +subdir('po') + +# source files +sources = files( + 'zathura/adjustment.c', + 'zathura/bookmarks.c', + 'zathura/callbacks.c', + 'zathura/checked-integer-arithmetic.c', + 'zathura/commands.c', + 'zathura/completion.c', + 'zathura/config.c', + 'zathura/content-type.c', + 'zathura/database.c', + 'zathura/database-plain.c', + 'zathura/dbus-interface.c', + 'zathura/document.c', + 'zathura/file-monitor.c', + 'zathura/file-monitor-glib.c', + 'zathura/file-monitor-signal.c', + 'zathura/jumplist.c', + 'zathura/links.c', + 'zathura/marks.c', + 'zathura/page.c', + 'zathura/page-widget.c', + 'zathura/plugin.c', + 'zathura/print.c', + 'zathura/render.c', + 'zathura/shortcuts.c', + 'zathura/synctex.c', + 'zathura/types.c', + 'zathura/utils.c', + 'zathura/zathura.c', +) +sources += zathura_resources +sources += additional_sources + +# header fiels to install +headers = files( + 'zathura/document.h', + 'zathura/links.h', + 'zathura/macros.h', + 'zathura/page.h', + 'zathura/plugin-api.h', + 'zathura/types.h', +) +headers += version_header + +# zathura helper library +libzathura = static_library('zathura', + sources, + dependencies: build_dependencies, + include_directories: include_directories, + c_args: defines + flags +) + +# zathura executable +zathura = executable( + 'zathura', + files('zathura/main.c'), + dependencies: build_dependencies + [declare_dependency(link_with: libzathura)], + install: true, + include_directories: include_directories, + c_args: defines + flags, + link_args: linker_flags, # replace with export_dynamic: true once we have meson >= 0.45 + gui_app: true +) +install_headers(headers, subdir: 'zathura') + +# pkg-config file +pkg = import('pkgconfig') +pkg.generate( + name: 'zathura', + description: 'document viewer - plugin API', + url: 'https://pwmt.org/projects/zathura', + version: version, + requires_private: ['girara-gtk3', 'cairo'], + variables: [ + 'apiversion=@0@'.format(plugin_api_version), + 'abiversion=@0@'.format(plugin_abi_version), + 'plugindir=${libdir}/zathura' + ] +) + +install_data('zathura.desktop', install_dir: desktopdir) + +subdir('doc') +subdir('tests') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..6853a9a --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,15 @@ +option('enable-sqlite', + type: 'boolean', + value: true, + description: 'Enable sqlite support if available.' +) +option('enable-synctex', + type: 'boolean', + value: true, + description: 'Enable synctex support if available.' +) +option('enable-magic', + type: 'boolean', + value: true, + description: 'Enable magic support if available.' +) diff --git a/po/LINGUAS b/po/LINGUAS new file mode 100644 index 0000000..8169b0d --- /dev/null +++ b/po/LINGUAS @@ -0,0 +1,21 @@ +ca +cs +de +el +eo +es_CL +es +et +fr +he +hr +id_ID +it +lt +no +pl +pt_BR +ru +ta_IN +tr +uk_UA diff --git a/po/Makefile b/po/Makefile deleted file mode 100644 index 2d60065..0000000 --- a/po/Makefile +++ /dev/null @@ -1,58 +0,0 @@ -# See LICENSE file for license and copyright information - -include ../config.mk -include ../common.mk -include ../colors.mk - -PROJECT = zathura -CATALOGS = $(sort $(wildcard *.po)) -LINGUAS ?= $(patsubst %.po, %, $(CATALOGS)) -ifeq ($(LINGUAS),) -ALINGUAS = -else -ALINGUAS = $(shell find $(patsubst %, %.po, $(LINGUAS)) 2>/dev/null) -endif -MOS = $(patsubst %, %/LC_MESSAGES/${GETTEXT_PACKAGE}.mo, $(patsubst %.po, %, $(ALINGUAS))) - -all: ${MOS} - -clean: - $(QUIET)rm -rf POTFILES.in POTFILES.in.tmp $(patsubst %.po, %, $(CATALOGS)) ${PROJECT}.pot - -POTFILES.in: $(sort $(wildcard ../zathura/*.c)) - $(QUIET) set -e && rm -f $@.tmp && touch $@.tmp && \ - for f in $(^F) ; do \ - echo zathura/$$f >> $@.tmp ; \ - done && \ - mv $@.tmp $@ - -${GETTEXT_PACKAGE}.pot: POTFILES.in - $(ECHO) regenerate $@ - $(QUIET)intltool-update --pot --gettext-package=${GETTEXT_PACKAGE} - -update-po: ${GETTEXT_PACKAGE}.pot - $(call colorecho,PO,"Updating po files ${CATALOGS}") - $(QUIET)set -e && for f in ${CATALOGS} ; do \ - intltool-update --dist --gettext-package=${GETTEXT_PACKAGE} `echo $$f | sed 's/\.po//'` ; \ - sed -i 's/Report-Msgid-Bugs-To: \\n/Report-Msgid-Bugs-To: http:\/\/bugs.pwmt.org\\n/' "$$f" ; \ - done - -%/LC_MESSAGES/${GETTEXT_PACKAGE}.mo: %.po - @mkdir -p $(@D) - $(call colorecho,MSGFMT,$(shell echo $< | sed 's/\.po//')) - $(QUIET)${MSGFMT} ${MSGFMTFLAGS} -c $< -o $@ - -install: ${MOS} - $(call colorecho,INSTALL,"Install translations") - $(QUIET)set -e && for f in $^ ; do \ - mkdir -p -m 755 $(DESTDIR)$(LOCALEDIR)/`dirname $$f`; \ - install -m 644 $$f $(DESTDIR)$(LOCALEDIR)/`dirname $$f` ; \ - done - -uninstall: ${MOS} - $(call colorecho,UNINSTALL,"Uninstall translations") - $(QUIET)set -e && for f in $^ ; do \ - rm -f $(LOCALEDIR)/$$f; \ - done - -.PHONY: all clean install uninstall update-po diff --git a/po/POTFILES b/po/POTFILES new file mode 100644 index 0000000..ec14f8b --- /dev/null +++ b/po/POTFILES @@ -0,0 +1,30 @@ +zathura/adjustment.c +zathura/bookmarks.c +zathura/callbacks.c +zathura/checked-integer-arithmetic.c +zathura/commands.c +zathura/completion.c +zathura/config.c +zathura/content-type.c +zathura/database-plain.c +zathura/database-sqlite.c +zathura/database.c +zathura/dbus-interface.c +zathura/document.c +zathura/file-monitor-glib.c +zathura/file-monitor-signal.c +zathura/file-monitor.c +zathura/jumplist.c +zathura/links.c +zathura/main.c +zathura/marks.c +zathura/page-widget.c +zathura/page.c +zathura/plugin.c +zathura/print.c +zathura/render.c +zathura/shortcuts.c +zathura/synctex.c +zathura/types.c +zathura/utils.c +zathura/zathura.c diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..cac1e18 --- /dev/null +++ b/po/meson.build @@ -0,0 +1,4 @@ +i18n = import('i18n') +i18n.gettext('zathura', + preset: 'glib' +) diff --git a/tests/Makefile b/tests/Makefile deleted file mode 100644 index 99e8da7..0000000 --- a/tests/Makefile +++ /dev/null @@ -1,132 +0,0 @@ -# See LICENSE file for license and copyright information - -include ../config.mk -include ../colors.mk -include ../common.mk - -include config.mk - -PROJECT = tests -SOURCE = tests.c $(wildcard test_*.c) -OBJECTS = $(addprefix ${BUILDDIR_RELEASE}/,${SOURCE:.c=.o}) -OBJECTS_DEBUG = $(addprefix ${BUILDDIR_DEBUG}/,${SOURCE:.c=.o}) -OBJECTS_GCOV = $(addprefix ${BUILDDIR_GCOV}/,${SOURCE:.c=.o}) - -FILTER = %/main.o - -ifneq (${WITH_SQLITE},0) -CPPFLAGS += -DWITH_SQLITE -else -FILTER += %/database-sqlite.o -endif - -ifneq ($(WITH_MAGIC),0) -CPPFLAGS += -DWITH_MAGIC -endif - -ifneq ($(WITH_SYNCTEX),0) -CPPFLAGS += -DWITH_SYNCTEX -endif - -ZATHURA_OBJECTS = \ - $(filter-out $(FILTER), $(wildcard ../${BUILDDIR_RELEASE}/zathura/*.o)) -ZATHURA_OBJECTS_DEBUG = \ - $(filter-out $(FILTER), $(wildcard ../${BUILDDIR_DEBUG}/zathura/*.o)) -ZATHURA_OBJECTS_GCOV= \ - $(filter-out $(FILTER), $(wildcard ../${BUILDDIR_GCOV}/zathura/*.o)) - -ifneq ($(wildcard ${VALGRIND_SUPPRESSION_FILE}),) -VALGRIND_ARGUMENTS += --suppressions=${VALGRIND_SUPPRESSION_FILE} -endif - -all: release - -# release - -${OBJECTS}: config.mk ../config.mk ../zathura/version.h - -${BUILDDIR_RELEASE}/%.o: %.c - $(call colorecho,CC,$<) - @mkdir -p ${DEPENDDIR}/$(dir $(abspath $@)) - @mkdir -p $(dir $(abspath $@)) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} \ - -o $@ $< -MMD -MF ${DEPENDDIR}/$(abspath $@).dep - -${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT}: ${OBJECTS} - $(QUIET)${MAKE} WITH_LIBFIU=1 -C .. ${BUILDDIR_RELEASE}/${BINDIR}/zathura - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_RELEASE}/${BINDIR} - $(QUIET)${CC} ${SFLAGS} ${LDFLAGS} \ - -o ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} \ - ${OBJECTS} ${ZATHURA_OBJECTS} ${LIBS} - -release: ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} - -run: ${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} - $(QUIET)${FIU_EXEC} ./${BUILDDIR_RELEASE}/${BINDIR}/${PROJECT} - -# debug - -${OBJECTS_DEBUG}: config.mk ../config.mk ../zathura/version.h - -${BUILDDIR_DEBUG}/%.o: %.c - @mkdir -p ${DEPENDDIR}/$(dir $(abspath $@)) - @mkdir -p $(dir $(abspath $@)) - $(call colorecho,CC,$<) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} ${DFLAGS} \ - -o $@ $< -MMD -MF ${DEPENDDIR}/$(abspath $@).dep - -${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT}: ${OBJECTS_DEBUG} - $(QUIET)${MAKE} WITH_LIBFIU=1 -C .. ${BUILDDIR_DEBUG}/${BINDIR}/zathura - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_DEBUG}/${BINDIR} - $(QUIET)${CC} ${SFLAGS} ${LDFLAGS} \ - -o ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} \ - ${OBJECTS} ${ZATHURA_OBJECTS_DEBUG} ${LIBS} - -debug: ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -run-debug: ${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - $(QUIET)${FIU_EXEC} ./${BUILDDIR_DEBUG}/${BINDIR}/${PROJECT} - -# gcov - -${OBJECTS_GCOV}: config.mk ../config.mk ../zathura/version.h - -${BUILDDIR_GCOV}/%.o: %.c - @mkdir -p ${DEPENDDIR}/$(dir $(abspath $@)) - @mkdir -p $(dir $(abspath $@)) - $(call colorecho,CC,$<) - $(QUIET)${CC} -c ${CPPFLAGS} ${CFLAGS} ${GCOV_CFLAGS} ${DFLAGS} ${GCOV_DFLAGS} \ - -o $@ $< -MMD -MF ${DEPENDDIR}/$(abspath $@).dep - -${BUILDDIR_GCOV}/${BINDIR}/${PROJECT}: ${OBJECTS_GCOV} - $(QUIET)${MAKE} WITH_LIBFIU=1 -C .. ${BUILDDIR_GCOV}/${BINDIR}/zathura - $(call colorecho,CC,$@) - @mkdir -p ${BUILDDIR_GCOV}/${BINDIR} - $(QUIET)${CC} ${SFLAGS} ${LDFLAGS} ${GCOV_CFLAGS} ${GCOV_LDFLAGS} \ - -o ${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} \ - ${OBJECTS} ${ZATHURA_OBJECTS_GCOV} ${LIBS} - -gcov: ${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} - -run-gcov: gcov - $(QUIET)${FIU_EXEC} ./${BUILDDIR_GCOV}/${BINDIR}/${PROJECT} - -../zathura/version.h: - $(MAKE) -C .. zathura/version.h - -valgrind: ${PROJECT}-debug - $(QUIET)G_SLICE=always-malloc G_DEBUG=gc-friendly ${FIU_EXEC} ${VALGRIND} ${VALGRIND_ARGUMENTS} ./${PROJECT}-debug - -clean: - $(call colorecho,RM, "Clean test files") - $(QUIET)rm -rf ${PROJECT} - $(QUIET)rm -rf ${PROJECT}-debug - $(QUIET)rm -rf ${PROJECT}-gcov - $(QUIET)rm -rf ${BUILDDIR} - $(QUIET)rm -rf ${DEPENDDIR} - -.PHONY: all clean debug run - --include $(wildcard ${DEPENDDIR}/*.dep) diff --git a/tests/config.mk b/tests/config.mk deleted file mode 100644 index d0cf5f7..0000000 --- a/tests/config.mk +++ /dev/null @@ -1,17 +0,0 @@ -# See LICENSE file for license and copyright information - -CHECK_INC ?= $(shell pkg-config --cflags check) -CHECK_LIB ?= $(shell pkg-config --libs check) - -INCS += ${CHECK_INC} ${FIU_INC} -I../zathura -LIBS += ${CHECK_LIB} ${FIU_LIB} - -ZATHURA_RELEASE=../${BUILDDIR_RELEASE}/${BINDIR}/zathura -ZATHURA_DEBUG=../${BUILDDIR_DEBUG}/${BINDIR}/zathura -ZATHURA_GCOV=../${BUILDDIR_GCOV}/${BINDIR}/zathura - -# valgrind -VALGRIND = valgrind -VALGRIND_ARGUMENTS = --tool=memcheck --leak-check=yes --leak-resolution=high \ - --show-reachable=yes --log-file=zathura-valgrind.log -VALGRIND_SUPPRESSION_FILE = zathura.suppression diff --git a/tests/meson.build b/tests/meson.build new file mode 100644 index 0000000..ccf96e3 --- /dev/null +++ b/tests/meson.build @@ -0,0 +1,24 @@ +check = dependency('check', required: false) +if check.found() + test_dependencies = [ + declare_dependency(link_with: libzathura), + check + ] + + include_directories += [ include_directories('../zathura') ] + + test_sources = [ + 'tests.c', + 'test_document.c', + 'test_session.c', + 'test_utils.c' + ] + + tests = executable('tests', test_sources, + dependencies: build_dependencies + test_dependencies, + include_directories: include_directories, + c_args: defines + flags + ) + + test('tests', tests) +endif diff --git a/zathura.pc.in b/zathura.pc.in deleted file mode 100644 index e76b38d..0000000 --- a/zathura.pc.in +++ /dev/null @@ -1,9 +0,0 @@ - -INC_PATH=-I${includedir} - -Name: ${project} -Description: document viewer -Version: ${version} -URL: http://pwmt.org/projects/zathura -Cflags: ${INC_PATH} -Requires.private: girara-gtk${GTK_VERSION} cairo diff --git a/zathura/version.h.in b/zathura/version.h.in index d35d791..186be9f 100644 --- a/zathura/version.h.in +++ b/zathura/version.h.in @@ -3,11 +3,11 @@ #ifndef ZATHURA_VERSION_H #define ZATHURA_VERSION_H -#define ZATHURA_VERSION_MAJOR ZVMAJOR -#define ZATHURA_VERSION_MINOR ZVMINOR -#define ZATHURA_VERSION_REV ZVREV -#define ZATHURA_VERSION "ZVMAJOR.ZVMINOR.ZVREV" -#define ZATHURA_API_VERSION ZVAPI -#define ZATHURA_ABI_VERSION ZVABI +#define ZATHURA_VERSION_MAJOR @ZVMAJOR@ +#define ZATHURA_VERSION_MINOR @ZVMINOR@ +#define ZATHURA_VERSION_REV @ZVREV@ +#define ZATHURA_VERSION "@version@" +#define ZATHURA_API_VERSION @ZVAPI@ +#define ZATHURA_ABI_VERSION @ZVABI@ #endif From b777e8487c266859e485a29b9f6622fa49d704df Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 10 Feb 2018 13:31:06 +0100 Subject: [PATCH 02/15] Remove extra defines --- zathura/content-type.c | 3 --- zathura/zathura.c | 3 --- 2 files changed, 6 deletions(-) diff --git a/zathura/content-type.c b/zathura/content-type.c index 3440973..825cd79 100644 --- a/zathura/content-type.c +++ b/zathura/content-type.c @@ -1,8 +1,5 @@ /* See LICENSE file for license and copyright information */ -#define _DEFAULT_SOURCE -#define _XOPEN_SOURCE 700 - #include "content-type.h" #include "macros.h" diff --git a/zathura/zathura.c b/zathura/zathura.c index c134fcb..46aeb24 100644 --- a/zathura/zathura.c +++ b/zathura/zathura.c @@ -1,8 +1,5 @@ /* See LICENSE file for license and copyright information */ -#define _DEFAULT_SOURCE -#define _XOPEN_SOURCE 700 - #include #include #include From 21a9aed96860f942da91ae9025e66afa65b679de Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 10 Feb 2018 13:31:13 +0100 Subject: [PATCH 03/15] Fix return type --- zathura/content-type.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zathura/content-type.c b/zathura/content-type.c index 825cd79..7dc98fd 100644 --- a/zathura/content-type.c +++ b/zathura/content-type.c @@ -97,7 +97,7 @@ guess_type_magic(zathura_content_type_context_t* context, const char* path) girara_debug("magic detected filetype: %s", mime_type); /* dup so we own the memory */ - return g_strdup(mime_type);; + return g_strdup(mime_type); } static char* @@ -106,7 +106,7 @@ guess_type_file(const char* UNUSED(path)) return NULL; } #else -static const char* +static char* guess_type_magic(zathura_content_type_context_t* UNUSED(context), const char* UNUSED(path)) { From 14a867f08081ea910936db7e673f80a42d0d87e7 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 10 Feb 2018 14:15:57 +0100 Subject: [PATCH 04/15] Fix installign of manpages --- doc/meson.build | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/meson.build b/doc/meson.build index 4c24352..32a4f03 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -15,9 +15,10 @@ custom_target('man pages', 'man/_synctex.txt', 'man/zathura.1.rst' ], - build_by_default: true -) -install_man( - join_paths(meson.current_build_dir(), 'zathura.1'), - join_paths(meson.current_build_dir(), 'zathurarc.5') + build_by_default: true, + install: true, + install_dir: [ + join_paths(get_option('mandir'), 'man1'), + join_paths(get_option('mandir'), 'man5') + ] ) From 94bf91d8304983bbca53c0302e72a20db6988d70 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Sat, 10 Feb 2018 21:39:50 +0100 Subject: [PATCH 05/15] Bump plugin API and ABI version Signed-off-by: Sebastian Ramacher --- meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 4f3ab19..1d1634b 100644 --- a/meson.build +++ b/meson.build @@ -14,8 +14,8 @@ version_array = version.split('.') # * If any of the exported datastructures have changed in a incompatible way # bump SOMAJOR and set SOMINOR to 0. # * If a function has been added bump SOMINOR. -plugin_api_version = '2' -plugin_abi_version = '3' +plugin_api_version = '3' +plugin_abi_version = '4' conf_data = configuration_data() conf_data.set('ZVMAJOR', version_array[0]) From 324d88100de8f76f976e0e0f64cc7f6c6623ac65 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Thu, 8 Feb 2018 22:07:34 +0100 Subject: [PATCH 06/15] Mark functions as const --- zathura/document.c | 14 +++++++------- zathura/page.c | 20 ++++++++++---------- zathura/plugin.c | 4 ++-- zathura/plugin.h | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/zathura/document.c b/zathura/document.c index bf6539d..f463187 100644 --- a/zathura/document.c +++ b/zathura/document.c @@ -144,7 +144,7 @@ zathura_document_open(zathura_t* zathura, const char* path, const char* uri, file = NULL; /* open document */ - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->document_open == NULL) { girara_error("plugin has no open function\n"); goto error_free; @@ -221,7 +221,7 @@ zathura_document_free(zathura_document_t* document) /* free document */ zathura_error_t error = ZATHURA_ERROR_OK; - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_free == NULL) { error = ZATHURA_ERROR_NOT_IMPLEMENTED; } else { @@ -619,7 +619,7 @@ zathura_document_save_as(zathura_document_t* document, const char* path) return ZATHURA_ERROR_UNKNOWN; } - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_save_as == NULL) { return ZATHURA_ERROR_NOT_IMPLEMENTED; } @@ -635,7 +635,7 @@ zathura_document_index_generate(zathura_document_t* document, zathura_error_t* e return NULL; } - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_index_generate == NULL) { check_set_error(error, ZATHURA_ERROR_NOT_IMPLEMENTED); return NULL; @@ -652,7 +652,7 @@ zathura_document_attachments_get(zathura_document_t* document, zathura_error_t* return NULL; } - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_attachments_get == NULL) { check_set_error(error, ZATHURA_ERROR_NOT_IMPLEMENTED); return NULL; @@ -668,7 +668,7 @@ zathura_document_attachment_save(zathura_document_t* document, const char* attac return ZATHURA_ERROR_INVALID_ARGUMENTS; } - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_attachment_save == NULL) { return ZATHURA_ERROR_NOT_IMPLEMENTED; } @@ -684,7 +684,7 @@ zathura_document_get_information(zathura_document_t* document, zathura_error_t* return NULL; } - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(document->plugin); if (functions->document_get_information == NULL) { check_set_error(error, ZATHURA_ERROR_NOT_IMPLEMENTED); return NULL; diff --git a/zathura/page.c b/zathura/page.c index 9659227..799cc27 100644 --- a/zathura/page.c +++ b/zathura/page.c @@ -45,7 +45,7 @@ zathura_page_new(zathura_document_t* document, unsigned int index, zathura_error /* init plugin */ zathura_plugin_t* plugin = zathura_document_get_plugin(document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_init == NULL) { if (error != NULL) { @@ -88,7 +88,7 @@ zathura_page_free(zathura_page_t* page) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_clear == NULL) { return ZATHURA_ERROR_NOT_IMPLEMENTED; } @@ -211,7 +211,7 @@ zathura_page_search_text(zathura_page_t* page, const char* text, zathura_error_t } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_search_text == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -233,7 +233,7 @@ zathura_page_links_get(zathura_page_t* page, zathura_error_t* error) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_links_get == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -261,7 +261,7 @@ zathura_page_form_fields_get(zathura_page_t* page, zathura_error_t* error) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_form_fields_get == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -289,7 +289,7 @@ zathura_page_images_get(zathura_page_t* page, zathura_error_t* error) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_images_get == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -311,7 +311,7 @@ zathura_page_image_get_cairo(zathura_page_t* page, zathura_image_t* image, zathu } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_image_get_cairo == NULL) { if (error != NULL) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -333,7 +333,7 @@ zathura_page_get_text(zathura_page_t* page, zathura_rectangle_t rectangle, zathu } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_get_text == NULL) { if (error) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; @@ -352,7 +352,7 @@ zathura_page_render(zathura_page_t* page, cairo_t* cairo, bool printing) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_render_cairo == NULL) { return ZATHURA_ERROR_NOT_IMPLEMENTED; } @@ -371,7 +371,7 @@ zathura_page_get_label(zathura_page_t* page, zathura_error_t* error) } zathura_plugin_t* plugin = zathura_document_get_plugin(page->document); - zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); + const zathura_plugin_functions_t* functions = zathura_plugin_get_functions(plugin); if (functions->page_get_label == NULL) { if (error) { *error = ZATHURA_ERROR_NOT_IMPLEMENTED; diff --git a/zathura/plugin.c b/zathura/plugin.c index e186153..69fa7d4 100644 --- a/zathura/plugin.c +++ b/zathura/plugin.c @@ -343,11 +343,11 @@ plugin_add_mimetype(zathura_plugin_t* plugin, const char* mime_type) } } -zathura_plugin_functions_t* +const zathura_plugin_functions_t* zathura_plugin_get_functions(zathura_plugin_t* plugin) { if (plugin != NULL) { - return &(plugin->functions); + return &plugin->functions; } else { return NULL; } diff --git a/zathura/plugin.h b/zathura/plugin.h index d69745e..e0a8c22 100644 --- a/zathura/plugin.h +++ b/zathura/plugin.h @@ -63,7 +63,7 @@ girara_list_t* zathura_plugin_manager_get_plugins(zathura_plugin_manager_t* plug * @param plugin The plugin * @return The plugin functions */ -zathura_plugin_functions_t* zathura_plugin_get_functions(zathura_plugin_t* plugin); +const zathura_plugin_functions_t* zathura_plugin_get_functions(zathura_plugin_t* plugin); /** * Returns the name of the plugin From bfdd4be4b263a5e1deaeac52519a301ce28cdaf1 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Thu, 8 Feb 2018 22:07:47 +0100 Subject: [PATCH 07/15] Avoid explicit iterator Signed-off-by: Sebastian Ramacher --- zathura/database-sqlite.c | 18 ++---------------- zathura/plugin.c | 11 ++++++++--- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/zathura/database-sqlite.c b/zathura/database-sqlite.c index 4d1b146..34a48c1 100644 --- a/zathura/database-sqlite.c +++ b/zathura/database-sqlite.c @@ -529,14 +529,9 @@ sqlite_save_jumplist(zathura_database_t* db, const char* file, girara_list_t* ju return true; } - girara_list_iterator_t* cur = girara_list_iterator(jumplist); bool status = true; - - while (true) { - zathura_jump_t* jump = girara_list_iterator_data(cur); - + GIRARA_LIST_FOREACH_BODY(jumplist, zathura_jump_t*, jump, stmt = prepare_statement(priv->session, SQL_INSERT_JUMP); - if (stmt == NULL) { status = false; break; @@ -546,7 +541,6 @@ sqlite_save_jumplist(zathura_database_t* db, const char* file, girara_list_t* ju sqlite3_bind_int(stmt, 2, jump->page) != SQLITE_OK || sqlite3_bind_double(stmt, 3, jump->x) != SQLITE_OK || sqlite3_bind_double(stmt, 4, jump->y) != SQLITE_OK) { - sqlite3_finalize(stmt); girara_error("Failed to bind arguments."); status = false; @@ -560,15 +554,7 @@ sqlite_save_jumplist(zathura_database_t* db, const char* file, girara_list_t* ju status = false; break; } - - if (girara_list_iterator_has_next(cur) == true) { - girara_list_iterator_next(cur); - } else { - break; - } - } - - girara_list_iterator_free(cur); + ); if (status == false) { sqlite3_exec(priv->session, "ROLLBACK;", NULL, 0, NULL); diff --git a/zathura/plugin.c b/zathura/plugin.c index 69fa7d4..0fe9449 100644 --- a/zathura/plugin.c +++ b/zathura/plugin.c @@ -281,13 +281,18 @@ plugin_mapping_new(zathura_plugin_manager_t* plugin_manager, const gchar* type, g_return_val_if_fail(type != NULL, false); g_return_val_if_fail(plugin != NULL, false); - GIRARA_LIST_FOREACH_BODY_WITH_ITER(plugin_manager->type_plugin_mapping, zathura_type_plugin_mapping_t*, iter, mapping, + bool already_registered = false; + GIRARA_LIST_FOREACH_BODY(plugin_manager->type_plugin_mapping, zathura_type_plugin_mapping_t*, mapping, if (g_content_type_equals(type, mapping->type)) { - girara_list_iterator_free(iter); - return false; + already_registered = true; + break; } ); + if (already_registered == true) { + return false; + } + zathura_type_plugin_mapping_t* mapping = g_try_malloc0(sizeof(zathura_type_plugin_mapping_t)); if (mapping == NULL) { return false; From a230bcced0165228f366ecc814be6441f35c939b Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Thu, 15 Feb 2018 12:08:56 +0100 Subject: [PATCH 08/15] Remove empty line Signed-off-by: Sebastian Ramacher --- zathura/database-sqlite.c | 1 - 1 file changed, 1 deletion(-) diff --git a/zathura/database-sqlite.c b/zathura/database-sqlite.c index 34a48c1..7e01f57 100644 --- a/zathura/database-sqlite.c +++ b/zathura/database-sqlite.c @@ -401,7 +401,6 @@ sqlite_add_bookmark(zathura_database_t* db, const char* file, sqlite3_bind_int(stmt, 3, bookmark->page) != SQLITE_OK || sqlite3_bind_double(stmt, 4, bookmark->x) != SQLITE_OK || sqlite3_bind_double(stmt, 5, bookmark->y) != SQLITE_OK) { - sqlite3_finalize(stmt); girara_error("Failed to bind arguments."); return false; From 102325a41ee074022a33fe910a6a84baf2717b07 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 21:42:43 +0100 Subject: [PATCH 09/15] Generate version.h as zathura-version.h This avoid confusions between girara's and zathura's version.h. Signed-off-by: Sebastian Ramacher --- meson.build | 2 +- zathura/plugin-api.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 1d1634b..3a381cc 100644 --- a/meson.build +++ b/meson.build @@ -93,7 +93,7 @@ endif # generate version header file version_header = configure_file( input: 'zathura/version.h.in', - output: 'version.h', + output: 'zathura-version.h', configuration: conf_data ) include_directories = [ diff --git a/zathura/plugin-api.h b/zathura/plugin-api.h index b7c9a29..4a61364 100644 --- a/zathura/plugin-api.h +++ b/zathura/plugin-api.h @@ -6,7 +6,7 @@ #include "page.h" #include "document.h" #include "links.h" -#include "version.h" +#include "zathura-version.h" typedef struct zathura_plugin_functions_s zathura_plugin_functions_t; From 38d36089088a811e6187de388d63b5affeb94c56 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 21:43:31 +0100 Subject: [PATCH 10/15] Clean up --- .gitignore | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.gitignore b/.gitignore index fbf5275..fbdc92c 100644 --- a/.gitignore +++ b/.gitignore @@ -21,15 +21,9 @@ zathura-*.tar.gz *.patch # build dirs -.depend .tx build/ gcov/ -doc/_build - -# version file -version.h -.version-checks/ # development files .clang_complete From 1348a466333579b42a6cfea9d5c5a2dc6cbf801a Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 22:41:53 +0100 Subject: [PATCH 11/15] Update build instructions Signed-off-by: Sebastian Ramacher --- README | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/README b/README index 046596f..0588c69 100644 --- a/README +++ b/README @@ -1,15 +1,18 @@ zathura - a document viewer =========================== + zathura is a highly customizable and functional document viewer based on the girara user interface library and several document libraries. Requirements ------------ + +meson (>= 0.43) gtk3 (>= 3.10) glib (>= 2.50) girara (>= 0.2.8) sqlite3 (optional, >= 3.5.9) -check (for tests) +check (optional, for tests) intltool libmagic from file(1) (optional, for mime-type detection) libsynctex from TeXLive (optional, for SyncTeX support) @@ -18,42 +21,28 @@ doxygen (optional, for HTML documentation) breathe (optional, for HTML documentation) sphinx_rtd_theme (optional, for HTML documentation) -Please note that you need to have a working pkg-config installation and that the -Makefile is only compatible with GNU make. If you don't have a working -pkg-config installation please set the GTK_INC, GTK_LIB, GIRARA_INC, GIRARA_LIB, -SQLITE_INC and SQLITE_LIB variables accordingly. - Also note that Sphinx is needed to build the manpages. If it is not installed, the man pages won't be built. For the HTML documentation, doxygen, breathe and sphinx_rtd_theme are needed in addition to Sphinx. If you don't want to build with support for sqlite databases, you can set -WITH_SQLITE=0 and sqlite support won't be available. +enable-sqlite=off and sqlite support won't be available. The use of magic to detect mime types is optional and can be disabled by setting -WITH_MAGIC=0. - -If you pass these flags as a command line argument to make, you have to ensure -to pass the same flags when executing the install target. - -If you want to build zathura's HTML documentation, please install all python -dependencies from the ./doc/requirements.txt file and run: - - make doc +enable-magic=off. Installation ------------ + To build and install zathura: - make install - -Uninstall ---------- -To delete zathura from your system, just type: - - make uninstall + meson build + cd build + ninja + ninja install Bugs ---- + Please report bugs at http://bugs.pwmt.org or contact us on our mailing list at zathura@lists.pwmt.org. From d3e06883f167ca2956ef8ef624b0268cffaac659 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 23:18:30 +0100 Subject: [PATCH 12/15] Include girara build and runtime version Signed-off-by: Sebastian Ramacher --- zathura/utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zathura/utils.c b/zathura/utils.c index 9aeaff3..bd19131 100644 --- a/zathura/utils.c +++ b/zathura/utils.c @@ -194,7 +194,8 @@ zathura_get_version_string(zathura_t* zathura, bool markup) GString* string = g_string_new(NULL); /* zathura version */ - g_string_append_printf(string, "zathura %d.%d.%d", ZATHURA_VERSION_MAJOR, ZATHURA_VERSION_MINOR, ZATHURA_VERSION_REV); + g_string_append(string, "zathura " ZATHURA_VERSION); + g_string_append_printf(string, "\ngirara " GIRARA_VERSION " (runtime: %s)", girara_version()); const char* format = (markup == true) ? "\n(plugin) %s (%d.%d.%d) (%s)" : "\n(plugin) %s (%d.%d.%d) (%s)"; From 9dde3d9d619adbb521055e853fa99020574f8d25 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 23:26:28 +0100 Subject: [PATCH 13/15] Implement nohlsearch shortcut Signed-off-by: Sebastian Ramacher --- zathura/commands.c | 7 +------ zathura/shortcuts.c | 13 +++++++++++++ zathura/shortcuts.h | 12 ++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/zathura/commands.c b/zathura/commands.c index 42711b5..e259b22 100644 --- a/zathura/commands.c +++ b/zathura/commands.c @@ -288,12 +288,7 @@ cmd_print(girara_session_t* session, girara_list_t* UNUSED(argument_list)) bool cmd_nohlsearch(girara_session_t* session, girara_list_t* UNUSED(argument_list)) { - g_return_val_if_fail(session != NULL, false); - g_return_val_if_fail(session->global.data != NULL, false); - zathura_t* zathura = session->global.data; - - document_draw_search_results(zathura, false); - render_all(zathura); + sc_nohlsearch(session, NULL, NULL, 0); return true; } diff --git a/zathura/shortcuts.c b/zathura/shortcuts.c index ae3a469..11ca04e 100644 --- a/zathura/shortcuts.c +++ b/zathura/shortcuts.c @@ -1458,3 +1458,16 @@ sc_exec(girara_session_t* session, girara_argument_t* argument, girara_event_t* return girara_sc_exec(session, argument, event, t); } + +bool +sc_nohlsearch(girara_session_t* session, girara_argument_t* UNUSED(argument), girara_event_t* UNUSED(event), unsigned int UNUSED(t)) +{ + g_return_val_if_fail(session != NULL, false); + g_return_val_if_fail(session->global.data != NULL, false); + zathura_t* zathura = session->global.data; + + document_draw_search_results(zathura, false); + render_all(zathura); + + return false; +} diff --git a/zathura/shortcuts.h b/zathura/shortcuts.h index 195554a..c1b19ad 100644 --- a/zathura/shortcuts.h +++ b/zathura/shortcuts.h @@ -292,4 +292,16 @@ bool sc_zoom(girara_session_t* session, girara_argument_t* argument, girara_even */ bool sc_exec(girara_session_t* session, girara_argument_t* argument, girara_event_t* event, unsigned int t); +/** + * Remove search highlights. + * + * @param session The used girara session + * @param argument The used argument + * @param event Girara event + * @param t Number of executions + * @return true if no error occurred otherwise false + */ +bool sc_nohlsearch(girara_session_t* session, girara_argument_t* argument, girara_event_t* event, unsigned int t); + + #endif // SHORTCUTS_H From 278eeb20774f5de8c17cb12c99e957db814b2788 Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Tue, 20 Feb 2018 23:26:53 +0100 Subject: [PATCH 14/15] Make nohlsearch shortcut available Signed-off-by: Sebastian Ramacher --- zathura/config.c | 1 + 1 file changed, 1 insertion(+) diff --git a/zathura/config.c b/zathura/config.c index fcbff3f..ecc6026 100644 --- a/zathura/config.c +++ b/zathura/config.c @@ -476,6 +476,7 @@ config_load_default(zathura_t* zathura) girara_shortcut_mapping_add(gsession, "mark_evaluate", sc_mark_evaluate); girara_shortcut_mapping_add(gsession, "navigate", sc_navigate); girara_shortcut_mapping_add(gsession, "navigate_index", sc_navigate_index); + girara_shortcut_mapping_add(gsession, "nohlsearch", sc_nohlsearch); girara_shortcut_mapping_add(gsession, "print", sc_print); girara_shortcut_mapping_add(gsession, "quit", sc_quit); girara_shortcut_mapping_add(gsession, "recolor", sc_recolor); From dfc31a3fe177726561f02c64813259bdf52d04bd Mon Sep 17 00:00:00 2001 From: Sebastian Ramacher Date: Wed, 21 Feb 2018 11:34:37 +0100 Subject: [PATCH 15/15] Use zathura-version.h (fixes #708) Signed-off-by: Sebastian Ramacher --- zathura/plugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zathura/plugin.h b/zathura/plugin.h index e0a8c22..21c7af3 100644 --- a/zathura/plugin.h +++ b/zathura/plugin.h @@ -8,7 +8,7 @@ #include "types.h" #include "plugin-api.h" -#include "version.h" +#include "zathura-version.h" #include "zathura.h" /**