Early resolution of iphone*_ARCH_LINKS calls pkg-config even when compiling for
non-ios platforms, slowing down compilation unnecessarily and possibly raise
errors about nonexisting libraries that are not used.
This change modifies the iphone*_ARCH_LINKS to resolve lazily upon use so
pkg-config is not called unless the variables are used.
Early resolution of iphone*_ARCH_LINKS calls pkg-config even when compiling for
non-ios platforms, slowing down compilation unnecessarily and possibly raise
errors about nonexisting libraries that are not used.
This change modifies the iphone*_ARCH_LINKS to resolve lazily upon use so
pkg-config is not called unless the variables are used.
Known Issues
------------
- No printing support.
- No typing support using the OS virtual keyboard. iOS needs to be signalled
to bring up the virtual keyboard when the text tool is active. We also may
need to do some finagling to make IM work with the virtual keyboard.
- OS language detection doesn't work yet.
- Quitting doesn't close the app. It just displays a black screen until it is
force-closed.
- Need to include cross-compilation instructions.
Possible Issues
---------------
- No text display. This is likely an issue with how pango and related
libraries were cross-compiled rather than an issue with Tux Paint code. From
the error output it appears to be a font rendering issue.
- SVG integration couldn't be tested because RSVG library has not yet be
cross-compiled successfully.
- Only tested under the iOS Simulator (and not on an actual iOS device yet.)
Known Issues
------------
- No printing support.
- No typing support using the OS virtual keyboard. iOS needs to be signalled
to bring up the virtual keyboard when the text tool is active. We also may
need to do some finagling to make IM work with the virtual keyboard.
- OS language detection doesn't work yet.
- Quitting doesn't close the app. It just displays a black screen until it is
force-closed.
- Need to include cross-compilation instructions.
Possible Issues
---------------
- No text display. This is likely an issue with how pango and related
libraries were cross-compiled rather than an issue with Tux Paint code. From
the error output it appears to be a font rendering issue.
- SVG integration couldn't be tested because RSVG library has not yet be
cross-compiled successfully.
- Only tested under the iOS Simulator (and not on an actual iOS device yet.)
- macos_ instead of macos. Appears to hae been missed when merging a
previously made change in the mainline.
- Additional linker flags required for building with SDL2. Unclear why
pkg-config provides these flags when building with SDL1 but not with SDL2 --
it's inconsistent but strictly not a bug, may need to discuss with the
MacPorts team.
The 'Resources' directory is used in macOS development to test the binary
without building TuxPaint.app bundle, which is helpful for rapid application
development since creating the app bundle takes a long time.
It's been reported that the symlink in the Resources directory was causing the
'release' target to copy the files in the 'data' directory twice into the
source release tarball.
This change removes the static Resources directory but creates it dynamically
when the 'tuxpaint' target is built and removes it via 'clean' target so the
'release' target does not copy the files in the 'data' directory into the
source release tarball twice.
The `echo` command built into the default macOS shell doesn't understand -n.
This commit changes it to use "printf" instead which should be fairly portable
across other OS's. Feel free to change it back if it breaks anything.
When building Tux Paint, ImageMagick's `convert` might fail to generate
thumbnail PNGs for some Starter SVG images (e.g., "manatee.svg"),
with a "too many bezier coordinates" error.
This did not happen before, and does not happen with newer versions
of ImageMagick; there was a regression fixed in 2018:
https://github.com/ImageMagick/ImageMagick/issues/1069
However, it's occurring in Ubuntu 20.04 'focal' (I've got
version "6.9.10-23 Q16 x86_64 20190101"). Therefore, as a quick-fix,
simply ignoring errors from `convert`, and removing the (bogus)
PNG thumbmail image, and allowing the `make` process to proceed.
Tux Paint will simply open the SVG and generate a thumbnail to
display on the screen when the "New" dialog is brought up.
Beginning addition of an option to export animated GIFs
from the Open -> Slideshow dialog, after choosing the images.
Non-operable at this time, but a button has been added (and will
provide a hint to select 2 or more images, when clicked).
Replaced KDE (older, KDE4, in fact) specific icon and
launcher (.desktop file) installation & uninstallaton
invocations in Makefile with those that use Freedesktop.org
`xdg-...` tools.
The thumbnails for starters & templates are NOT being re-generated
when the source images are modified -- only when the thumbnail is
missing. Needs an update to the target's prerequisites
(but I'm very rusty with this level of Makefile magic).
Also, update some Starter source images so they work better with
flood fill (Bald Eagle, World map, Gecko).
Also generating and installing thumbnails of Template images,
thus getting "New" dialog to open extremely quickly.
(Pretty much "instantaneously" on my 8 year old laptop with
Intel i3 @ ~2GHz and Intel 320-series SSD (214 MB/s).)
Providing better command-line args to ImageMagick `convert` to
produce nice-looking thumbnail PNGs of Starter images.
(N.B. - I'm using "ImageMagick" Version: 8:6.9.7.4+dfsg-16ubuntu6.7)
I cannot recall[*] why we disabled the steps to generate thumbnails of
starters (".thumbs/STARTERNAME-t.png") and install them in the system
directory (e.g., /usr/local/share/tuxpaint/starters/.thumbs/),
but every time one goes to create a new image ("New"), it took a very
long time to show.
[*] If anyone remembers ~a decade ago, and has a good reason, let me know!
Also, remove "Makefile" as a prerequisite for some targets; if anything
major changes in there, it's expected one will run "make clean" or
remove the binary/etc. target and rebuild. (Rebuilding "tuxpaint.o"
every time I edited something unrelated in Makefile was really annoying :) )
Replace the somewhat-recently-added "nothing" item in the tool bar
with the "Fill" tool, which has been converted back from a Magic tool
to a regular tool.
Also, change bash "==" to sh "=" in "if [ ... ]" tests in Makefile.
Also, link to math library (via "-lm") to make sure "max()" is available to
magic tools.
Also, add missing mention of "--newcolorslast" and "--newcolorsfirst" to manpage.