These changes hardcoded the standards-reports path at build time.
On Windows and OS X the final path is only known at installation time.
So after installation the build-time hard-coded path would be invalid and
the standard-reports directory could no longer be found.
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
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.