When mac integration or binary relocation are disabled, the compiled
object file contains no symbols because the guards in the source files
hide all code. On OS X there's a warning during compilation saying:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: .libs/libgeany.a(libgeany_la-prefix.o) has no symbols
If these features are disabled, don't compile the corresponding
sources to avoid the warnings.
Interestingly, waf compilation works without warnings - it appears
linking is done through g++ which doesn't produce these warnings.
On OS X signallist.i is always rebuilt because waf looks for it in the build
tree but generates it inside the source tree for some reason so it's
always missing in the build tree. Set the target explicitly to the
build tree to fix the problem.
Similarly, set the target for geany.html to the build tree. Thanks to this
waf also creates the 'doc' directory in the build tree which is otherwise
missing and the cwd command fails for this reason (e.g. when the
_build_ directory is removed).
These two task generators are the only ones that don't use the 'features'
parameter - the features in the other task generators should already
handle the source/build tree problems for us (see the Waf Book section
6.3.3. Nodes, tasks, and task generators).
When doing "./waf install" and some source files are modified
so they need to be rebuilt, the build and install phase can be
interleaved so one thread is still performing build while other
thread is already performing install tasks.
This appears to be a problem (at least on OS X) when some of
the Geany plugins are still being built and libgeany is already
being installed in parallel.
Create a separate group for the install phase to eliminate the
problem.
This is useful for plugins to be able to subclass the ScintillaObject
and use its full GObject features. The Overview plugin is one known
plugin that needs this.
Also update scintilla_changes.patch by running update-scintilla.sh
script with patch application commented-out and generating a reverse
diff using `git -R`, and manually remove `a/` and `b/` prefixes from
the resulting diff so it can be used with update-scintilla.sh script.
geanyfunctions.h used to bring all function declarations, and some
plugins depend on this side effect instead of properly including
geanyplugin.h directly. So, reintroduce the behavior for
compatibility with those plugins.
- libgeany install dir was wrong on win32
- comdlg32 is required
- more headers need to be installed
- -fPIC is required on some platforms
- LINKFLAGS_cprogram now have to be applied to libgeany.dll
Instead of processing a template C source in the build system, generate
a list to be included by the preprocessor.
This simplifies the build system code as it now only generates the list
and doesn't take care of processing the template. It incidentally
fixes build on systems with 4.2BSD sed (at least OSX and FreeBSD) as it
removes some offending sed code.
In Waf, we need to add the new flags to CFLAGS *and* CXXFLAGS otherwise
the Scintilla build would break.
To keep it more reabable, we first populate a temporary list
geany_symbol_flags which is then added to CFLAGS and CXXFLAGS.
Concerning the quote FIXME: no further qoting is necessary here.
This makes it easier to define it consistently to what the compiler
and platform supports, and avoids having to include a special header
everywhere, which is some kind of a problem for separate libraries
like TagManager and especially Scintilla.
As we only use these macros from the source and not the headers, it
is fine for it to be defined to a configure-time check from the build
system.
Warning: Although Waf and Windows makefiles are updated they are not
tested an will probably required tuning.
Use the same variable style for simple interpolations ("$foo") than for
complex ones ("${foo}") instead of using the string style itself. This
gives a visual feedback for simple interpolations.
The (almost) black color of the inside of the bottleneck is a bit too high
contrast and doesn't fit the rest of the icon (the only black part of it).
Use the "lamp yellow" as the base and lower the L in HSL representation of
the color so it just looks as darker lamp material.
After making the bottleneck wider (by shifting the curve to the left), the
curve became flatter which looks strange. Make the curve a bit more round
in the middle.