Thank you very much for your insights. Aleksandra
-----Original Message----- From: Behdad Esfahbod [mailto:[email protected]] On Behalf Of Behdad Esfahbod Sent: Tuesday, August 18, 2015 11:49 AM To: Werner LEMBERG; Semeriak, AleksandraX Cc: [email protected]; [email protected] 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/ _______________________________________________ Freetype mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/freetype
