# qiBuild documentation

# v1.14

## Command line

- Lots of bug fixes for Xcode
- Do not force `CMAKE_BUILD_TYPE` to be all upper-case. Now `CMAKE_BUILD_TYPE` equals (“Debug” or “Release”). Note that the build folder name did not change (It’s still build-<config>-release when using qibuild configure –release)
- Do not fail if default config is non existent
- `qitolchain`: now can set cmake generator from the feed.
- `qitolchain`: preserve permissions when using `.zip` packages on Linux and Mac
- Mechanism to copy `dlls` inside the build directory and create the symlinks at the end of the compilation is now done by the qibuild executable, and NOT from the `CMakeList`.
- `qibuild help`: sort available actions by name
- `qibuild test`: small bug fix for `--test-name`
- `qibuild config --wizard`: fix unsetting build dir or sdk dir
- `qibuild config --wizard:`: fix generator discovery for cmake 2.8.6 under windows
- `qibuild configure`: nicer error message when cmake segfaults
- `qibuild configure`: learned `--debug-trycompile` option
- `qibuild package` : learned `--include-deps` option
- `qidoc`: fix for archlinux
- `qibuild configure`: learned use `-c system` where there is a default config in their current worktree but user still wants to use no toolchain.
- Added `qitoolchain import-package` to import binary packages into a cross-toolchain.

## CMake

- Added `qi_sanitize_compile_flags`
- `qi_use_lib` Now sorts and remove duplicates of include dirs
- `qi_stage_lib`: learned `CUSTOM_CODE` keyword
- `qi_stage_bin` is now implemented
- `qi_stage_header_only_lib` using `DEPENDS` did not work
- `qi_stage_lib`: changed the way `STAGED_NAME` works.
- `qi_use_lib`: optimized dependency handling
- `swig/python`: keep number of include dirs reasonable
- `target` get rid of ‘STAGE’ args for `qi_create_*` functions
- `install`: support for macosx bundles
- qibuild cmake modules:
  - added qtopengl, qtmultimedia, qt_phonon, eigen3, iphlpapi
  - now using upstream `FindQt4.cmake` to find qt when qmake is in PATH.
  - now using using `FindBoost.cmake`
  - zeromq: add dependency on RT for linux
  - libevent: add dependency on RT for linux

## Python

- add `qibuild.sh.change_cwd`
- add `qibuild.sh.is_executable_binary`
- `qisrc.git` : rewrite
- `qibuild.cmdparse.run_action` : allow adding `--quiet-commands`
- add `qitoolchain.binary_package` : provide functions to open binary packages
- add `qitoolchain.binary_package.core` : abstract class for binary package provided by standard Linux distribution
- add `qitoolchain.binary_package.gentoo` : binary package class for Gentoo package (does not depends on portage)
- add `qitoolchain.binary_package.gentoo_portage` : binary package class for Gentoo package taking benefit from portage
- `qibuild.archive.extract` , :py:func: qibuild.archive.extract_zip , `qibuild.archive.extract_tar` : add `quiet` keyword argument allowing non-verbose extraction
- `qibuild.archive.extract_tar` : fix archive name guessing
- `qibuild.interact` : add `get_editor` function

## Misc

- lots of documentation updates

Changelog CMake index Python index Index