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?
Attachments
For Gerrit Dashboard: QBS-731 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
105522,2 | Android: Single artifact per package for gdbserver and shared stl. | master | qbs/qbs | Status: MERGED | +2 | 0 |