• 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

      <config name="clang">
          <var name="CC">clang</var>
          <var name="CXX">clang++</var>
  • 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 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 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


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


  • 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.


  • 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)



  • 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: