Details
Description
Zeus:tmp jakepetroules$ cat project.qbs import qbs Project { references: ["foo.qbs", "bar.qbs"] } Zeus:tmp jakepetroules$ cat foo.qbs import qbs DynamicLibrary { files: ["foo.c"] } Zeus:tmp jakepetroules$ cat bar.qbs import qbs DynamicLibrary { files: ["foo.c"] } Zeus:tmp jakepetroules$ qbs -f project.qbs profile:qbs_autotests-android No build graph exists yet for this configuration. Resolving project for configuration qbs_autotests-android-debug Setting up build graph for configuration qbs_autotests-android-debug Building for configuration qbs_autotests-android-debug compiling foo.c compiling foo.c linking libbar.so linking libfoo.so Copying native library and depencencies Stripping unneeded symbols ERROR: BUG: already inserted in this project: /private/tmp/qbs_autotests-android-debug/lib/armeabi/gdbserver - foo.qbs_autotests-android_armeabi - bar.qbs_autotests-android_armeabi The following products could not be built for configuration qbs_autotests-android-debug: foo (for profile 'qbs_autotests-android_armeabi') bar (for profile 'qbs_autotests-android_armeabi')
I've also seen "child artifact already exists for path" or something of the sort, without the "BUG" prefix. Not sure how to repro.
The problem is that each Android product causes a gdbserver binary to be copied, but the path is constant across all products so they conflict.
Maybe we can implement gdbserver as an internal Product named io.qt.qbs.Android.gdbserver and add a new property on Module named `additionalProducts` (which acts like `references`) to add it to the project?