# qiBuild documentation

# v3.7

## General

- Warn when nesting worktrees are detected
- Print the name of the class of the exception along with its message when an uncaught exception occurs.

## qicd

- Go back to 3.5 behavior

## qibuild

- Write a `path.conf` in the .qi folder too

- Fix #24199: additional environment paths leaking from other configs

- Fix using `--build-type=[RelWithDebInfo|MinSizeRel]` with Visual Studio

- Fix using `qibuild test` with `-p`

- Fix updating build profiles remotely.

  To get an up-to-date profile, you should first remove the `<profiles>` tag manually from `.qi/qibuild.xml`.

  The `tools/3.7-migration.py` script can help you do that.

- Fix crash in `qibuild deploy` when gdb is not installed

- `qibuild install`: small bug fix

  The `make preinstall` hack used to look for Unix Makefiles in the build config, instead of reading the CMakeCache, causing install failures when no generator was specified in the build config.

## qidoc

- Fix crash when `build_type` is None
- Do not put doubles in `qiapidoc_srcs`
- Fix bug with recent `sphinx`: except `SystemExit` to prevent early exit
- Do not filter hidden files when installing

## qilinguist

- Add context support extraction for qilinguist

## qipkg

- `qipkg build`: allow usage of `-j` option
- Better error message when files from the pml do not exist
- Add support for meta packages
- Implement `qipkg make-package --with-breakpad`

## qipy

- `qipy bootstrap`: fix crash when calling `pip install` fails.
- Allow specifying modules, script and packages to install directly from the `qiproject.xml` instead of having to write a `setup.py` file
- Use `exec` in the `./python` script. This is required for `qi::path` magic to work.

## qisrc

- `qisrc checkout`: skip checkout when project is already on the correct branch

- `qisrc init` : make manifest URL argument optional

- `qisrc`: raise when updating the manifest fails

- `qisrc rebase`: make git fetch quiet when verbose is not set

- Fix issue when changing remotes: the new remote was added but the previous one never deleted

- `qisrc list-groups`: sort the output

- `qisrc add-group`: fix #26829

  We used to not store the default group when running `qisrc init`, causing `qisrc add-group` to remove some projects when called afterwards.

- `qisrc reset`: fix crash when loading bad snapshot

## qitest

- `qitest run` accept several `-k` options
- `qitest run`: correctly set working directory
- `qitest run` allow specifying several build projects on the command line. As a consequence, paths to `qitest.json` files should now be specified using `--qitest-json` option.
- `qitest run --nightly`: also run the normal tests.
- Do not overwrite generated XML files when return code is 1
- Merge `qitest.json` files when installing with `--with-tests`
- Re-implement `qitest` “nightmare” mode.

## qitoolchain

- Support for svn packages: just put a `<svn_package>` tag in the XML feed. `qitoolchain update` will cause all svn packages to be updated to the latest revision. You can also specify a revision using a `revision` attribute.
- Format of configuration files changed. Now only XML is used.
  - Versions of packages are now stored in a database
  - Since configuration of toolchain packages changed, you should re-create all of them from scratch. The `tools/3.7-migration.py` script can help you do that.
- `qitoolchain update` is now a no-op when there are no changes, thus preventing unnecessary rebuilds.
- Binary packages are now a ‘flat’ zip with a `package.xml` as first element containing metadata. Packages can now have runtime, build time and test time dependencies, the same way C++ projects can.
- Binary packages now contain install manifest files to track the list of files matching a given component (runtime, devel or test)
- `qitoolchain add-package`: read name of the package (and other metadata) from `package.xml`
- Packages generated by `qibuild package` now also contain SCM information when relevant

## cmake

- Look for boost shared libs on Windows
- `Qt`: Remove `QT_USE_QMAKE` option. Instead just look for the `qmake` executable to include upstream CMake modules. Previous behavior can be achieved by setting `QT_QMAKE_EXECUTABLE` variable.
- cmake modules:
  - add `curl`
  - add `soprano`
- Fix staging shared libraries in a subfolder
- Add Qt5 support
- Compile executables with -fPIE on linux (required for Qt5)
- Fix `QT4_AUTOMOC`

Changelog CMake index Python index Index