to post messages and comments.

Собираем библитеки под IOS на примере Freetype
habrahabr.ru


i386


$ ./configure CFLAGS="-arch i386"
$ make

Этими командами мы настраиваем сборку для i386 архитектуры и собираем библиотеку. Полученная библиотека разместится в каталоге objs/.libs/libfreetype.a
Переименовываем полученную библиотеку и копируем в корень. Она понадобится нам на последнем шаге сборки.

$ cp objs/.libs/libfreetype.a libfreetype-i386.a

x86_64


Аналогичным способом собираем под x86_64, добавляем команду make clean, чтобы избавиться от результатов предыдущей сборки

$ ./configure CFLAGS="-arch x86_64";make clean;make
$ cp objs/.libs/libfreetype.a libfreetype-x86_64.a


armv7

armv7 используется в iPhone 3GS, iPhone 4, iPhone 4S. Здесь нам придется использовать кросскомпиляцию и аргументов для сборки будет больше.

$ ./configure --prefix=/usr/local/iphone --host=arm-apple-darwin --enable-static=yes --enable-shared=no \
CPPFLAGS="-arch armv7 -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include/libxml2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" \
CC=`xcrun -sdk iphoneos -find clang` \
CFLAGS="-arch armv7 -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" \
LD=`xcrun -sdk iphoneos -find ld` \
LDFLAGS="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=4.3" \
AR=`xcrun -sdk iphoneos -find ar`
$ make clean;make
$ cp objs/.libs/libfreetype.a libfreetype-armv7.a


armv7s

armv7s используется в iPhone 5, iPhone 5S. Конфигурация отличается минимально.

$ ./configure --prefix=/usr/local/iphone --host=arm-apple-darwin --enable-static=yes --enable-shared=no \
CPPFLAGS="-arch armv7s -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include/libxml2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" \
CC=`xcrun -sdk iphoneos -find clang` \
CFLAGS="-arch armv7s -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk" \
LD=`xcrun -sdk iphoneos -find ld` \
LDFLAGS="-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=4.3" \
AR=`xcrun -sdk iphoneos -find ar`
$ make clean;make
$ cp objs/.libs/libfreetype.a libfreetype-armv7s.a

Ну оочень весело. Меня просто дико радует Freetype. У нас есть поддержка кернинга. Точно? Вот те крест! А чо не работает? А у вас в шрифт не тот!

Еще поковырялся с Freetype. Оставил включенным только сильный хиттинг и отключил к фигам межпиксельное сглаживание.
Теперь результат мне нравится.

От ведь хитрая херня. QT видимо как-то частично изменяет настройки Freetype перед выводом.
Поэтому надо проверять на GTK+. Опять же добавление в систему Liberation Fonts и включение bindist
в freetype дают сглаживание не хуже чем в Mac OS X.