Using the 'Close' button works correctly. The difference is that
the 'X' button triggers a cancel action while the 'Close' button
triggers a close action. I have changed this such that when the
import already happened (that is when the user is looking at the
summary page), a close action will be triggered in both cases.
.so was platform specific. By omitting the extension
guile properly finds the right library on both linux
and Windows (haven't tested on OS X but I assume it
to work there as well).
1. Tell the engine to look in the build dir for the backend modules
Guile compilation loads the engine libraries for
some guile modules. This triggers the engine
initialization code which tries to load the xml backend module
and optionally the dbi module as well.
By default it looks for these modules in the installed directory
but during build they are not installed yet, so use a few
environment variables to tell the engine to look in the build
dir instead.
2. Wait for the c library to be linked before attempting to
compile the guile files. Some guile files need the library
to be available.
Note that neither fix is necessary for all directories that has
scheme files to compile. For consistency between makefiles, I have
chosen to add them to all, which won't hurt.
With pre-compiled scm files, guile will no longer
resort to autocompilation at first startup. This avoids
bugs like downstream
https://bugzilla.redhat.com/show_bug.cgi?id=1151870
(Where autocompiled files for an older version of
gnucash are more recent than the source files installed
with the newer version)
Note that a new variable GUILE_LOAD_COMPILED_PATH is added
for this in the environment file. This variable should probably
be updated in the OSX and Windows build scrips if/when these
are building with guile 2.
Strictly speaking this new variable is only needed for guile 2.
However since guile 1.8 simply ignores the environment variable,
it's just set unconditionally regardless of the guile version
being active.
- fix circular dependency between business-reports.scm and owner-report.scm
- split out gettext routines to properly handle N_ for all files that use it
- remove some unused module inclusions
- tax module depends on app-utils -> fix build order
Instead of TEST_PROGS. This has two advantages:
* By deferring the builds until make check any prerequisites, especially
in test-core, are already built regardless of overall build order.
* The output of these tests is logged and the success or failure
included in the make check summary instead of adding their rather verbose
output to the stderr.
KvpFrame was implemented using GList. Given the current desire
to distance ourselves from glib and acquaint the project with
C++, the standard library thereof, and boost libraries, KvpFrame
has been replaced by an implementation that uses a std::map<
const char *, KvpValueImpl *>.
There were some cases of the KvpFrame's glist being accessed
directly. A new API to help callers access the KvpFrame's contents
systematically by providing a list of keys has been created, and
call sites of the GList code have been updated.
Another deprecated #define was found and removed (kvp_frame_set_str).
Enabled with --enable-google-test, configure the location of the sources
with --with-gtest-root, --with-gtest-headers, --with-gmock-root, and
--with-gmock-headers. The latter isn't necessary if the headers are
installed in /usr/include and the sources in /usr/src as the Debian
packages do.
This is a first-pass and needs to be made a bit more sophisticated later.
It might also be worthwhile to extract it into an m4 macro.
The '.scm' extension prevents loading of a precompiled
version of the file from the %load-compiled-path and
will always trigger an autocompilation instead. Omitting
the extension properly allows the function to load a
precompiled version if it exists and is more recent than
the source file. This is only relevant for guile 2 but
works ok for guile 1.8 as well so it's changed unconditionally.
The bare percent sign in this string messes with po translation
files and causes difficulties compiling without backslashes and
other pain. Cleans up the English by using real words.