Commit Graph

331 Commits

Author SHA1 Message Date
Frank H. Ellenberger
ec7e6c37d1 Add a warning for gettext < 0.20
They do not recognize <developer_name>GnuCash Project</developer_name>
in gnucash.appdata (https://savannah.gnu.org/bugs/?50408)
2020-01-31 01:52:52 +01:00
Christopher Lam
62c2203d40 Merge branch 'maint' 2020-01-30 20:30:04 +08:00
Geert Janssens
031d805bb2 Fix binreloc test for all install paths inside prefix
The FHS standard rules for a /opt based prefix sets a sysconfig dir to
/etc/opt/... which is outside of /opt. This was however not detected
properly. It now is.
2020-01-22 22:05:20 +01:00
Geert Janssens
490b20d2da Merge branch 'maint' 2020-01-17 18:35:30 +01:00
Geert Janssens
d8a304c2c9 Housekeeping - reduce the number of PACKAGE and VERSION related cmake variables
This starts by setting the gnucash version number in the 'project' call.
This will result in a number of variables set by cmake. The remainder
of this commit is to reuse the auto-generated
PROJECT_NAME, PROJECT_VERSION, PROJECT_VERSION_MAJOR
PROJECT_VERSION_MINOR, PROJECT_VERSION_PATCH and PROJECT_VERSION_TWEAK
instead of all the various instances of PACKAGE, GNUCASH_MAJOR_VERSION
and so on.

One parameter is worth mentioning - GETTEXT_PACKAGE
GnuCash is not using this directly (any more) but it has to be set before
including gi18n-lib.h.
2020-01-17 18:15:27 +01:00
John Ralls
211c1119f3 Release GnuCash 3.8. 2019-12-28 13:38:13 -08:00
Geert Janssens
e8451ae1db tax - remove gncmod boilerplate
This is now an ordinary shared library

* Remove test to load the gnc-module in scheme
* Rewrite test to load the module in C to actually test something.
2019-12-06 20:38:21 +01:00
Geert Janssens
d52aa0a0dd app-utils - remove gnc-module boilerplate
app-utils now is an ordinery shared library

A few bits worth mentioning:
1. it's not guile-free just yet, so instead of a gnc_module_load
   your code may have to call scm_c_use_module("gnucash app-utils");
   to expose the scm side of the app-utils api. This call has been
   added to gnucash-bin.c for example
2. while lots of noise in this commit is to rename from gncmodule-app-utils
   to gnc-app-utils, I'll point out the library has also been moved from
   <libdir>/gnucash to <libdir>. This required changes in app-util's
   CMakeLists.txt file for the install side and in the top level
   CMakeLists.txt file for the build directory structure.
3. The C side link module test has been removed as linking an ordinary
   shared library should be considered well tested by the compiler devs.
   The scheme side module load test has been slightly tweaked to no longer
   try to use gnc:module-load, but instead now checks whether the app-utils
   api is properly exposed to scheme after loading it via use-modules.
4. Dropped a completely obsolete README file.
2019-12-06 20:38:21 +01:00
Geert Janssens
4c77f7670e engine - remove gncmod boilerplate
engine is now an ordinary shared library

This requires a few more places to run gnc_engine_init as
this is no longer done as part of module loading.
2019-12-06 20:38:21 +01:00
Geert Janssens
e493d42def Introduce gnucash-guile shared library
This (currently empty) library is intented to become
the standard api library for guile code that wants
to use the libgnucash functionality.
2019-12-06 19:59:11 +01:00
Christopher Lam
330687deb6 Merge branch 'maint' 2019-10-23 07:53:25 +08:00
Geert Janssens
994dcd5d9f Remove debugging messages that accidentally had slipped in 2019-10-17 22:45:39 +02:00
John Ralls
931cf50f69 Set C and C++ standards the modern Cmake way, and set C++ to C++17.
Take 2, accepts pre-1.67 versions of boost that have been patched to
remove boost::locale's dependence on auto_ptr.
2019-10-12 17:03:40 -07:00
John Ralls
58cfb58b9c Revert "Set C and C++ standards the modern Cmake way, and set C++ to C++17."
This reverts commit b5afd2e319.

Our baseline distro, Ubuntu 18.04, provides boost 1.65 and boost 1.67
is required for building with C++17 because the boost::locale developer
hung on to auto_ptr 6 years longer than he should have.
2019-10-08 21:05:00 -07:00
John Ralls
b5afd2e319 Set C and C++ standards the modern Cmake way, and set C++ to C++17.
Boost has to go to 1.67 as well because boost::locale used auto_ptr
before that and it's been removed from the language in C++17.
2019-10-08 13:46:42 -07:00
John Ralls
5e41c79c76 Require SWIG >=3.0.12 for facility to extend C++ classes with templates. 2019-10-08 11:09:53 -07:00
Geert Janssens
b00a95c0b3 Tweak install rule to be able to compile glib's schema's on Windows as well
(Cherry picked from master)
It's a bit of a hack based on the assumption DESTDIR is never set on Windows.
A install time guard is added to assert this.

It needed a few changes to make this working:
- Have cmake expand DESTDIR instead of delaying this to bash
  If not, bash would see "$DESTDIRC:/gcdev64/..." and we'd loose
  the drive letter in bash' expansion of $DESTDIRC.
  So work with $ENV{DESTDIR} instead
- To prevent cmake from already expanding this in the
  build system generation step add the appropriate escapes to
  that variable.
- Add guard code in the install command that asserts
  DESTDIR is not set on Windows. Use similar escapes as
  necessary to ensure the evaluation happens at install time
  rather than in the generation step.
2019-10-06 22:10:41 +02:00
Geert Janssens
75073a7ab2 Tweak install rule to be able to compile glib's schema's on Windows as well
It's a bit of a hack based on the assumption DESTDIR is never set on Windows.
A install time guard is added to assert this.

It needed a few changes to make this working:
- Have cmake expand DESTDIR instead of delaying this to bash
  If not, bash would see "$DESTDIRC:/gcdev64/..." and we'd loose
  the drive letter in bash' expansion of $DESTDIRC.
  So work with $ENV{DESTDIR} instead
- To prevent cmake from already expanding this in the
  build system generation step add the appropriate escapes to
  that variable.
- Add guard code in the install command that asserts
  DESTDIR is not set on Windows. Use similar escapes as
  necessary to ensure the evaluation happens at install time
  rather than in the generation step.
2019-10-06 21:51:59 +02:00
John Ralls
78f44434da Fix missing include CheckSymbolExists and use the AQB linkage flags found by pkg-config. 2019-09-21 15:53:25 -07:00
John Ralls
b8b33b9591 Revert "More conversions from pkg-config variables to imported targets."
This reverts commit 1a9fcfefad because
on MinGW cmake complains about the paths in pkgconfig files. This can
be addressed by using the MSYS2 cmake instead of the MINGW32 one, but
that requires some other changes... and there's also a path separator
bug in that version of FindPkgConfig.cmake.
2019-09-21 15:53:25 -07:00
Geert Janssens
980daeec83 Make swig wrapper generation just another build step
Until now it was only done when building from git, but there's no
real reason not to do it as a normal build step in all cases.
It may have been unreliable in the past. There's no evidence
it still is.
2019-09-21 22:50:51 +02:00
Geert Janssens
9214f2ed5b Merge branch 'maint' 2019-09-18 22:42:48 +02:00
Christopher Lam
16da1acf1d Merge branch 'typos1' of git://github.com/luzpaz/gnucash into luzpaz-typos1 2019-09-18 21:36:29 +08:00
Christian Stimming
ccaaa14187 [aqbanking] Again use aqbanking version number for new function instead of cmake_symbol_check
This reverts commit adae341d, "Use cmake_symbol_check to test for
AB_Banking_RuntimeConfig_SetCharValue". We received multiple reports
that the cmake check fails and the behaviour unexpectedly does not use
the new function. As this is completely counter-intuitive as long as the
new-enough aqbanking version are there, we better just stick
to the aqbanking version numbers, especially because this function is used
only in exactly one place here.
2019-09-17 22:09:47 +02:00
Geert Janssens
594388b765 Drop support for gettext older than 0.19.6 2019-09-17 15:46:50 +02:00
Geert Janssens
797654133b Use newer cmake version checks 2019-09-17 15:46:50 +02:00
John Ralls
6753b30b86 Convert GtkMacIntegration to package-style dependencies. 2019-09-15 12:27:43 -07:00
John Ralls
76979554a0 Ubuntu 18.04 requires explicit link to pthreads. 2019-09-14 11:49:12 -07:00
luz.paz
65bb60d621 Fix typos for gnuchash/ doc/ bindings/ and misc.
Typos found via `codespell -q 3 -D ~/Projects/codespell/codespell_lib/data/dictionary.txt -S *.po,./po,*.min.js,./ChangeLog*,./NEWS,./doc/README*,./AUTHORS,./libgnucash/tax/us/txf-de*,./data/accounts -L ans,cas,dragable,gae,iff,iif,mut,nd,numer,startd,stoll`
2019-09-13 20:26:03 -04:00
John Ralls
1a9fcfefad More conversions from pkg-config variables to imported targets.
Also converts ICU detection from pkgconfig to FindICU.
2019-09-13 17:05:35 -07:00
Matthew Forbis
c675b5b5e4 Fix incorrect signature error with Cmake >= 3.6 and Webkit1. 2019-09-13 10:52:28 -07:00
John Ralls
e38cc91452 Merge branch 'maint'
Bumping the required cmake to 3.10 and removing GncPkgConfig.cmake as
no longer required.
2019-09-13 09:43:04 -07:00
John Ralls
41c58ec00a Convert Gtk3 and Webkit to imported targets.
This causes CMake to include their headers with -isystem instead of -I,
so the compiler doesn't generate warnings on them. ArchLinux was failing
to build because of such warnings.

Includes a function from cmake 3.6 to allow this to work on systems like
Ubuntu 14.04 that still provide only cmake 3.5.
2019-09-12 21:20:29 -07:00
John Ralls
84cfc5743b Release GnuCash 3.7 2019-09-07 16:38:10 -07:00
Christian Gruber
97a81980e5 Remove support for GoogleTest/GoogleMock <= v1.8.0
This simplifies function gnc_gtest_configure(), since GoogleTest and
GoogleMock are combined in one source directory.

Additionally variable GMOCK_ROOT is not necessary anymore and is
removed.
2019-09-04 22:06:32 +02:00
Geert Janssens
9a48122d41 Merge maint 2019-08-27 17:25:41 +02:00
Geert Janssens
7dc59950a5 Bug 797353 - Add copyright and release info in appdata file
This also means the appdata file now requires preprocessing to set this info
automatically.
2019-08-24 17:32:16 +02:00
Geert Janssens
0e93e95c6c Merge maint 2019-08-17 12:53:55 +02:00
John Ralls
adae341def Use cmake_symbol_check to test for AB_Banking_RuntimeConfig_SetCharValue
instead of relying on AQBanking versions.
2019-08-13 09:52:31 -07:00
Christopher Lam
720f176417 Merge branch 'maint' 2019-07-25 20:30:32 +08:00
iggyvolz
49771ee9f9 Fix typo in CMakeLists.txt 2019-07-24 19:17:22 +08:00
John Ralls
d42695e75a Release GnuCash 3.6 2019-06-29 16:37:02 -07:00
Geert Janssens
6b5dcc3877 RptCleanup - reorganize stylesheets
- store them in a subdirectory
- reuse the report module loader
- eliminate gncmod-stylesheet, gui bits are now in gnome
2019-06-18 14:25:04 +02:00
Geert Janssens
32a83678c9 RptCleanup - Install our guile api as a guile site module
This is similar to how our python code is installed as a python site module
2019-06-18 14:25:04 +02:00
Geert Janssens
3d150de16f Bump minimum Gtk version to 3.18 2019-06-12 15:17:29 +02:00
John Ralls
9ec5eab714 Merge branch 'maint' 2019-06-09 12:43:12 -07:00
Geert Janssens
727348eff3 Restructure shell detection code
It will now first check for an environment variable GNC_SHELL and use
that if it exists. Then hardcode a shell if cmake detects the old
mingw environment (not mingw64), and finally fall back to cmake's
built-in method of finding bash.
This requires a fix in gnucash-on-osx for the build on that platform
to continue to work: on that platform, we should set GNC_SHELL
before starting the build. A patch has been submitted to do that
automatically for the user.
2019-06-03 11:14:17 +02:00
Geert Janssens
cc7ca438c0 Merge branch 'maint' 2019-05-27 11:58:18 +02:00
Geert Janssens
b7479e8fb0 Bump minimum cmake version to 3.5
This version is available for all supported platforms and distros
(CentOS can have a version via EPEL, which is required anyway)

Advantages:
- one cmake version for all platforms
- we can drop all conditions based on cmake version
2019-05-25 12:04:51 +02:00
John Ralls
3ec00f5275 Merge branch 'maint' 2019-05-16 11:29:14 -07:00
Frank H. Ellenberger
a63adac4c5 Rise minimum required CMake version for Linux to 3.2
This will allow us to use modules like FindIntl.
https://lists.gnucash.org/logs/2019/05/14.html#T17:32:19
2019-05-15 00:18:25 +02:00
Frank H. Ellenberger
29f605bd1b Move I18N modules in one section of CMakelists.txt 2019-05-14 23:44:18 +02:00
Frank H. Ellenberger
7cb4c1d7b1 Cleanup of no longer used Gettext flags
We don't need HAVE_GETTEXT conditional code
2019-05-14 23:44:18 +02:00
Frank H. Ellenberger
6b0f3ce641 Unify optionally required Python version - PR #481 supplement 2019-05-14 04:24:26 +02:00
John Ralls
2c637a9714 Put the version back to 3.900. 2019-04-28 10:53:17 -07:00
John Ralls
5311e5a386 Revert "Merge T Edmunds's 'amortization-rounding' into maint."
This reverts commit aa53c23239, reversing
changes made to 3c946a8449, because
aa53c23 was based on master and so undid other changes made to maint
since the last merge-to-master.
2019-04-25 13:19:28 -07:00
John Ralls
3ddd76f8f2 Merge branch 'maint' 2019-03-31 10:43:33 -07:00
John Ralls
76a91aa2c3 Release GnuCash 3.5 2019-03-30 14:43:38 -07:00
John Ralls
d8c6af2d65 Remove support for ancient versions of AQBanking.
Requires Gwenhywfar >= 4.9.99 and AQBanking >= 5.3.4, the versions
just before the ones provided by Ubuntu 14.04LTS

Removes all definitions and ifdeffed code for earlier versions.
Removes the never-completed SEPA character checking that was if-zeroed.
2019-03-28 12:41:08 -07:00
Christian Stimming
dac94ce038 Remove ktoblzcheck dependency.
Remove old (non-SEPA) online transaction code, because now in 2019
the banks will only offer SEPA transactions and no others. This
in turn means we don't need the old ktoblzcheck checking functions
at all, hence I remove this dependency completely.
2019-02-13 11:26:39 +01:00
John Ralls
614932eda5 Merge branch 'maint'. 2019-01-15 09:44:14 -08:00
John Ralls
efee68a315 Release GnuCash 3.4 2018-12-30 07:38:18 -08:00
Geert Janssens
74ed802eae Show warnings for deprecated declarations
We're about to announce our own set of deprecated functions in libgnucash.
That would be pretty pointless if we also would silence all deprecation warnings
at the same time...
2018-12-27 22:25:18 +01:00
John Ralls
6eba0d4940 Merge branch 'maint' 2018-11-30 17:32:58 +09:00
John Ralls
5dcb44d991 Fix regex in CMakeLists.txt.
Apparently CMake doesn't handle backslashes well and \.
doesn't work in spite of its being an example in the documentation.
2018-11-30 16:40:35 +09:00
John Ralls
e434835f68 Remove special Apple compile flags, no longer required. 2018-11-30 16:23:30 +09:00
John Ralls
3f09e5c6f1 Only disable register warnings for SWIG 2.
SWIG 3 has removed the register storage class markers.
2018-11-30 16:11:42 +09:00
Frank H. Ellenberger
51b96ec3e5 Update package URLS
We don't want bug mails to devel.
(missed port from autotools)
2018-11-03 05:39:02 +01:00
John Ralls
ab1070ebca Adjust no-register CXXFlag.
To account for different flag on some versions of Clang.
2018-10-28 13:23:38 -07:00
John Ralls
7706fff3c9 Merge branch 'maint' 2018-09-29 16:50:55 -07:00
John Ralls
65c8357f53 Release 3.3 2018-09-29 16:05:55 -07:00
John Ralls
766dc9b2d5 CMake: Test for & set WORDS_BIGENDIAN, set _GNU_SOURCE.
Got lost in transition from autotools.
2018-09-17 17:42:53 -07:00
Geert Janssens
4c87dd05ec Fix compiler warning issues
- add -Wno-deprecated-declarations to CXX_FLAGS as well. This was
  reported by vorlonofportland in PR#401 to become necessary for glib 2.58
  as that has deprecated g_type_class_add_private which appears in our
  c++ code.
- change -Wno-deprecated-register into -Wregister. The former appeared to
  be a clang dialect and alias for the latter (see
  https://github.com/Barro/compiler-warnings for an overview of clang
  and gcc warnings). It was moved to global CXX_FLAGS as it can only be
  added for g++.
2018-09-01 12:07:38 +02:00
Geert Janssens
54a5097c60 Bug 796777 - CVE-2008-1391: Integer overflow in included strfmon function
We only used strfmon in one source file to generate three fixed format
strings. Instead of updating to a newer strfmon in borrowed I have
chosen to reimplement the string formatters for these strings in C++.
Note this is *not* a full c++ conversion of the full functionality
of assistant-loan. Only the string parsing has been redone.
2018-08-17 16:23:12 +02:00
John Ralls
22dd716b58 Set the SWIG minimum version to 2.0.11 now that we require Guile-2.0. 2018-08-10 12:57:46 -07:00
John Ralls
accd154eb0 Don't run test-stress-options.scm if no textual-ports.
ice-9 textual ports, required by test-stress-options, was introduced
in guile 2.2. We still support using guile-2.0.
2018-07-27 15:58:46 -07:00
John Ralls
5d80a52eaa Release GnuCash 3.2 2018-06-24 11:09:08 -07:00
Benjamin Gordon
8cae602e66 Add support for libsecret to cmake
gnucash has historically supported storing passwords for database
backends with libsecret when HAVE_LIBSECRET is defined. The code is
still present, but support for detecting libsecret's availablity was not
ported over when the build system was converted to cmake.  This change
restores the missing detection.
2018-06-13 21:13:21 -06:00
Potuz
e3e1464a01 Bug 794617 - Can't compile with -DWITH_GNUCASH=NO due to scm-gnome-utils
Pricedb.go doesn't need gnc-gnome-utils and we don't need WebKit or
gwenhywfar-gtk3 if we have no GUI.
2018-06-07 14:17:49 -07:00
John Ralls
a97f9faf91 Revert "Merge Keve Mueller's 'xea-fixes' into maint"
This reverts commit eb67baba5b, reversing
changes made to 0064dafbad.

Keve Mueller's xea-fixes branch was made from master, so merging it into
maint effectively merged master onto maint, not something we want to do.
2018-06-04 13:46:23 -07:00
John Ralls
eb67baba5b Merge Keve Mueller's 'xea-fixes' into maint 2018-06-03 10:26:52 -07:00
Ryan Schmidt
075021a88d
Fix build on case-sensitive filesystems 2018-05-26 11:45:45 -05:00
Geert Janssens
61071b9f6d Merge branch 'maint' 2018-05-12 14:10:38 +02:00
Geert Janssens
2e53d64726 Work around gtk warnings with gcc 8.0 2018-05-09 22:18:29 +02:00
Geert Janssens
1f3cf845c4 Work around a conflict between gcc 8.0 and swig 3.0
The swig 3.0 generated python wrappers trigger a warning converted into an error issued
by gcc 8.0 for using strncpy as follows:
strncpy(buff, "swig_ptr: ", 10);
The reason is this call will truncate the trailing null byte from the string.
This appears to have been fixed in swig master already but that's not released yet
so let disable the warning when compiling the swig wrappers until it is.
2018-05-09 22:18:29 +02:00
Geert Janssens
52ac539d23 Merge branch 'maint' into master
Handle conflict between version number reset and lowercasing all commands
2018-05-04 10:25:38 +02:00
Geert Janssens
a9f35ed7ae Lowercase cmake commands
A huge bikeshed fest but it distracted me enough to do it anyway.
2018-05-03 23:18:15 +02:00
John Ralls
6be7e82b9f Restore version in CMakeLists.txt.
Didn't raise a conflict in the merge for some reason.
2018-04-29 11:50:17 -07:00
John Ralls
6645d93f9a Release GnuCash 3.1 2018-04-28 14:33:04 -07:00
Di Mang
cf24f9830b
Remove GNUCASH_MICRO_VERSION from VERSION...
and remove of variable CPACK_PACKAGE_VERSION_PATCH
2018-04-04 23:11:13 +02:00
John Ralls
c6858e3e01 Release GnuCash 3.0 2018-04-01 13:22:49 -07:00
John Ralls
042476f4b4 Compile our own gwen-gtk3 if the supplied one is 4.20.0.
This is a bit brittle because it depends on Martin Preuss applying our
patch (already applied to borrowed/gwen-gtk3) before releasing 4.20.1,
but creating a proper test for the changes proved to be too difficult.
2018-04-01 10:25:57 -07:00
John Ralls
dc6d86efdb Convert to a two-digit version number. 2018-03-31 18:00:15 -07:00
John Ralls
dfb5de91ff Release 2.7.8. 2018-03-25 12:37:11 -07:00
John Ralls
6cce41b0d1 Actually change CMakeLists.txt for the release. 2018-03-18 13:27:21 -07:00
luc14n0
a893a632e9 Add COMPILE_GSCHEMAS to allow disabling gschemas compilation 2018-03-18 12:30:13 -07:00
Julian Wollrath
a43b115a45 Bug 791831 - Add python3 support
This switches swig to use python 3 specific features when generating the
bindings, switches the build over to python 3 and makes the neccesary
python 2 to 3 conversions in the bindings and tests.
2018-03-17 15:10:00 -07:00
John Ralls
85ec07ec30 Revert "Add COMPILE_SCHEMA to allow disabling gschema compilation"
This reverts commit 6b46299e8d, which was
pushed by mistake.
2018-03-17 14:56:37 -07:00
luc14n0
6b46299e8d Add COMPILE_SCHEMA to allow disabling gschema compilation 2018-03-17 00:14:25 -03:00
John Ralls
4a8c2645b4 Release 2.7.6 2018-03-11 22:23:32 -07:00