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