auto merge of #1780 : kmcallister/servo/linux-fontconfig, r=kmcallister,metajack

After applying this patch, on Linux you will need to

    ../configure
    make clean-rust-azure clean-fontconfig clean-rust-fontconfig

Fixes #1752.

Expect Fontconfig warnings and possibly worse breakage, but for me this makes it possible to use parallel layout at all.
This commit is contained in:
bors-servo 2014-02-28 19:40:38 -05:00
commit 817c57b5b4
8 changed files with 33 additions and 6 deletions

3
.gitmodules vendored
View file

@ -61,6 +61,9 @@
[submodule "src/platform/linux/rust-xlib"]
path = src/platform/linux/rust-xlib
url = https://github.com/mozilla-servo/rust-xlib.git
[submodule "src/platform/linux/fontconfig"]
path = src/platform/linux/fontconfig
url = https://github.com/mozilla-servo/fontconfig.git
[submodule "src/support/skia/skia"]
path = src/support/skia/skia
url = https://github.com/mozilla-servo/skia.git

View file

@ -25,8 +25,8 @@ On Debian-based Linuxes:
``` sh
sudo apt-get install autoconf2.13 curl freeglut3-dev libtool \
libfreetype6-dev libfontconfig1-dev libgl1-mesa-dri libglib2.0-dev \
xorg-dev msttcorefonts
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
msttcorefonts gperf
```
On Debian-based Linuxes (cross-compilation for Android):

View file

@ -1,7 +1,7 @@
config = {
'mock_target': 'mozilla-centos6-x86_64',
'mock_packages': ['freetype-devel', 'fontconfig-devel', 'glib2-devel', 'autoconf213', 'git', 'make', 'libX11-devel', 'mesa-libGL-devel', 'freeglut-devel',
'xorg-x11-server-devel', 'libXrandr-devel', 'libXi-devel', 'libpng-devel'],
'xorg-x11-server-devel', 'libXrandr-devel', 'libXi-devel', 'libpng-devel', 'expat-devel', 'gperf'],
'mock_files': [('/home/servobld/.ssh', '/home/mock_mozilla/.ssh')],
'concurrency': 6,
'add_actions': ['setup-mock'],

15
configure vendored
View file

@ -524,6 +524,7 @@ if [ $CFG_OSTYPE = "unknown-linux-gnu" ]
then
CFG_SUBMODULES="\
platform/linux/rust-xlib \
platform/linux/fontconfig \
support/glfw/glfw \
support/glfw/glfw-rs \
platform/linux/rust-fontconfig \
@ -621,7 +622,7 @@ then
cd ${CFG_BUILD_DIR}
fi
#fontconfig expects to use an installed freetype, but we want to override that behavior to use our version
# fontconfig expects to use an installed freetype, but we want to use our version on Android
if [ $CFG_OSTYPE = "linux-androideabi" ]
then
export FREETYPE_CFLAGS="-I${CFG_SRC_DIR}src/platform/android/libfreetype2/include -I${CFG_BUILD_DIR}src/platform/android/libfreetype2/include"
@ -681,6 +682,18 @@ do
CONFIGURE_ARGS="${CONFIGURE_ARGS} --without-zlib"
CONFIGURE_ARGS="${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}"
;;
platform/linux/fontconfig)
CONFIGURE_SCRIPT="${CFG_SRC_DIR}src/${i}/autogen.sh"
CONFIGURE_ARGS="${CONFIGURE_ARGS} --sysconfdir=/etc"
CONFIGURE_ARGS="${CONFIGURE_ARGS} --localstatedir=/var"
CONFIGURE_ARGS="${CONFIGURE_ARGS} --disable-shared" # work around Rust #12557
if [ -f /etc/redhat-release ]; then
# Some RedHat-based distros (including our CentOS 6 build machines) are missing
# pkg-config files for expat: https://bugzilla.redhat.com/show_bug.cgi?id=833338
CONFIGURE_ARGS="${CONFIGURE_ARGS} --with-expat=/usr"
fi
CONFIGURE_ARGS="${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}"
;;
platform/android/fontconfig)
CONFIGURE_SCRIPT="${CFG_SRC_DIR}src/${i}/autogen.sh"
CONFIGURE_ARGS="${CONFIGURE_ARGS} --host=arm-linux-androideabi"

View file

@ -156,6 +156,7 @@ ifeq ($(CFG_OSTYPE),unknown-linux-gnu)
DEPS_rust-azure += \
rust-freetype \
rust-fontconfig \
fontconfig \
rust-xlib \
rust \
$(NULL)
@ -167,6 +168,15 @@ DEPS_rust-layers += \
rust-xlib \
rust \
$(NULL)
DEPS_rust-fontconfig += \
fontconfig \
rust \
$(NULL)
NATIVE_BUILD += \
fontconfig \
$(NULL)
endif
ifeq ($(CFG_OSTYPE),linux-androideabi)

@ -0,0 +1 @@
Subproject commit b2cfb1f4b3561e01a58359cd18929457a0486db7

@ -1 +1 @@
Subproject commit f3d71aa708eb44736c4fe526fbf1bb55010c623b
Subproject commit 34f83d9c614d5e1cc10bff4628450db3a4807902

@ -1 +1 @@
Subproject commit e632b98a30eb84c333852e0bc0a68b1b6a7faf02
Subproject commit cfe2d2a6894e0ff2f7c8b10b11de275955cfdfc1