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