Commit Graph

348 Commits

Author SHA1 Message Date
John Ralls
396ddbd472 Remove support on Linux/BSD for ancient versions of WebKitGtk.
Still supporting 2.4.11 on Mac/Win.
2020-04-24 14:22:18 -07:00
John Ralls
758bd7b656 Merge branch 'maint' 2020-04-24 13:52:21 -07:00
John Ralls
d7c05a90a0 Bug 797697 - Enable DEP and ASLR for the Windows build
Added hardening flags.
2020-04-22 11:34:45 -07:00
Geert Janssens
954c1a001d Convert gncmod-html module into ordinary shared library gnc-html
The module wasn't being used.
2020-04-19 21:23:22 +02:00
John Ralls
7d39ccc9d7 Release GnuCash 3.10 2020-04-11 14:30:22 -07:00
John Ralls
f85be03bb5 Merge branch 'maint' 2020-03-29 14:46:55 -07:00
John Ralls
3c75140d04 Release GnuCash 3.9 2020-03-28 11:35:34 -07:00
John Ralls
058a507781 ChangeLog.2019 2020-03-28 11:34:03 -07:00
Geert Janssens
90345096e4 Merge branch 'maint' 2020-02-28 18:37:10 +01:00
Geert Janssens
6316debc17 Moderately bump aqbanking and gwenhywfar versions
The chosen versions are those available in Ubuntu 18.04, our baseline distro.
This allows to drop our own copy of gwenhywfar-gui.
2020-02-24 13:31:02 +01:00
Geert Janssens
dd18128927 Tweak appdata file generation some more
Should make it easier for packagers to provide their own releases data.
2020-02-17 14:23:43 +01:00
Geert Janssens
69df81e7ef Merge branch 'maint'
- gettext minimum required version on master becomes 0.19.6
- simplify gettext detection code and appdata/desktop file creation
  based on this new minimum
- fix merge conflict for new test-new-owner-report
- update deprecated scheme modules for test-new-owner-report
2020-02-08 14:32:21 +01:00
Geert Janssens
8243496ed0 Rework our gettext tests
- only abort configuration if gettext is older than 0.18.1 (required for string extraction from scheme files)
- otherwise always continue but disable a few other build steps depending on the gettext version
- use feature variables to more clearly convey what is enabled or disabled
2020-02-08 13:19:23 +01:00
Geert Janssens
2d907ff495 Lower gettext version again until a better solution is found 2020-02-06 20:10:42 +01:00
Geert Janssens
ab5b7155af CMake - remove parameter repetition in else() and endif() statements
Fix leftovers after the maint branch merge
2020-02-06 17:01:26 +01:00
Geert Janssens
301db9020d Merge branch 'maint' 2020-02-06 16:50:08 +01:00
Geert Janssens
90e95ba8ef CMake - remove parameter repetition in else() and endif() statements - part 2
This follows Professional CMake's recommended practises
I missed plenty of these in my first commit. This one should fix
these remaining occurrences.
2020-02-06 16:16:36 +01:00
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