# qiBuild documentation

# v3.11

## qibuild

- Fix using `qibuild make-host-tools` when no project is specified

- Implement `qibuild make-host-tools --all`

- `qibuild configure`: fix setting flags containing `=`, such as `qibuild configure -DCMAKE_CXX_FLAGS="-std=gnu++11"`

- `qibuild configure`: set `QI_VIRTUALENV_PATH` to the virtualenv path that has been created by `qipy bootstrap`. This is useful if you want to call Python code from C++.

- Fix using `qibuild clean` in some corner cases

- Restore build directory paths when using a build prefix.

  - Before 3.0: `<prefix>/<build-dir>/project>`
  - From 3.8 to 3.10: `<prefix>/<project>/<build-dir>`
  - In 3.11: `<prefix>/<build-dir>/project>`

- Support setting arbitrary environment variables in `~/.config/qi/qibuild.xml`. Here’s an example of a build configuration using `clang`

      <qibuild>
        <config name="clang">
          <env>
            <var name="CC">clang</var>
            <var name="CXX">clang++</var>
          </env>
        </config>
      </qibuild>

- `qibuild package`: add `--standalone` option. This generates a package containing the runtime components and all the runtime dependencies. Useful to redistribute compiled binaries.

- `qibuild package`: add `--breakpad` option. This generates a symbols archive to be used with `breakpad`.

- Using `qibuild set-host-config` twice with different configuration names lead to undefined behavior.

- Fix using `qibuild run` in some corner cases.

- Always generate a `share/qi/path.conf` during installation. (This is required by `libqi`)

- When reading `~/.config/qi/qibuild.xml`, prepend contents of `<env path="..."/>` after launching bat file.

- Using `qibuild set-host-config` twice with different configuration names lead to undefined behavior.

- `qibuild config --wizard`: fix infinite loop when asking for `QtCreator` application path

## qidoc

- `qidoc install`: Add `--clean` to clean the destdir before installing doc projects
- `qidoc build`: Forward `--pdb` option to `Sphinx`
- Raise when dependencies are not found. We used to silently ignore missing dependencies.

## qipkg

- `qipkg deploy-package`: now also accept a `.pml` path as argument.

  This means you can do

      qipkg deploy-package foo.pml --url user@host

  Instead of:

      qipkg make-package foo.pml
      qipkg deploy-package foo-0.1.pkg --url user@host

## qipy

- Fix creating `virtualenv` with access to global site-packages (regression since `3.10`)

## qisrc

- `qisrc list`: add `--group` argument to list projects belonging to the given group(s).
- `qisrc sync`: fix crash in some corner cases
- `qisrc init`: add `--all` option to ignore the default group and clone all the repositories defined in the manifest.
- Remove the project options in `qisrc snapshot`. They were not used and prevented passing the snapshot path.
- Warn when using `qisrc foreach --group <group name>` and the group is not currently in use
- `qisrc.git.Git.get_log`: fix git log command
- `qisrc reset`: add `--ignore-groups` to ignore groups defined in the snapshot, and use groups configured for the current worktree instead.

## qitest

- Fix test names generated by `qitest collect`
  - Old: `basename_project`
  - New: `project.subfolder.basename`
- Implement `qitest run --no-capture`. (Useful when you want the output of the tests to be shown as they run, or when your test command requires a `tty` as `stdout`)
- Fix using `qitest run --coverage` from a build worktree
- Implement `qitest run --last-failed` to re-run previously failing tests
- Implement `qitest run --exclude` to specify pattern of test name to exclude from the run
- Implement `qitest run --ignore-timeouts` to ignore test timeouts set from CMake code.
- `qitest run --coverage`: also generate HTML output (requires `gcovr >= 3.2`)
- `qitest run --coverage`: add `--coverage-output-dir` option to set coverage output directory
- `qitest run`: add `--test-output-dir` option to set test output directory (`--root-output-directory` is now deprecated)

## qitoolchain

- Support using feeds as git URLs. (See Managing pre-compiled binary packages with qitoolchain for more info)

## cmake

- Using `qi_stage_lib(foo CUSTOM_CODE ..)` did not generate installed `foo-config.cmake` correctly
- `qi_install`: use `USE_SOURCE_PERMISSIONS` when installing directories
- `qi_swig_wrap_python`: generate files in `<build>/sdk/lib/python2.7/site-packages`, the same way `qi_create_python_ext` does
- `qi_swig_wrap_python`: export `SWIG_MODULE_{target}_REAL_NAME` to the parent scope
- qibuild cmake modules:
  - Add `bfl` (http://www.orocos.org/bfl)

Changelog CMake index Python index Index