Do not leak exceptions from the Profile class.

This is public API.

Change-Id: I37cfd018e350a3ff4cecba34af42bf23a8aaf0fd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix profile test.

We don't throw exceptions anymore.

Change-Id: I4a8baba0b3fd0d6af7adceb4c6ef905f63b84efd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Tighten sanity check.

Check for the same file appearing as different artifacts in a child
list. See QBS-491 for an example.

Change-Id: Ie93268c05386ccfae2a57097a19e5ec7d135902a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Use a qbs-specific group for the settings.

Otherwise, non-qbs settings from fallback locations will add noise for
users. This patch is in effect an addendum to commit 065d89fa2c, which
assumed that this happened only on OSX. However, we have now seen such
problems also on Linux.

Change-Id: If4e40d5941c8e1bd249cf75096b59d4b10880d00
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix "clean" autotest on OSX.

Dynamic library names are different on Mac.

Change-Id: I451d61765a91213e5d2e6141848cb2f00cb0d2d9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Take source artifact properties into account when change tracking.

When properties on source files change, rules might have to be re-
applied and the installation of the respective source file may
have to be re-done. The current code catches none of that.

Change-Id: I7d87eb1d6bbb9918f2633ec8cbb9640ca23b90a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix build data rescuing.

The old implementation allowed more than one connection
to a child with the same file path represented by
different artifact objects.

Change-Id: I38db86c50f0f671fdcb05d481f51fb512442cbfd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix API test.

The test project now has more than one installable file, so we can no
longer assume that the first one is the application.

Change-Id: I6059362c691912cafa46caa948d6b22baa9a289e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Make config commands understand booleans.

The user frontends for our settings assume everything is a string, so do
the necessary conversions. Note that this means there is no way to set
the string values "true" and "false". For a correct implementation,
users would need to supply types when adding new values.

Change-Id: If3638525eeebe73857834389bae46484eee92cc3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Doc: document cpp.archiverName

Change-Id: Ie31e6eb3e098f5176030adb789315cb996b4ae17
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Tighten sanity checks, part XXXIII.

- Check whether the artifacts in a child list actually appears in their
  products' artifact list.
- Do sanity checking right before storing the build graph. This makes
  sure that a corrupted build graph never gets written to disk.

Change-Id: I06b02b97c3621ecdc1f6dae8e6ce818519f9736e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Check all output artifacts if checking timestamps was requested.

Normally, those artifacts for which "alwaysUpdated" is false are skipped
as to not cause false positives. However, if the user indicates that the
build directory was messed with, they could, for instance, have been
deleted and must therefore be taken into account.

Change-Id: I5b0e498c4926c617956ff4e59864489cfc769d15
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Fix compilation on Windows.

Change-Id: I6f31008d3cc0e7fbff1cc47703ad05861b0eb67d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>