Commit Graph

348 Commits

Author SHA1 Message Date
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
John Ralls
8c9855a6bb Pass GTEST_ROOT and GMOCK_ROOT through to distcheck.
So that they don't have to be exported in the environment if they're needed.
2018-03-11 10:38:05 -07:00
John Ralls
10b7cbc257 Fix boost linking problem on Unbuntu 14. 2018-03-09 16:24:16 -08:00
Guy Taylor
41d79f4ef3 Fix CPack package version number
Currently running "ninja-build package" produces a file with and incorrect
version number. This patch passes the CMake version variables into CPack to get
the correct filename.

Old "gnucash-0.1.1-Linux.tar.gz" new "gnucash-2.7.5-Linux.tar.gz"
2018-03-05 15:38:41 +00:00
Geert Janssens
b71c346ef5 Fix typo: should read 'older version of gettext' rather than 'older version of gnucash' 2018-02-28 16:48:49 +01:00
Geert Janssens
02c69a7933 Handle situation where gettext 0.19.6 is not available
By default we require gettext 0.19.6 as this is needed to generate a translated version of gnucash.desktop and gnucash.appdata.xml.
However this version is not available on some platforms (most notably our own ubuntu 14.04LTS travis instance).
By setting ALLOW_OLD_GETTEXT=ON, the build configuration falls back to generating untranslated versions of said files instead.
2018-02-27 22:38:27 +01:00
Geert Janssens
ba799feb2a Drop intltool in favour or using modern gettext
This requires at least gettext 0.19.6, and will break our ubuntu 14.04LTS test instance on Travis.
The next commit will work around this.
2018-02-27 22:30:06 +01:00
John Ralls
749beb197d Release GnuCash 2.7.5 2018-02-24 15:41:20 -08:00
Christopher Lam
578e9860d0 Add optional testing group for srfi-64
This adds an optional group to CMakeLists for
systems with SRFI-64 included.
2018-02-23 18:19:59 +08:00
John Ralls
f4965ae2ac Move direct check dependencies to the originating CMakeLists.txt.
Removing transitive dependencies from being declared direct.
2018-02-18 22:16:27 -08:00
John Ralls
ae6d2a2340 ADD_DEFINITIONS is obsolete for setting C/CXXFLAGS.
And setting -O0 in a debug build is unnecessary, that's the default.
2018-02-13 16:47:20 -08:00
John Ralls
da0df1c48d Bug 792883 - cmake: no way to turn off -Werror
Prepend settings to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS so that values
supplied on the command line can override the fixed settings.
2018-02-13 14:11:44 -08:00
John Ralls
0912a5eaa1 Don't force-set Boost_USE_STATIC_LIBS or Boost_USE_STATIC_RUNTIME.
If you need to do that for your build pass the values in on the cmake
command line.

As for all of the noise about Boost's install name if APPLE, just fix it
with the install name tool. There are instructions at the boost module
in gnucash.modules.
2018-02-12 14:00:09 -08:00
John Ralls
c9a17236b9 Release 2.7.4 2018-02-03 08:44:34 -08:00
John Ralls
e6edb9d8e7 [MacOS]Conditionally set -Wno-unused-local-typedef and -Wno-unknown-attributes.
These flags aren't defined until Xcode8.
2018-02-03 08:07:15 -08:00
Geert Janssens
d345624c55 Fix project name, which also determines a number of default paths
It should be all lowercase to be consistent
2018-02-01 14:32:26 +01:00
Geert Janssens
ff24970f5f Add GENERATE_SWIG_WRAPPERS option to control the generation of swig wrappers independently of whether we're building from git
The swig wrappers don't really depend on git (but rather on swig) and there can be
situations the builder wants to generate the wrappers also from a tar ball.
2018-01-31 16:16:59 +01:00
Geert Janssens
1805972646 Revert "Allow user to override BUILDING_FROM_VCS"
This reverts commit ec9d5feba1.

This doesn't do what I had in mind. I'll come up with a
better solution shortly.
2018-01-30 21:24:39 +01:00
Geert Janssens
ec9d5feba1 Allow user to override BUILDING_FROM_VCS 2018-01-30 19:21:39 +01:00
Geert Janssens
f319a8e2a4 Re-enable building a dist tarball from within distcheck 2018-01-29 19:46:44 +01:00
Geert Janssens
ec213360f3 Review which built files are really needed in the dist tarball
Several were only there because they used to be generated via autogen.sh
and hence had to be included because autogen.sh was not supposed to be run
in a tarball based build.
A few others aren't clear so I have left them in for now:
- gnucash.1 (man page)
- gnucash-design.info (because it's unclear what we want to do with that one)

These files should clearly be in the tarball:
- gnucash.pot -> for our translators
- ChangeLog -> can't be generated outside of a git repo
- gnc-vcs-info.h -> can't be generated outside of a git repo
- guile/python bindings -> to avoid a swig dependency when building from tarball
2018-01-29 19:46:44 +01:00
Geert Janssens
4317d8a8f6 Improve handling of generated distributable files
- the two dist_add_... macros now both take a list of file names
as argument so more files can be added at once to the dist tarball.
- dist_add_generated now creates the right target by itself. There's
  no need to pass one any more
- make the swig generated *.py module files explicit output files
- change a couple of custom_targets into custom_commands. The only
  reason they were defined as targets was to ensure they got built
  before the dist tarball. This is now properly handled by the
  dist_add_... macros.
- correctly handle dependency on swig-runtime.h (using OBJECT_DEPENDS
  was not the way to do it according to that property's help page)
2018-01-29 19:46:44 +01:00
Geert Janssens
3dff4e5211 Fix make dist on a clean checkout
cmake with unix makefiles fails to resolve dist dependencies
added from COPY_FROM_BUILD if these dependencies aren't built yet.

This commit replaces the COPY_FROM_BUILD based logic with two new functions
'dist_add_configured' and 'dist_add_generated' to indicate which files should
be included in the dist tarball. The latter also adds a target level dependency
to the dist tarball custom command. Hence the former should
be used for files that get generated during a cmake run while the latter
should be used for files generated as the result of a 'make/ninja-build' run
(like files for which an add_custom_command rule exists).

Note: this commit also temporarily disables the dist target when building
from a tarball (and hence it won't be tested in distcheck either). This
will be handled in a future commit.
2018-01-29 19:46:44 +01:00
Geert Janssens
1258a2adfd Make potfile generation a custom target, and make the dist target depend on it 2018-01-29 19:46:44 +01:00
Geert Janssens
b12a6cf4d2 Revert "Partially revert commit 85bfbd8e8258e"
This reverts commit b6aae75317.

I was mistaken. We still need po/make-gnucash-pot.sh.in, not
make-gnucash-potfiles.in...
2018-01-29 19:46:44 +01:00
John Ralls
83128e2f1d Fix Webkit1 configuration for Windows Builds. 2018-01-27 16:42:56 -08:00
Geert Janssens
b6aae75317 Partially revert commit 85bfbd8e82
make-gnucash-potfiles.in is still needed after all
2018-01-27 14:13:06 +01:00
Geert Janssens
85bfbd8e82 Some minor cleanups after the autotools removal
This includes removal of the now unused make-gnucash-potfiles.in,
checking for CMakeLists.txt rather than Makefile.am in gnc-vcs-info,
upating the HACKING file,
and generally updating references to autotools.

I have kept "Makefile.*" exclude patterns in our CMakeLists.txt files
because they may still be lingering in the source directory from
previous autogen.sh runs. At some point these should probably be
removed as well still, together with the gitignore references to them.
2018-01-26 18:22:48 +01:00
John Ralls
1fc46fe140 Fix some dependency-checking failures.
Thanks to Robert Merkel for reporting them.
* Build gnucash-design.info if makeinfo is available, but don't complain
  if it isn't.
* Fail Cmake if LibXSLT and xsltproc aren't found. Those are required to
  build the gschemas and GnuCash won't work without them.
* Fix the WebKit detection so that it isn't faked out into thinking it has
  WebKit2Gtk-4.0 when it's WebKit2Gtk-3.0 and cmake is run with a
  CMakeCache.txt present.
2018-01-23 16:04:28 -08:00
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
Rob Gowin
fa8723ea6d Fixes to get CMake "MinGW Makefiles" generator to work.
* CMakeLists.txt: Give CMake a hint about where to find pod2man
     based on where it found perl.

   * src/cmake_modules/GncConfigure.cmake: Protect GNC_HELPDIR in
     quotes for cases where it contains spaces (like "C:\Program Files"
     on Windows).
2016-07-16 14:12:58 -05:00
John Ralls
6252fcf1ae Merge branch 'maint' 2016-07-15 15:18:59 +00:00
Rob Gowin
2c268ba09c Allow HTMLHELP_DIR to be specified on cmake command line 2016-07-14 21:05:32 -05:00
John Ralls
43a7cd096e Merge branch 'maint' 2016-07-08 16:36:10 +00:00
John Ralls
6ad8ff3b4e Tweak version.cmake to work on Windows.
Cmake's execute_process doesn't use a shell unless you tell it to.
2016-07-08 16:35:39 +00:00
John Ralls
344de4eb37 Merge branch 'maint' 2016-07-03 08:53:04 -07:00
John Ralls
6a81738e96 Don't override optimization flags in CMakeLists.txt. 2016-07-02 16:12:56 -07:00
John Ralls
5547337e05 Enable Google Tests under CMake. 2016-07-01 15:01:11 -07:00
John Ralls
ddf84d0725 Release 2.6.13 2016-06-25 12:04:40 -07:00
John Ralls
d3933f7c83 Bump CMake version to current. 2016-06-23 09:41:48 -07:00
Geert Janssens
b92eff265a Avoid variable redefined errors for _FORTIFY_SOURCE
I ran into this on sabayon linux while trying the cmake build
2016-06-02 18:49:23 +02:00
John Ralls
94ca78025e Fix up boost regex linkage issues on non-OSX platforms. 2016-05-21 11:04:12 -07:00
Rob Gowin
c739f4fae4 CMake: Don't try to install COPYING file that does not exist. 2016-04-21 08:36:03 -05:00
Geert Janssens
175d404a1b Merge branch 'maint'
Resolved conflicts:
	src/core-utils/gnc-features.c
	src/core-utils/gnc-features.h
	src/engine/test/CMakeLists.txt
	src/gnc-module/test/test-dynload.c
	src/import-export/import-match-map.c
2016-03-10 15:52:02 +01:00
RobGowin
6e50516c1d cmake - Increase test pass rate on Windows 2016-02-01 18:29:34 +01:00
RobGowin
0031478d86 Fix CMake build after maint merge 2016-01-26 12:13:49 -06:00
John Ralls
7f65a3356e Merge branch 'maint' 2016-01-26 09:30:00 -08:00
RobGowin
326f3cc0a2 Remove extra symlink command
* Remove symlink command that is now done a few lines later.
* Relocate comment.
* Do not install INSTALL (not needed) and COPYING (linked/copied elsewhere).
2016-01-25 09:35:48 -08:00
RobGowin
42e5dd5c8c cmake - Add ability to run tests under CMake 2016-01-24 19:54:33 -06:00
John Ralls
290232e2cb Merge branch 'maint'
Fixes breakage of Windows master build by not trying to link on Windows.
2016-01-15 10:03:24 -08:00
RobGowin
88a1d1412a Tweak handling of COPYING file
* Fix symlink to not escape local directory
* Copy instead of link for Win32
* Remove COPYING and INSTALL from maint branch
2016-01-15 09:59:55 -08:00
RobGowin
53b7c51632 Support CMake 3.0 for Debian Jessie 2016-01-14 09:58:29 -08:00
John Ralls
9494219603 Merge branch 'maint'
Link LICENSE to COPYING.
2016-01-12 16:22:57 -08:00
John Ralls
584161c97b Link LICENSE to COPYING, don't install INSTALL.
The original plan was to duplicate exactly what automake does, but
we don't really want to do that. Automake installs the GPLV3 COPYING
which we don't use--LICENSE is the GPLV2 version--and INSTALL is the
autotools procedure that doesn't make sense for a cmake build.
2016-01-12 16:18:31 -08:00
John Ralls
52df775ada Merge branch 'maint'
Reconcile the cmake build.
2016-01-12 16:14:46 -08:00
Rob Gowin
448148681f CMake build changes for maint
* Rename various .cpp files back to .c

* Carry copy INSTALL and COPYING from autotools.

* Fix unrelated issue with installing quote scripts.
2016-01-12 14:47:11 -08:00
Rob Gowin
1d474968ca Add ability to build GnuCash with CMake
Backported from master.
2016-01-12 14:47:11 -08:00
John Ralls
18011a6486 Add dialog-imap-editor to CMakeLists.txt. 2016-01-12 14:37:58 -08:00
Rob Gowin
34c314aa48 Add ability to build GnuCash with CMake 2015-12-09 13:25:49 -06:00
Rob.Gowin
05f08f330d Clean up bitrot to get CuteCash building again.
1. Use guile-2.0 instead of guile-1.8.
2. Set GNC_PLATFORM_POSIX on Unix (for gnc_timezone.cpp).
3. Pass guile include files when compiling cutecash.
4. Link Boost libraries.
5. Add -std=gnu99 to CMAKE_C_FLAGS.
6. Temporarily put -O2 in CMAKE_C_FLAGS since Fedora requires
    optimization for FORTIFY_SOURCE.  (Eventually with CMake
    we will have separate Debug and Release builds.)

Tested that cutecash builds and launches on OS X, Fedora 23 and Ubuntu 14.04.3.
2015-11-07 15:01:05 -06:00
Christian Stimming
ea38f2b8e6 Merge branch 'maint' 2015-04-22 22:40:48 +02:00
Christian Stimming
e9b6ee74ad Cutecash: Switch from guile to xml to manage our iso-currencies source file
Copies 87520cdde4 into the cmake build system.
2015-04-22 22:39:47 +02:00
Christian Stimming
c37fa6f8b0 CMake: Update build system to build again. 2014-08-29 21:55:12 +02:00
John Ralls
34a7e8d62c Add Boost requirement to CMake. 2014-06-16 11:03:45 -07:00
Christian Stimming
77471eb70b Cutecash: Adapt to compiler/linker flags that are needed on Ubuntu 13.10
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@23411 57a11ea4-9604-0410-9ed3-97b8803252fd
2013-11-18 08:00:44 +00:00
Christian Stimming
1c6debfd8a [Cutecash] Update libxml2 include path lookup.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21749 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-12-19 11:37:36 +00:00
Christian Stimming
e08bea1336 [Cutecash] Prepare cutecash for integration of the glibmm wrappers of the engine objects.
This would be an excellent test case for those wrappers...

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@21485 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-10-24 07:59:30 +00:00
Christian Stimming
845fe0d435 Cutecash: Add cmake files for import module and for aqbanking module.
However, this couldn't really re-use all non-GUI code because most code still
contains minor gtk bits here and there. But in the long run much more
code might be available.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20610 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-05-03 20:08:34 +00:00
Christian Stimming
7782063858 Cutecash: Fix guile check.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20609 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-05-03 19:24:49 +00:00
Christian Stimming
ab9fb65b31 Cutecash: Use pkg-config lookup of guile instead of custom macro.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20605 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-05-01 20:56:33 +00:00
Christian Stimming
7d46b5fc0e Bump required gtk version to 2.16 as discussed on gnucash-devel.
This requirement will be increased to 2.18.1 once our win32 build
is upgraded.

Following the gtk version, I increased also all the other related libraries
according to what I found here: ftp://ftp.gnome.org/pub/gnome/platform/2.26/2.26.3/sources/

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20489 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-03-26 12:50:06 +00:00
Christian Stimming
d0b8c4296e Fix cmake build after latest configure changes.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20224 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-02-02 20:31:10 +00:00
Christian Stimming
c2f070dcb8 Update newly introduced NANO version number in cmake build script as well.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20205 57a11ea4-9604-0410-9ed3-97b8803252fd
2011-01-30 10:25:07 +00:00
Christian Stimming
6afded02b0 Cutecash: Fix config.h creation by using the #cmakedefine feature of CONFIGURE_FILE.
Finally, config.h will only be re-created if anything has changed, thus
reducing re-compiling to a minimum. This was done with instructions from
http://www.cmake.org/Wiki/CMake:How_To_Write_Platform_Checks ; however,
more of those checks (like CheckFunctionExists etc) don't work as easily as
CheckHeaderExists, so I left it at that.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19127 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-05-06 11:40:55 +00:00
Christian Stimming
a5a476ebca Cutecash: Add install and packaging rules.
Running "make package" will produce a binary package.
Running "make package_source" will produce a source package.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@19020 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-04-12 19:21:14 +00:00
Christian Stimming
932eeb766d Cutecash: Compile & link SQL backend as well (but there is no GUI for this yet)
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18968 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-27 20:27:10 +00:00
Christian Stimming
eba463bb30 Add src/calculation and src/app-utils to cmake build system.
app-utils is needed for the conversion from and to string
for gnc_numeric, date, and other values.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18905 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-14 21:01:32 +00:00
Christian Stimming
4212c0c786 Cutecash: Enable entering of more cells in register. Some code cleanup. Add class documentation.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18890 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-11 21:59:45 +00:00
Christian Stimming
657e58a5c4 Cutecash: Fix guile version number query. Patch by Herbert Thoma.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18861 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-06 21:42:39 +00:00
Christian Stimming
31fe219109 Cutecash: Fix CMakeLists for change in guile lookup, r18846
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18849 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-06 11:00:54 +00:00
Christian Stimming
650b6ffa10 Cutecash: Add version check for guile and define HAVE_GUILE18 if appropriate.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18846 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-05 20:41:40 +00:00
Christian Stimming
57f38d14ea Cutecash: Allow older glib versions as well.
git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18843 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-05 20:31:31 +00:00
Christian Stimming
dffacfefc7 Finish cmake build system for the C++ experiment.
To build this:

mkdir build-cpp
cd build-cpp
cmake ..
make
./src/gnc/cutecash

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@18815 57a11ea4-9604-0410-9ed3-97b8803252fd
2010-03-04 17:48:36 +00:00