Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fontforge/libspiro

Spiro is the creation of Raph Levien. It simplifies the drawing of beautiful curves. (Migrated here from libspiro.sourceforge.net on 2013-04-20)
https://github.com/fontforge/libspiro

Last synced: about 7 hours ago
JSON representation

Spiro is the creation of Raph Levien. It simplifies the drawing of beautiful curves. (Migrated here from libspiro.sourceforge.net on 2013-04-20)

Awesome Lists containing this project

README

        

LibSpiro is a shared library designed to give programs the ability to create
smooth continuous curves based on a given set of codes and X,Y constraints.

The main user(s) for Libspiro are Font editing programs such as FontForge,
and graphical drawing programs such as GEGL, IPE (as well as an early fork
used in InkScape). This library has strong potential in graphic and vector
programs where users want beautiful curves translated into beziers curves.

Developers interested in sharing and making use of LibSpiro will likely want
to read (these README files too to understand how to use LibSpiro better):
README-RaphLevien (ppedit 20070504)
README-GeorgeWilliams (libspiro 20071029)

There is a large amount of information and math on RaphLevien's website for
developers interested in how LibSpiro works.

Developers interested in example programs, can take a look at spiro.c found
in FontForge, InkScape, or linking examples like GEGL, IPE or call-test.c
(call-test.c is included with development files with this library).

Maintainers
===========

Developers interested in maintaining libspiro will need to fetch the latest
config.guess and config.sub to ensure that libspiro will run on as many
configurations as possible. Then update configure.ac to the next revision,
and run 'make check', 'make dist', and 'make distcheck' to ensure all works.
See git patch 'LibSpiro 20200505 - Version 1.1.0' for example patching.
Configurable releases is based on first removing all non relevant files to
reduce final tar file before running 'make dist', such as all hidden files
and directories. The resulting file created by 'make dist' is then usually
with -dist- in the filename so that distros that follow the release page
are able to fetch the latest libspiro using their scripts. Example:
libspiro-20200505.tar.gz is renamed as libspiro-dist-20200505.tar.gz

Installation
============

Installing from Git master requires 2 preparatory steps:

First, you need to create the `configure' script if you do not have it yet.
This will require autoreconf and automake to build `configure'.
> autoreconf -i
> automake --foreign -Wall

Second, you then use the usual steps to compile it.
Various operating systems and setups will need `configure' options set.
The INSTALLATION file has detailed info for `configure' options.
Example install steps for Linux, FreeBSD, Win32/64 are shown below:

Installing on Linux
> ./configure
> make
> make check
> sudo make install

Installing on FreeBSD10 (using clang3.3 or 3.6)
> ./configure --prefix=$(pwd)/BUILD
> make clean
> make
> make install

Installing on Windows 32-bit
> ./configure --host=i686-w64-mingw32 --prefix=$(pwd)/build-w32
> make clean
> make
> make install

Installing on Windows 64-bit
> ./configure --host=x86_64-w64-mingw32 --prefix=$(pwd)/build-w64
> make clean
> make
> make install

NOTE: Some Distros and Operating Systems may require you to run 'ldconfig'
to recognize LibSpiro if you are not rebooting your computer first before
installing another program that depends on LibSpiro. To do this, you may
need to run 'ldconfig' in 'su -' mode after you have done 'make install':

$ su -
# ldconfig
# exit
$