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"] [submodule "src/platform/linux/rust-xlib"]
path = src/platform/linux/rust-xlib path = src/platform/linux/rust-xlib
url = https://github.com/mozilla-servo/rust-xlib.git 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"] [submodule "src/support/skia/skia"]
path = src/support/skia/skia path = src/support/skia/skia
url = https://github.com/mozilla-servo/skia.git url = https://github.com/mozilla-servo/skia.git

View file

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

View file

@ -1,7 +1,7 @@
config = { config = {
'mock_target': 'mozilla-centos6-x86_64', 'mock_target': 'mozilla-centos6-x86_64',
'mock_packages': ['freetype-devel', 'fontconfig-devel', 'glib2-devel', 'autoconf213', 'git', 'make', 'libX11-devel', 'mesa-libGL-devel', 'freeglut-devel', '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')], 'mock_files': [('/home/servobld/.ssh', '/home/mock_mozilla/.ssh')],
'concurrency': 6, 'concurrency': 6,
'add_actions': ['setup-mock'], 'add_actions': ['setup-mock'],

15
configure vendored
View file

@ -524,6 +524,7 @@ if [ $CFG_OSTYPE = "unknown-linux-gnu" ]
then then
CFG_SUBMODULES="\ CFG_SUBMODULES="\
platform/linux/rust-xlib \ platform/linux/rust-xlib \
platform/linux/fontconfig \
support/glfw/glfw \ support/glfw/glfw \
support/glfw/glfw-rs \ support/glfw/glfw-rs \
platform/linux/rust-fontconfig \ platform/linux/rust-fontconfig \
@ -621,7 +622,7 @@ then
cd ${CFG_BUILD_DIR} cd ${CFG_BUILD_DIR}
fi 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" ] if [ $CFG_OSTYPE = "linux-androideabi" ]
then then
export FREETYPE_CFLAGS="-I${CFG_SRC_DIR}src/platform/android/libfreetype2/include -I${CFG_BUILD_DIR}src/platform/android/libfreetype2/include" 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} --without-zlib"
CONFIGURE_ARGS="${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}" 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) platform/android/fontconfig)
CONFIGURE_SCRIPT="${CFG_SRC_DIR}src/${i}/autogen.sh" CONFIGURE_SCRIPT="${CFG_SRC_DIR}src/${i}/autogen.sh"
CONFIGURE_ARGS="${CONFIGURE_ARGS} --host=arm-linux-androideabi" CONFIGURE_ARGS="${CONFIGURE_ARGS} --host=arm-linux-androideabi"

View file

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