# qiBuild documentation

# v3.2

## Command line

- New command added: `qitest`. This makes it possible to run the tests after they have been deployed to a remote host (assuming qibuild is installed on the remote host)

    qibuild deploy --with-tests user@host:deploy
    ssh use@host
    cd deploy
    qitest run qitest.json

## qibuild

- API break: `--cmake-generator,-G` option can now only be used for `qibuild configure`.

  For the other build actions (`qibuild make`, `qibuild install`, ...), the CMake generator is now simply read from the CMake cache in the build directory.

- New configure options:

  - `--32bits` : force 32bits build even on 64bits platform (linux only)
  - `--with-debug-info` : force inclusion of debug symbols when building with `--release` (useful when using breakpad)
  - `--without-debug-info`: force exclusion of debug symbols when building with `--debug` (useful when making redistributable debug libraries for Visual Studio)

- Faster `qibuild deploy`: now using a single rsync call using a file list.

- Show what is currently building in the title bar (linux only)

- Better error message when CMake segfaults

- Sort projects and packages lists in qibuild deploy

- `qibuild test`:

  - Now the same as `qitest run <build>/qitest.json`
  - `ctrl-c` can no longer cause deadlocks.
  - Displays a summary even when it has been interrupted
  - Python exceptions raised during tests no longer cause deadlocks.
  - Tests are now run from `<build>/sdk/bin` by default.

- On Mac, `.a` files from packages are no longer installed when using `--runtime`

## qitoolchain

- Fix `qitoolchain set-default` erasing profile settings

## qidoc

- Output where the doc has been built

## qisrc

- Faster `qisrc sync`: only configures the projects we want to sync, instead of all the projects in the worktree
- `qisrc foreach`: add `-g,--group` argument
- `qisrc grep` : forward color options to `git`
- `git.is_git`: optimize detection: does .git exist?
- `qisrc sync`: do not crash when fetch fails
- `qisrc snapshot`: handle badly formatted snapshot file

## Python

- Rewrite of the `qibuild test` implementation
  - Removed `qibuild.ctest` and `qibuild.performance`
  - Added `qitest` module, `qibuild.test_runner` and `BuildProject.run_tests`

## CMake

- Added `qi_create_test_helper` : this will create an executable that will be built when the tests are built, but is not an actual tests. Useful to create several tests with the same executable but different arguments:

    # old:

    qi_create_test(foo foo.cpp NO_ADD_TEST)
    qi_add_test(foo_bar foo ARGUMENTS --bar)
    qi_add_test(foo_baz foo ARGUMENTS --baz)

    # new:

    qi_create_test_helper(foo foo.cpp)
    qi_add_test(foo_bar foo ARGUMENTS --bar)
    qi_add_test(foo_baz foo ARGUMENTS --baz)

- Changed options:

  `BUILD_TESTS` is no longer used, use `QI_WITH_TESTS=OFF` instead to deactivate the tests completely (they won’t even be configured)

- The implementation no longer calls upstream’s `add_test`, which means:

  - You cannot use `ctest` or `make test` to run the tests
  - The call to `enable_testing()` is no longer necessary

- `qi_add_test` add `NO_INSTALL`, `WORKING_DIRECTORY` and `ENVIRONMENT` options

- `qi_swig_java`: add `OUTDIR` parameter, used to specify where swig will generate data.

- qibuild cmake modules:

  - `boostutils`: fix for cmake > 2.8.11

## Packaging

- Switch to `setuptools`.
  - Fix using `qidoc` after using `pip` to install `qibuild`
  - Fix using `pip install qibuild` on Windows

## Contrib

- Add a colout theme

Changelog CMake index Python index Index