qiBuild: the build framework¶
Basic concepts¶
qiBuild is a generic framework that helps for managing several projects and their dependencies.
It comes with a set of tools, which are listed below.
Every tool comes with a matching script (qibuild, qisrc, etc.),
and must be used from a worktree.
Every project must be inside the worktree, and should have a qiproject.xml at
its root. This is how the scripts can find the projects paths when they look
for dependencies, for instance.
Read more about this in this section: Worktree and projects.
So, in order to be able to use qiBuild scripts, you should first create
a worktree with qibuild init, and then register projects paths with
qisrc add.
For instance:
cd ~/work
qibuild init
mkdir my_first_proj
# edit my_first_proj/qiproject.xml
qisrc add my_first_proj
qibuild: C++ compilation made easy¶
qibuild aims to make compilation of your sources easy. It manages dependencies between projects and supports cross-compilation.
By default qibuild uses libraries provided by your system, but you can also use qitoolchain to manage sets of pre-compiled packages (called toolchains) if you want. Cross-compilation is then just a matter of using a specific toolchain.
qibuild is truly cross-platform: it is tested on Linux, Mac and Windows. Being based on the well-known CMake build system, it allows you to use your existing tools such as gcc, Make, or Visual Studio.
The qibuild framework tries hard to stand out of your way: it remains close to standards, and will play nice with other build systems.
qibuild is composed of two parts:
- the qibuild CMake framework, that simplifies authoring CMakeLists.txt.
- the qibuild/qitoolchain command line tools, that helps build projects while taking dependencies into account and generate re-distributable binary packages.
Going further with qibuild¶
Read more about qibuild in the Building C++ projects with qibuild, or follow the qibuild Programming guide.
qisrc: Managing git projects¶
The motivation for qisrc is to make it possible to work
with several git repositories at the same time.
- Notes:
- Yes, we are aware that git submodules exists, but we wanted something more flexible and easier to use.
qisrchas more or less the same features thanrepo, (includinggerritsupport for code review), but, contrary torepo, it preserves a clean branch for you to work in and you can still usegitnormally.
Tutorial¶
qidoc: Building documentation¶
qidoc is a small tool that helps you write documentation in
sphinx or in doxygen, spread across several projects,
while making sure you can generate re-locatable HTML documentation.
Tutorial¶
qilinguist: Translating projects¶
qilinguist provides tools to help internationalization
of any kind of project, using gettext or Qt Linguist
as backend.
Tutorial¶
qipy: qibuild and Python¶
qipy makes it possible to use Python extensions
written in C/C++ with qibuild with pure Python libraries.
Tutorial¶
qipkg: Generate binary packages¶
qipkg lets you make packages the same way Choregraphe does,
but from the command line, and also lets you embed code written in
C++ or Python inside the package.
Tutorial¶
See qipkg tutorial