freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] Freetype x86


From: Semeriak, AleksandraX
Subject: Re: [ft] Freetype x86
Date: Fri, 21 Aug 2015 15:01:51 +0000

Thank you very much for your insights.

Aleksandra

-----Original Message-----
From: Behdad Esfahbod [mailto:address@hidden On Behalf Of Behdad Esfahbod
Sent: Tuesday, August 18, 2015 11:49 AM
To: Werner LEMBERG; Semeriak, AleksandraX
Cc: address@hidden; address@hidden
Subject: Re: [ft] Freetype x86

Hi there,

Sorry for the 2.5 month late reply!  I'm cleaning inbox now.

On 15-06-03 06:06 AM, Werner LEMBERG wrote:
> 
> Hello Aleksandra,
> hello J,
> 
> 
> finally I've reached your responses while wading through my pile of 
> e-mails :-)
> 
>> We have been looking into the use of Freetype and the compatibility 
>> with x86 devices, and as you noted in your first email, it should run 
>> on any platform, as it creates Libs/armeabi/libfreetype.so, 
>> libs/armeabi-v7a/libfreetype.so or libs/x86/libfreetype.so depending 
>> on the APP_ABI configuration of the software developer.  Therefore my 
>> question would be if you provide specific scripts to developers using 
>> Freetype to build their library or is this the main source that 
>> developers use:
>> http://en.wikibooks.org/wiki/OpenGL_Programming/Installation/Android_
>> NDK#FreeType
>> ?
> 
> FreeType doesn't provide such scripts.  I'm sorry to say that my 
> knowledge of Android device programming is zero, so I can't tell you 
> whether this OpenGL guide works in general.
> 
>> In that case, since the wiki-resource doesn't have any mention of the 
>> creation of x86 libs for the developers, would it be possible for you 
>> to add the instructions for developers to inform them about the 
>> possibility of setting their APP_ABI as APP_ABI:=all or 
>> APP_ABI:=armeabi-v7a x86 to create applications with x86 support?
> 
> Of course I'm willing to add information to both the FreeType 
> documentation and the build scripts that is necessary to make 
> compilation work on specific targets.  The very problem is that I'm 
> not the right person to write it.  I've CCed Behdad Esfahbod, a Google 
> developer who is actively working for Android.  Maybe he can give 
> advice or point to proper instructions.

I don't know what you are trying to do, but I've found that FreeType's 
configure system run against an Android NDK works fine.

behdad

> Note that the OpenGL recipe given in the above link is quite specific 
> and probably too limiting in general.  In particular, it essentially 
> disables FreeType's support of color Emojis, as far as I can see (due 
> to the `--with-png=no' configure switch).  There is also an 
> intertwined dependency on the HarfBuzz library if you need good 
> auto-hinting support of various scripts.  Today, a generic compilation 
> of FreeType enabling all features needs three steps, assuming that you 
> start from scratch.
> 
>   1. Compile FreeType.
>   2. Compile HarfBuzz (which needs FreeType).
>   3. Compile FreeType again – now the configure script finds the
>      HarfBuzz library and uses it unconditionally.
> 
>> It looks to me that freetype is a configure based build?
> 
> Yes.  This is what we actively use.
> 
>> I guess it's primary build required Jam
>> (http://www.freetype.org/jam/)
> 
> No, it was always just an alternative way to compile FreeType.  I must 
> admit that support for Jam in FreeType is very weak today, since none 
> of the core developers use it (any more).  The `support' is mainly my 
> try to stay in sync with the files in the repository, but it isn't 
> actively tested.
> 
>> Many years ago I just made a cmake code snippet to build freetype for 
>> my own purposes (added at end) that makes the list of sources that I 
>> can add to my external 3rd party library build as ${FREETYPE_SOURCE}; 
>> but that's certainly far from the standard.
> 
> What I've just said about Jam essentially holds for CMake support
> also: The `CMakeLists.txt' control file was contributed, and I try to 
> hold it in sync without using it.
> 
>> For Me, building for android was a simple as setting the toolchain 
>> for cmake and rebuilding everything as usual;
> 
> Good to know.  Have you used FreeType's `CMakeLists.txt'?  Right now, 
> it contains specific support for OS X and iOS.  Is there something to 
> add for Android's NDK?
> 
>> [...] but looking now Freetype is kind of a legacy product and there 
>> is a lot of scripts under <freetype>/builds but none there say 
>> 'android' or 'arm'...  and unless one assumed android would just be 
>> 'some unix thing that supports configure' it wouldn't really be clear 
>> how to build it.
> 
> Yes, I consider Android to be `some unix thing' – it's essentially a 
> Linux kernel, right?
> 
> By the way, looking into the `config' git repository (which holds the 
> newest versions of `config.guess' and `config.sub'),
> 
>   http://git.savannah.gnu.org/cgit/config.git   ,
> 
> I don't see any recent commits related to the Intel architecture, so I 
> conclude that the necessary Intel ABI targets for Android are already 
> there, and the standard
> 
>   configure; make; make install
> 
> incantation should work out of the box if you provide the necessary 
> cross compilation switches.  In other words, generic instructions how 
> to use the Android NDK for Intel should apply to the FreeType library 
> also.
> 
>> at least Freetype sources themselves are somewhat easily gathered 
>> since each 'module' has a single source that includes all related 
>> sources for that module instead of having to enumerate absolutely 
>> every source in the tree somehow.
> 
> You can also go one step further and use Vinnie Falco's FreeType 
> amalgamation, cf.
> 
>   https://github.com/vinniefalco/FreeTypeAmalgam
> 
> Those files are for an older FreeType version, but there's a link to 
> the necessary scripts to recreate it.  After doing this, you have a 
> single file that contains the whole FreeType library!  However, I've 
> never used it, so there might be additional issues due to linking with 
> other libraries like PNG or HarfBuzz.
> 
> 
>     Werner
> 

--
behdad
http://behdad.org/

reply via email to

[Prev in Thread] Current Thread [Next in Thread]