简体中文 English Български

构建来自 Git 的 Qt 5

简介

本文将试图给出从Git中获取模块化的QT5并构建它的一些提示。请随时更新本篇文章以反映开发过程中的变化。这些说明是为Linux准备的,用于其他平台是你可能需要一些调整。

获取源码

首先克隆 git 中 Qt5 的顶层仓库:

  1. git clone git://gitorious.org/qt/qt5.git qt5
  2. cd qt5

按照 README 文件,我们初始化仓库。下面的命令克隆Qt5的各个子模块(sub-modules):

  1. ./init-repository
  2. ./qtrepotools/bin/qt5_tool -p

在继续之前我们要确认所有子模块与最新的远端(remotes)配置同步:

  1. git submodule foreach 'git fetch --all'
  2. git submodule foreach 'git checkout -b staging-master staging/master || echo Ignoring module $name'
  3.  
  4. # 对 qtbase 和 qtwebkit 的特殊处理
  5. cd qtbase
  6. git checkout master && git reset --hard origin/master
  7. cd ../qtwebkit
  8. git checkout -b qt-modularization-base origin/qt-modularization-base
  9. cd ../

配置与构建

现在设置系统PATH使得我们使用Qt5的工具而不是系统提供的老的Qt4的工具:

  1. export PATH=$PWD/qtbase/bin

现在可以为构建进行配置。现阶段最好禁用 tests, examples 和 demos:

  1. ./configure -nokia-developer -nomake examples -nomake demos -nomake tests -no-gtkstyle

注意我们禁用了 gtk 样式。这是因为在一些系统(至少是SUSE和Gentoo)中 `pkg-config —cflags gtk+-2.0` 返回的路径中包含了系统Qt4的头文件目录。

现在像通常一样使用make (选择合适的 -j 选项来利用CPU多核性能):

  1. make -j3

清理

真正 清理源码树,使用:

  1. git submodule foreach 'git clean -dffx'

因为在顶层仓库中执行的 make confclean 不再工作。

争议

Categories: