2005-12-27 13:54:46 -06:00
|
|
|
GnuCash Compiler Dependency
|
|
|
|
---------------------------
|
|
|
|
|
2019-06-06 08:49:22 -05:00
|
|
|
The GnuCash developers use gcc (https://gcc.gnu.org) for developing and
|
2005-12-27 13:54:46 -06:00
|
|
|
testing GnuCash. For convenience, we have relied on certain features
|
|
|
|
of gcc that are not part of any official standard and may not be
|
|
|
|
available with other standard-compliant compilers. Anyone desiring to
|
|
|
|
compile GnuCash with some other compiler may have to remove these
|
|
|
|
"gcc-isms", some of which are documented here.
|
|
|
|
|
|
|
|
Pointer-typed NULL sentinel values
|
|
|
|
----------------------------------
|
|
|
|
|
|
|
|
Gcc provides an implementation of `stddef.h' that defines NULL to
|
|
|
|
always expand to a pointer-typed null constant. This is precisely
|
|
|
|
what is needed in order to make sentinel value arguments to variadic
|
|
|
|
functions correct for both 32 and 64 bit platforms. However, another
|
|
|
|
implementation may define NULL to expand to `0'. In that case, all
|
|
|
|
sentinel value arguments must have an explicit `(void *)' cast.
|
|
|
|
|
|
|
|
C++ style comments
|
|
|
|
------------------
|
|
|
|
|
|
|
|
C++ style comments (`// comment to end of line') are discouraged but
|
|
|
|
not actively eradicated.
|
|
|
|
|
|
|
|
Variadic Macros
|
|
|
|
---------------
|
|
|
|
|
|
|
|
GnuCash uses variadic macros for debugging and logging support (via
|
|
|
|
qof).
|
|
|
|
|
|
|
|
Declarations after Code
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
The use of declarations after code (`int i; i = 0; char *foo;') is
|
|
|
|
strongly discouraged and actively removed whenever it's caught.
|
|
|
|
|
|
|
|
|
2010-09-21 12:31:40 -05:00
|
|
|
Important notice
|
|
|
|
----------------
|
|
|
|
You can find the most recent version of the following part at
|
2019-06-06 08:49:22 -05:00
|
|
|
https://wiki.gnucash.org/wiki/Dependencies.
|
2010-09-21 12:31:40 -05:00
|
|
|
|
2005-12-27 13:54:46 -06:00
|
|
|
GnuCash Library Dependency Policy
|
|
|
|
---------------------------------
|
2005-11-01 21:32:36 -06:00
|
|
|
|
|
|
|
GnuCash desires to only depend on library versions and packages that are
|
|
|
|
practically available. Specifically, we choose to depend only on versions
|
2011-03-30 02:13:54 -05:00
|
|
|
that have been in the major distributions for 6 months. (This is motivated in
|
2005-11-01 21:32:36 -06:00
|
|
|
part by the 1.6 release, which required a large set of relatively-recent
|
|
|
|
dependencies. Specifically, as most user's (distributions) did not have the
|
|
|
|
required versions packaged, it was exceedingly painful for end users to
|
|
|
|
upgrade to the anticipated release, leading to a reputation that gnucash
|
2011-03-30 02:13:54 -05:00
|
|
|
still has.)
|
2005-11-01 21:32:36 -06:00
|
|
|
|
|
|
|
This document serves to keep track of the major distributions, the date of
|
|
|
|
their major release[s], and the relevant library versions as part of that
|
|
|
|
release (or an official package-upgrade path)
|
|
|
|
|
|
|
|
Libraries/Deps
|
|
|
|
--------------
|
2013-11-05 13:33:10 -06:00
|
|
|
required Version
|
|
|
|
-------- _______
|
2018-04-06 16:47:24 -05:00
|
|
|
glib2 2.40.0
|
|
|
|
gtk+3 3.14.0
|
|
|
|
guile 2.2.0 or 2.0.0
|
|
|
|
libxml2 2.5.10
|
2018-04-08 16:11:28 -05:00
|
|
|
gettext 0.19.6 Can use older if you pass
|
2018-04-10 03:06:34 -05:00
|
|
|
-DALLOW_OLD_GETTEXT to cmake;
|
2018-04-08 16:11:28 -05:00
|
|
|
doesn't include all file types
|
|
|
|
when building gnucash.pot.
|
2018-04-06 16:47:24 -05:00
|
|
|
libxslt, including xsltproc
|
|
|
|
ICU International Compnents for
|
2017-03-13 13:55:09 -05:00
|
|
|
Unicode
|
2018-04-06 16:47:24 -05:00
|
|
|
boost 1.50.0 locale and regex libs must be
|
2017-03-13 13:55:09 -05:00
|
|
|
built with ICU support.
|
2018-04-06 16:47:24 -05:00
|
|
|
swig 2.0.10 Only required to build from git.
|
|
|
|
webkit webkitgtk-3.0 (Windows, Mac)
|
2017-09-16 20:01:20 -05:00
|
|
|
webkit2gtk-3.0 (Everything Else)
|
2018-04-06 16:47:24 -05:00
|
|
|
googletest 1.7.0 Some distros call it gtest.
|
2018-01-27 17:44:03 -06:00
|
|
|
Some distros also separate out
|
|
|
|
googlemock or gmock; both are
|
|
|
|
required.
|
2010-09-21 12:31:40 -05:00
|
|
|
|
|
|
|
optional
|
|
|
|
--------
|
2019-03-28 20:03:55 -05:00
|
|
|
aqbanking 5.3.4 online banking; also requires
|
|
|
|
gwehywfar.
|
2011-03-30 02:13:54 -05:00
|
|
|
|
2018-04-06 16:47:24 -05:00
|
|
|
libdbi 0.8.3 SQL backend; also requires at
|
2013-11-05 13:33:10 -06:00
|
|
|
least one of libdbd-sqlite3,
|
|
|
|
libdbd-mysql, or libdbd-pgsql
|
2011-03-30 02:13:54 -05:00
|
|
|
|
2018-04-06 16:47:24 -05:00
|
|
|
libofx 0.9.0 OFX/QFX import
|
2011-03-30 02:13:54 -05:00
|
|
|
|
2019-05-13 21:21:55 -05:00
|
|
|
python 3.2.0 python bindings; headers
|
2013-11-05 13:33:10 -06:00
|
|
|
required, not just binaries.
|
2011-03-30 02:13:54 -05:00
|
|
|
|
2018-04-06 16:47:24 -05:00
|
|
|
makeinfo Not really needed, it
|
2018-01-23 18:04:28 -06:00
|
|
|
just builds the
|
|
|
|
mostly obsolete
|
|
|
|
design documentation
|
|
|
|
(superceded for the
|
|
|
|
most part in Doxygen
|
|
|
|
docs).
|
2018-04-06 17:46:16 -05:00
|
|
|
doxygen For building the Doxygen API
|
|
|
|
documentation.
|
2018-01-23 18:04:28 -06:00
|
|
|
|
2014-01-27 03:15:44 -06:00
|
|
|
at runtime, required
|
|
|
|
---------------------
|
2018-04-06 16:47:24 -05:00
|
|
|
a gsettings backend to store the gnucash global preferences in
|
|
|
|
This backend is platform dependent.
|
|
|
|
- linux: dconf
|
|
|
|
- windows: registry
|
|
|
|
- osx/quarz: plists
|
2014-01-27 03:15:44 -06:00
|
|
|
|
2018-04-06 16:47:24 -05:00
|
|
|
Note that the osx and windows backends are built-in in gio for their
|
|
|
|
respective platforms. On linux and similar systems, the dconf package
|
|
|
|
should be installed.
|
2014-01-27 03:15:44 -06:00
|
|
|
|
2013-11-05 13:33:10 -06:00
|
|
|
at runtime, suggested
|
|
|
|
---------------------
|
2018-04-06 16:47:24 -05:00
|
|
|
isocodes: translation of currency names
|
2011-03-30 02:13:54 -05:00
|
|
|
|