On Fri, Jan 20, 2012 at 12:39 PM, Vinnie <[email protected]> wrote:

> > Just wanted to chime in to say that I've been using ft on an embedded
>
> > system for a year or more now. Went the library route so I build a
> > libfreetype.a and had no trouble with this. Not really sure what the
> desire
> > to have an amalgamation is.
>
> The goal of an amalgamation is to make it possible for a developer to
> distribute full sources for an application, while requiring no external
> dependencies or added build steps.
>
> DSP Filters Demo is an example of such an application:
> http://code.google.com/p/dspfilterscpp/
>
> You can pick up the sources and build the thing without having to download
> or checkout anything else, using these lines:
>
> unzip DSPFiltersComplete_0_9_72.zip
> cd shared
> g++ -o dspfiltersdemo $(find DSPFiltersDemo DSPFilters -name \*.cpp)
> JuceAmalgam/JuceLibraryCode*.
> cpp -I JuceAmalgam -I DSPFiltersDemo/source/ -I DSPFilters/include/
> $(pkg-config --cflags --libs freetype2 alsa) -ldl -lpthread -lrt -lX11 -lGL
> -lGLU -lXinerama -lXext
>
> The included project files for XCode and Visual Studio allow you to build
> the
> demo for MacOS X, iOS, Windows, and Android devices, without any
> configuration or pre-build steps.
>
> I want to add support for my Juce hinted font output. These are my sources
> for producing hinted output:
>
> http://rawmaterialsoftware.com/viewtopic.php?f=6&t=6393
>
> If I add this code to my DSP Filters Demo, it will break the feature that
> the demo requires no external dependencies. In order to compile and link
> the demo with this class, it will be necessary to check out the FreeType
> sources, build it for the platform, then add some platform-specific magic
> words to the project, Makefile, or whatever was used to compile the demo.
>
> On the other hand, with an amalgamation, I would be able to just add
> something like FreeTypeAmalgamation.h, FreeTypeAmalgamation.cpp to my
> sources, include the .h file, add the .cpp to the project (the build
> snippet
> I gave above would automatically work with this addition) and compile
> and link. Of course I would also need to embed a hinted font in my app.
>
> The resulting demo would always look and function predictably, even if
> the FreeType shared library on the target system was a different
> version (because Juce performs all of its own text and graphics drawing
> instead of using the system).
>
>
Could ship the libraries along with the rest of the source or require that
they be available on the system. This is easy on Linux but a pain on
Windows where there isn't really a package management system.

Having an amalgamated version doesn't impact me any since most of my stuff
requires several external libraries. I just ship with the precompiled
libraries.




> > Wouldn't be opposed to cleaning things up to make it possible to build an
> > amalgamation but from past use of sqlite it was a real pain trying to
> merge
> > c++ code into sqlite due to the amalgamated approach.
>
> What exactly was the issue with sqlite?


I added encryption to it which required stubbing in functions for memory or
block allocation. I don't recall the specifics but it was related to the
c++ compiler and including sqlite headers in c++ code I think. I got it
working but it wasn't trivial to integrate the build setup.

Chris
_______________________________________________
Freetype-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to