# qiBuild documentation

# v1.12.1

## Command line

- qitoolchain: add support for password-protected HTTP and FTP feed URLS.
- Added `qitoolchain clean-cache` to clean toolchains cache
- Added `qidoc` executable (work in progress)
- Added `qibuild find PACKAGE` to display CMake variables relate to the package (work in progress)
- Added `qibuild config --wizard` to configure both global and local settings
- `qibuild package`: always build in debug and in release on windows
- `qisrc pull`: fix return code on error (#6343)
- `qibuild config --edit` : do not mess with stdin
- `qibuild init --interactive` now calls `qibuild config --wizard`
- `qibuild install`: force calling of ‘make preinstall’
- `qitoolchain update`: update every toolchain by default
- `qibuild test`: use a custom CTest implementation instead of using the `ctest` executable. (Makes continuous integration much easier)
- `qibuild package`: clean command-line API
- `qibuild convert`: add `--no-cmake` argument
- `qibuild convert`: do not add `include(qibuild.cmake)` if it is already here
- `qisrc pull` now call `qisrc fetch` first (#204)
- `qitoolchain create`: prevent user to create bad toolchain names

## CMake

- Better way of finding qibuild cmake framework, using `find_package(qibuild)` instead of `include(qibuild.cmake)`
- `qi_create_gtest`: prefer using a qibuild port of gtest
- `qi_create_gtest`: disable the target when gtest is not found
- `qi_create_gtest`: always add GTEST dependency
- `qi_stage_lib`, `qi_use_lib` better handling when first arg is not a target
- `qi_create_lib` did not honor NO_INSTALL argument
- `qi_install_*` functions no longer recurse through directories by default, use `qi_install_*(... RECURSE)`
- Added `qi_create_test` function, simpler to use than `qi_add_test`
- Added new qibuild cmake modules:
  - `lttng` and its dependencies
  - `opencv2`
  - `qtmobility,` `qtxmlpatterns,` `qt_qtscript,` `qtsvg`
  - `qxt-core,` `qtxt-network`
  - `pythonqt`

## Configuration files

- Use XML configuration everywhere, conversion is done by qibuild on the fly for `.qi/qibuild.cfg` and `<project>/qibuild.manifest`
- Path in the configuration files are now preprend to the OS environment variables instead of being appended.
- Added a small tool to convert to new XML config (`tools/convert-config`)

## Python

- Remove deprecated warning message when using python 2.6.1 on Mac
- `qibuild.archive`: by-pass python2.6 bugs
- `qibuild.archive.zip_win`: actually compress the archive
- `qibuild.sh.to_native_path`: follow symlinks
- `qibuild.sh.rm`: use `rmtree` from `gclient`
- `qibuild.worktree`: do not go through nested qi `worktrees`
- `qibuild.command`: use `NotInPath` in `qibuild.call`
- `qibuild.toc.get_sdk_dirs`: fix generation of `dependencies.cmake` in some corner cases
- `qibuild.Project`: add a nice `__repr__` method
- qibuild does not crashes when an exception is raised which contains ‘%’ (#6205)

## Misc:

- Cleanup installation of qibuild itself with cmake
- tests: rewrite `python/run_test.py` using `nose`
- `Makefile`: allow usage of PYTHON environment variable
- `python/bin/qibuild` script is usable as-is
- Lots of documentation updates

Changelog CMake index Python index Index