Commit Graph

203 Commits

Author SHA1 Message Date
Rob Gowin
54ac7f23e0 Remove Autotools 2018-01-13 12:52:57 -06:00
John Ralls
310442ffe6 Update ChangeLogs for the new year. 2017-12-31 08:51:21 -08:00
John Ralls
ac05578ba5 Release GnuCash 2.7.3 2017-12-30 16:00:22 -08:00
John Ralls
7feb9c65cf Fix distcheck errors. 2017-12-30 13:40:14 -08:00
John Ralls
8ae330c804 Another attempt to make Travis's g++ happy about compiler warnings. 2017-12-26 21:38:59 -08:00
John Ralls
44fc5b0555 Fix CXX Flags for g++. 2017-12-26 18:23:09 -08:00
John Ralls
91727525b9 Enforce -Werror on C++ files and fix resulting errors. 2017-12-26 15:18:43 -08:00
Geert Janssens
f11eab36d9 Replace GNC_CONFIGURE(2) with configure_file 2017-12-23 14:07:25 +01:00
John Ralls
6e9025d2f9 Don't build borrowed/gwengui-gtk3 if its provided by gwenhywfar. 2017-12-22 10:26:31 -08:00
Geert Janssens
3d910ad2b1 Drop guile 1.8 support
And with it all quirks we still had in the code to support that version.
2017-12-20 14:55:40 +01:00
Geert Janssens
a784dd5784 Add support for guile 2.2 2017-12-20 14:55:40 +01:00
Robert Fewell
0186bc1c0c Change the relative path to a full one for rpath 2017-12-19 15:40:33 -08:00
John Ralls
0026b10851 Merge branch 'maint' into unstable 2017-12-17 13:00:00 -08:00
John Ralls
c1b5e6c8df Release 2.6.19 2017-12-16 15:28:56 -08:00
John Ralls
c0659c8e2b Bug 791422 - gnucash 2.7 no longer opens sqlite3...
as it doesn't load proper backend.
The cause was that the libdbi-driver path in CMakeLists.txt was wrong
and GNC_DBD_DIR was being set unconditionally in etc/gnucash/environment
with an invalid path.
2017-12-10 12:51:24 -08:00
John Ralls
66817bb997 Rework directory determination in CMake builds.
Sets paths for finding componenents depending on the state of ENABLE_BINRELOC,
GNC_UNINSTALLED, GNC_BUILDDIR and whether any install paths have been set
outside of CMAKE_INSTALL_PREFIX.

GNUInstallDirs changes the name of CMAKE_INSTALL_LIBDIR depending on the
operating system and distro. When CMAKE_INSTALL_PREFIX is /usr,
/usr/local, or any subdirectory of /opt it also changes
CMAKE_INSTALL_FULL_SYSCONFDIR to /etc. An earlier commit by Aaron Laws
mirrors the name of CMAKE_INSTALL_LIBDIR to the build library directory.

It's possible for builders to set any of the install directories
anywhere they please.

Setting any directory outside of CMAKE_INSTALL_PREFIX breaks Binreloc so
the toplevel CMakeLists.txt now detects that and disables Binreloc.

If Binreloc is enabled then all path queries use it to find paths. This
works in the build directory because the gnucash executable and all of
the test programs are in build_directory/bin and LIBDIR, DATADIR, and
SYSCONFDIR can be found in the same root path.

If Binreloc is disabled then in order to build or run programs from the
build directory one must set GNC_UNINSTALLED and set GNC_BUILDDIR to the
absolute path of the build directory. When those are set GNC_BUILDDIR
replaces CMAKE_INSTALL_PREFIX in all paths that are subdirectories of
CMAKE_INSTALL_PREFIX; paths that are not in CMAKE_INSTALL_PREFIX are
appended whole to GNC_BUILDDIR. This process is constent between CMake
and gnc_path_get_foo. GnuCash is unlikely to run from a DESTDIR without
Binreloc.
2017-12-05 17:25:52 -08:00
Rob Gowin
9dcb2037ad Partial fix for Bug 787497 - Disabling options cripples dist package
WITH_OFX, WITH_SQL and WITH_AQBANKING handling is fixed. The
dist files for these features are always included in the dist
tarball.

I added code for WITH_GNUCASH=OFF to error out when trying to
create a dist tarball. Not fully tested because WITH_GNUCASH=OFF
itself does not build.

Still need to backport fixes from unstable for WITH_PYTHON=OFF.
2017-12-02 17:59:40 -06:00
Rob Gowin
778b86e29e Handle cases where LIBDIR is not "lib"
For example, Fedora installs to lib64, Debian to lib/<arch-tuple>
2017-12-01 17:00:39 -06:00
John Ralls
9b0a8723a4 More GNUInstallDirs path fixes. 2017-12-01 13:56:52 -08:00
John Ralls
a5bf4e00a4 Merge Aaron Laws's 'unneeded-build-flag' into unstable 2017-11-28 15:16:36 -08:00
John Ralls
5204100d53 Use GNUInstallDirs in CMake Builds
Provides correct file layout when building distribution tarballs.
Fixes Bugs 790840 and 790841.
2017-11-28 14:25:35 -08:00
lmat
04a4849967 Removing unneeded build flag from docker 2017-11-28 16:09:23 -05:00
John Ralls
0afef080a7 Release 2.7.2 2017-11-25 16:35:44 -08:00
John Ralls
49c70795c3 Remove X11 error handler
And with it the only direct X11 dependency.
2017-10-31 08:53:20 -07:00
John Ralls
9669bd6b6c Release 2.7.1 2017-10-29 14:01:15 -07:00
John Ralls
e959822817 Don't copy ChangeLog on a tarball build.
There's no reason to and besides it breaks in-source builds
because trying to copy onto itself raises an error.
2017-10-28 14:21:39 -07:00
Geert Janssens
1a8cf021d2 Add GNUCASH_BUILD_ID cmake/configure variable which allows packagers to define their own
For example distros may want to set the version of their package source (rpm, dpkg,...) rather than
our git id.
2017-10-26 22:48:50 +02:00
John Ralls
a300304354 Fix Windows crash-on-throw.
Thanks to https://stackoverflow.com/questions/46688200/mixing-c-and-c-causing-exceptions-to-terminate
2017-10-26 12:38:50 -07:00
John Ralls
91a2ee4525 [MacOS] Change CMake installed names to absolute paths from @rpath/...
gtk-mac-bundler can't access the executable's rpath list so it can't
follow dependencies if they're not in $install_dir/lib from @rpath.
Autotools always sets absolute path install names so this should have no
adverse affects on other Mac builds.
2017-10-15 13:22:29 -07:00
John Ralls
14eafd8a1d Build Macs with WebKit1.
Temporarily, I hope. Javascript isn't working with WebKit-2.16 but does
with WebKit 2.4.11 and I don't want to hold up releasing 2.7.0 any longer.
2017-10-14 14:31:23 -07:00
Geert Janssens
545b24fe97 Merge branch maint into unstable
Resolved conflicts:
2017-10-05 16:29:36 +02:00
fell
a28f27a0e1 Fix a typo in gir error message 2017-10-03 19:42:32 +02:00
John Ralls
3a9fbb899e Release 2.6.18 2017-09-22 15:12:59 -07:00
John Ralls
0004a44f5f Release 2.7.0 2017-09-16 18:09:47 -07:00
John Ralls
350dd690fd Install the current, 2015, and 2016 ChangeLogs. 2017-09-16 10:15:13 -07:00
Geert Janssens
37ecf56fbb Merge branch 'maint'
Resolved conflicts:
	bindings/python/tests/CMakeLists.txt
2017-09-12 13:48:01 +02:00
Rob Gowin
6ec9aa362b Fix issues with loading and running init.py 2017-09-11 16:09:57 -05:00
John Ralls
5b2439e7c9 Set -xobjective-c or -xobjective-c++ for Mac code depending compiler.
Also require at least Cmake-3.3 for Apple as that's the minimum that
supports the COMPILE_LANGUAGE generator expression.
2017-09-06 22:24:19 -07:00
John Ralls
77d5d6380b Install the current, 2015, and 2016 ChangeLogs. 2017-09-06 11:44:55 -07:00
John Ralls
48365a923d Remove set target property on no-longer-extant gncmod-utility-reports target. 2017-08-31 12:20:08 -07:00
John Ralls
1d4dc42a3f Fix poor error message on missing guile and make it fatal. 2017-08-31 12:20:07 -07:00
John Ralls
e798d6bd25 Remove references to special HTMLHELP directory.
In Mingw64 build we put the Html Help Workshop files in the
appropriate mingw directories.
2017-08-31 12:20:07 -07:00
Geert Janssens
e732ff9432 Fix FIND_PROGRAM invocation for guile 2017-08-31 16:15:19 +02:00
Geert Janssens
64309e4e88 Set the same minimum required gtk version for cmake and autotools
3.10 is what Ubuntu 14.04 (Trusty) ships with and that's the
most recent on Travis. So we can't require a more recent version
for now.
2017-08-31 15:41:32 +02:00
lmat
048b8e37a1 Clear up guile2 vs. guile cmake confusion 2017-08-29 13:58:31 -04:00
Geert Janssens
ae75bc963f Rewrite several file path routines to use boost::filesystem
This is a basis for moving .gnucash to a more modern location for
application specific user data (following the xdg spec).
2017-08-26 21:38:21 +02:00
John Ralls
2ee5b202bf Temporarily include building libgwengui-gtk3 in GnuCash.
Revert this commit when it's widely available in distributed packages.
2017-08-25 16:39:14 -07:00
John Ralls
0f2719ced1 Convert to libgwengui-gtk3 2017-08-25 16:07:18 -07:00
Geert Janssens
f943ba61ae Rename directory for code from external projects
'lib' is also being used by the cmake build, so there was a
theoretical risk for file conflicts. The new name is 'borrowed'.
2017-08-17 15:25:49 +02:00
Geert Janssens
4ce7be0497 Drop packaging directory
While I myself asked for it to be retained a couple of years back
I now believe it really makes no sense to keep on carrying
a completely outdated rpm spec file around. This should not
be part of the source and properly up to date and maintained
rpm spec files can be found in each rpm based distro that ships
gnucash.
2017-08-12 10:13:43 +02:00
Geert Janssens
afecab330a Move accounts, checks and pixmaps into a data directory
At the same time move the art directory into contrib to unclutter the top level
2017-08-11 22:42:15 +02:00
Geert Janssens
83d14e1c1c Restructure the src directory
It is split into
- /libgnucash (for the non-gui bits)
- /gnucash (for the gui)
- /common (misc source files used by both)
- /bindings (currently only holds python bindings)

This is the first step in restructuring the code. It will need much
more fine tuning later on.
2017-08-10 18:45:00 +02:00
Geert Janssens
ffc640bada Move global definitions to toplevel CMakeLists.txt 2017-08-09 17:30:59 +02:00
Geert Janssens
9de9f5362e Drop the cutecash experiment and the gtkmm optional bindings
These are currently unmaintained, cutecash us based on the obsolete qt4
and gtkmm is only used by cutecash. Whenever someone wishes to revive
this experiment it can be recovered from git history and be brought
into a separate repository.
2017-08-09 16:09:32 +02:00
Geert Janssens
785568b0a3 Drop gtk dependency from app-utils
The resolves it's 'allmost nongui' status. Note the options code still
stores a pointer to a gtk widget but this is never used in the app-utils code
itself. This was already so before this commit and fixing this will require
more refactoring later on.

This commit also aligns the list of non-gui source directories between
cmake and autotools. This may need further tweaking in the context of
splitting the source in libgnucash and gnucash (the application)
2017-08-09 15:37:39 +02:00
Geert Janssens
708a9a4775 Make all backend loading use the same build environment module path resolution
This obsoletes some cmake hacks
2017-08-09 15:37:39 +02:00
Geert Janssens
8687dfb1da Merge qof directory into engine
They are both about handling core gnucash objects. Qof was once split out
in an attempt to make it a separate library. This hasn't worked out so there's
no good reason any more to keep this artificial separation.

A few considerations:
- The qof tests are merged into the engine test directory but they are kept as
  a separate test entity for now. Several assumptions made in the qof tests
  are no longer valid in the context of the engine. (For example if the
  pricedb test is added in the same test executable as the qofbook test,
  the book creation test fails because it now has 2 collections (pricedb and
  book) instead of only one. There are plenty of others like this so merging
  the tests needs more careful review and is perhaps best done while converting
  to c++/Google test.
- I had to use unique names for the MockBackend classes because apparently the tests were
  using a MockClass from another file in the cmake builds, causing several
  tests to fail.
2017-08-09 15:37:39 +02:00
Geert Janssens
dd99d7873f Merge business ledger into ledger-core
There's no need to have it as a separate directory
2017-08-07 18:32:18 +02:00
John Ralls
89336269d8 Check the right variable in the right version of gdk to test for a Mac build. 2017-07-31 07:29:42 +01:00
John Ralls
e41410ef25 [Mac] use gtk-mac-integration-gtk3 now that we're building with gtk3. 2017-07-23 15:51:48 -07:00
John Ralls
18ef968ff1 Detect and flag MinGW64
Got lost in the rebase and merge somehow.
2017-07-22 13:29:28 -07:00
John Ralls
0745cb9af5 Enable AQBanking by default in CMake build. 2017-07-14 14:21:07 -07:00
John Ralls
8655dbc55c Check for package webkitgtk-3.0 (webkit1 API) on Windows.
Webkit2 isn't supported on Windows.
2017-07-13 16:40:51 -07:00
John Ralls
890f69933f Set deprecated-declarations to no-error for WIN32 so that it will work with Guile2. 2017-07-13 16:40:43 -07:00
John Ralls
55a30978b3 Replace use of CMAKE_PREFIX_PATH
Because it was assumed that it contains only a single path; it's specified
to be a semi-colon-separated list of paths.
2017-07-13 16:40:42 -07:00
John Ralls
489d0513e0 Adjustments to build on mingw-64.
Note that there may be some changes here that need to be wrapped with ifdef.
2017-07-13 13:46:44 -07:00
Geert Janssens
a7f1f9cdd7 Fix build with cmake > 3.5 2017-07-09 12:45:01 +02:00
John Ralls
a6678e6a49 Allow compilation with either Webkit2Gtk-4.0 or WebKit2Gtk-3.0.
WEBKIT1 for windows is a placeholder, it will need a pkgconfig check too.
2017-07-08 15:08:07 -07:00
Geert Janssens
5405cf480c Merge branch 'gtk3' 2017-07-08 17:49:44 +02:00
John Ralls
c8402ad62e Merge CMake Distcheck from 'maint'.
Conflicts:
	CMakeLists.txt
	src/app-utils/CMakeLists.txt
	src/backend/sql/test/CMakeLists.txt
	src/backend/xml/test/CMakeLists.txt
	src/gnome-utils/CMakeLists.txt
	src/import-export/aqb/CMakeLists.txt
	src/import-export/csv-imp/CMakeLists.txt
	src/import-export/csv-imp/test/Makefile.am
	src/import-export/ofx/CMakeLists.txt
	src/import-export/qif-imp/CMakeLists.txt
	src/libqof/CMakeLists.txt
	src/register/ledger-core/CMakeLists.txt
	src/register/register-core/CMakeLists.txt
	src/register/register-gnome/CMakeLists.txt
	src/report/business-reports/CMakeLists.txt
	src/report/locale-specific/us/CMakeLists.txt
	src/report/report-gnome/CMakeLists.txt
	src/report/standard-reports/CMakeLists.txt
	src/report/stylesheets/CMakeLists.txt
2017-07-04 18:36:35 -07:00
Rob Gowin
6b14dc5b59 Implement 'dist', 'distcheck' and 'uninstall' targets for CMake 2017-07-03 16:15:17 -07:00
John Ralls
bb2ee92961 Re-release 2.6.17
This time with the version number in CMakeLists.txt updated too.
2017-07-01 17:10:09 -07:00
John Ralls
4b73bb5c50 Merge branch 'maint' 2017-06-20 10:26:47 -07:00
John Ralls
582edc1b31 CMakeLists.txt: Remove Apple architecture settings.
Those should be passed in as part of CFLAGS/CXXFLAGS.
2017-04-29 17:53:10 -07:00
John Ralls
b2b32e29fa Work around googletest bug 920.
https://github.com/google/googletest/issues/920, already addressed in configure.ac.
2017-04-17 11:52:44 -07:00
John Ralls
81fa7d76c4 Adjust CMAKE_C_FLAGS for better release/debug behavior. 2017-04-15 10:26:52 -05:00
John Ralls
bb0376240d Get WebKit2Gtk basics compiling and working.
Copy and register links don't work.
2017-04-14 19:21:35 +02:00
Geert Janssens
e40acf5915 Temporarily disable deprecation warnings 2017-04-14 19:21:34 +02:00
Geert Janssens
2528bfde6b Switch to building with the gtk+-3.0 toolkit 2017-03-31 14:04:31 +02:00
Geert Janssens
4888d34554 Replace all other uses of GnomeCanvas with standard gtk widgets
Most are converted to GtkLayout/GtkiDrawingArea widgets as these
most closely approach the GnomeCanvas concept.

This currently builds and runs but has the following issues still:
- item edit isn't drawn properly (margin and offset issues)
- cursor is not handled properly yet

These will be handled in subsequent commits.
2017-03-31 14:03:49 +02:00
John Ralls
509ce16add Release 2.6.16 2017-03-25 17:23:18 -07:00
Geert Janssens
8acbc41c61 Raise minimum required version of glib-2.0 to 2.40
At the same time require --std=gnu11 instead of --sdt=gnu99.

This allows us to drop some conditionals is several places. I've
chosen 2.4 as that is the version available in travis, which appears to
be the oldest platform care about. Debian stable has 2.46 in backports,
our windows environment has 2.42
2017-03-16 22:51:52 +01:00
John Ralls
744fc29680 Require ICU.
Note that Boost::regex and Boost::locale must also be built with ICU
support.
2017-03-13 11:56:33 -07:00
Geert Janssens
dcce2d79cd Remove final dependencies on GOFFICE
This was still pulled in via the now removed gnc-csv-model.
In order to remove this, the fixed format csv importer
has been tweaked to get the required features from
the c++ csv importer code instead.
2017-02-20 17:54:09 +01:00
Geert Janssens
ed7b863d8f Introduce base class for parsing importable files
This base class takes care of the common things like
file opening and character set conversion.
The actual interpretation of the contents will be
delegated to specialized child classes.

Effective c++ note: explicitly declare special member functions
2017-02-20 17:41:34 +01:00
Geert Janssens
659c96eb1b Optionally locate boost via environment variable BOOST_ROOT
This was already the case for our autotools based build
and simplifies the build setup for our Windows build system.
2017-02-02 18:48:15 +01:00
Geert Janssens
4fdacb9b2a Fix building gtest library on mingw
See https://github.com/google/googletest/issues/893
2017-02-02 18:31:54 +01:00
Geert Janssens
0a8d7a2142 Make google test framework a mandatory build dependency
All c++ unit tests will be written with it, and testing
should be possible out of the box.
We could make it optional, but then lots of tests will
be skipped. This creates an illusion of all tests passing
while many are simply not run. This confusion should be
avoided.
This change depends on a second commit for the windows build
in the gnucash-on-windows repository. This commit will be
pushed at the same time.
2017-02-02 17:20:43 +01:00
Geert Janssens
695065a0aa Merge branch 'maint' 2017-01-23 12:03:00 +01:00
klemens
2a97675bee spelling fixes 2017-01-23 11:50:00 +01:00
John Ralls
1ef17e6e16 Release 2.6.15 2016-12-17 11:11:56 -08:00
Geert Janssens
e4bb9b70f8 Merge branch 'maint' 2016-11-24 14:19:50 +01:00
John Ralls
6695ef9585 Bug 769124 - Australian (GMT-10) OFX transactions imported have previous days date.
Fix on Windows, where the test failed to build.
2016-10-20 10:40:18 -07:00
John Ralls
d8711619ce Merge branch 'maint' 2016-09-17 17:09:51 -07:00
John Ralls
84d15a266a Fix version in CMakeLists.txt. 2016-09-17 14:40:59 -07:00
John Ralls
876f57ef4f Australian (GMT-10) OFX transactions imported have previous days date
The fundamental problem is https://sourceforge.net/p/libofx/bugs/39.
Work around it by detecting it at configure time and if present check
to see if the time in question is not daylight time. If that's the case,
determine the daylight time offset and add it back to the timestamp.
2016-09-11 14:48:24 -07:00
Rob Gowin
78ef933e44 CMake improvements for SWIG handling and Python bindings.
* Add ability to either create SWIG C files or use generated ones
  depending on BUILDING_FROM_VCS.

* Add complete support for compiling Python bindings using
  WITH_PYTHON=YES.

* Add CMakeLists.txt files to a couple more directories.
2016-08-30 18:12:49 -05:00
John Ralls
806be3e1d9 Suppress the console window on launch when building with CMake on MSWin. 2016-08-20 20:14:34 +00:00
John Ralls
992f3232ee Adjust CMAKE_C_FLAGS for better release/debug behavior. 2016-08-09 14:07:36 -07:00
John Ralls
f0d4a9719a Merge branch 'maint' 2016-07-16 13:23:42 -07:00