This automatically keeps the installer's idea of Gtk version with the one
used to compile geany in sync.
Traditionally we use the bundles from gtk.org to compile geany, and this
is also used for the installer. With msys2, we can use precompiled
msys2 binaries. These exist for GTK3 as well so we can actually provide a
GTK3 based installer. The installer naturually should reflect this.
Msys2's GTK2 is also newer.
Use the new script gtk-bundle-from-msys2.sh to extract the precompiled
GTK binaries from msys2 / pacman for packing the installer (can also be
used to make a zip for sharing).
mkdir gtk; cd gtk; ../scripts/gtk-bundle-from-msys.sh [-c] [-z] [-2 | -3]
waf is also adapted to process geany.nsi.in. This implies geany.nsi is now
under _build_, not in the root anymore.
libtool apparently builds every object twice by default when shared and
static objects need to be build differently. As we never use the
statically linked objects, avoid building them at all.
Checks if the compiler supports -fvisibility and the linker supports
-dynamic-list arguments and use them instead of hardcoding. The new
geany-lib.m4 also accomodates future use of Libtool versioning.
This will allow plugins to link against the core when accessing API
functions, now that the macro/struct/funcptr stuff is gone.
Also convert the helper libraries into Libtool helper libraries as
linking a shared library against static libraries is (apparently) not
portable.
Uses a Python script to generate a listing used by the linker to
determine which symbols to dynamically export. This provides finer
grained control of which symbols are dynamically exported, limiting
only to the ones needed for GtkBuilder signal connections.
The build system integration could probably be done a little cleaner.
This patch adds the gtk-mac-integration library and uses it to
adjust various paths in Geany to point it inside the app bundle
if Geany runs from inside the bundle.
It adds the utils_resource_dir() utility function to return
correct directories for various kinds of resources for all supported
operating systems. Using this function the patch adjusts all Geany
resource, plugin, icon, doc, and locale paths.
setup_paths() sets app->datadir to $prefix/win32. With mingw-via-autotools,
it installed data to $prefix/share/geany (like on Linux). With this change
data is installed to $prefix/data ($datarootdir is not changed).
This fixes geany startup after make install with autotools.
Linux:
pkgdatadir = ${datarootdir}/geany
GEANY_DATA_DIR = /path/to/prefix/share/geany
Win32:
pkgdatadir = ${prefix}/data
GEANY_DATA_DIR = /path/to/prefix/data
Strict dependency on fnmatch was removed in 52076d19e8fe7ab41ebc92928e.
We still have an optional dependency on it from CTags, but I don't
think we use this code, and anyways the checks we had for the optional
path to be taken were incorrect, so it was never actually used.
So, drop the dependency on libibrety for Windows builds, and fix the
remaining checks for an optional fnmatch so if it is found it can
actually be used.
* Add `--enable-html-docs` and `--enable-pdf-docs` arguments
(off by default)
* Add `RST2HTML`, `RST2LATEX` and `PDFLATEX` to override path to these
tools.
* Add HTML and PDF doc status messages to configure summary
* Add `m4/geany-doxygen.m4` file
* Support `DOXYGEN` environment variable setting which Doxygen to use
* Support `--enable-api-docs` to activate building Doxygen docs
(off by default)
Don't use wildcards to select files to install, nor manually perform
the installation when Automake could do it for us.
Using wildcards makes it hard to know what will really be installed,
and may results in installing files not part of the distribution.
Enable Automake option "subdir-object" to put all object files next to
their source file rather than in the directory containing the Makefile.
This is quite expected, and will be the future behavior of Automake in
all cases, so enabling it now avoids future unexpected change.
The test suite uses a LOG_COMPILER, which requires the parallel-tests
Automake test driver which is the default only since version 1.13, so
explicitly enable it so it is used by earlier versions too.
Moreover, the parallel-tests test diver was introduced by Automake
1.11, as was the option, so we need to depend on it too. It was
released 2009-05-17, which is 2 months after GTK 2.16, the minimum GTK
version we depend on (2009-03-13). If this is a problem, we could
also rework the Automake test layout to use the older and a little
deprecated serial-tests test driver that is the historical one.
Split ctags and tagmanager sources, as follows:
tagmanager/ctags: the parsers, more or less upstream CTags;
tagmanager/mio: local MIO library copy;
tagmanager/src: actual tagmanager sources.
GIO used to bring GModule, but it became a private dependency since
GIO 2.31. So, add explicit checks for GModule so we still build with
GLib/GIO >= 2.31.
Closes#3483388.
This reverts commits fbf77f586d65e319ecc1da11e98dcd932dd88b28 and
3816e40190c2f5331992f795f297669a399803fb.
While having the .rst extension helps GitHub formatting the file, the
renaming broke both Autotools and Waf build systems.
Automake requires README to exist by default, but it was renamed to
README.rst recently. Thus, change Automake strictness to `foreign'
for README to be optional, and distribute README.rst explicitly.
Although `foreign' strictness don't require any of the README, INSTALL,
COPYING, etc. files, it still includes them if available, so the
distribution still includes them.
Add and use macros to generate final configure summary rather than
hard-code it. This allows for the status to be registered from where
they comes rather than all in the end.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@6008 ea778897-0a13-0410-b9d1-a72fbfd435f5