www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - dub: Detected dependency cycle

reply unDEFER <undefer gmail.com> writes:
Hello!
Finally I have added my bdb2d package to dub.
But something is going wrong and when I'm trying to use my own 
pakcage it say me:
$ dub
Detected dependency cycle: bdb2d->bdb2d

dub.json from bdb2d:
{
     "name": "bdb2d",
     "targetName": "db",
     "targetType": "library",
     "description": "BerkeleyDB to D bindings.",
     "authors": ["Nikolay (unDEFER) Krivchenkov"],
     "homepage": "http://unde.su",
     "license": "GPL-3.0 or later",
     "sourcePaths": ["berkeleydb"],
     "libs-posix": ["db"],

     "subPackages": [
         {
             "name": "reader",
             "description": "BerkeleyDB Transaction test. Reader",
             "targetName": "reader",
             "targetType": "executable",
             "sourceFiles": ["transactions_test/reader.d"],
             "targetPath": "transactions_test",
             "dependencies": {
                 "bdb2d": "*"
             }
         }, {
             "name": "writer",
             "description": "BerkeleyDB Transaction test. Writer",
             "targetName": "writer",
             "targetType": "executable",
             "sourceFiles": ["transactions_test/writer.d"],
             "targetPath": "transactions_test",
             "dependencies": {
                 "bdb2d": "*"
             }
         }
     ]
}

It has 2 subpackages, and they both uses bdb2d, but it is not 
dependency cycle because bdb2d doesn't use these subpackages.
So What I'm doing wrong?
dub.json of the second project:
{
     "name": "bdb2d",
     "targetName": "db",
     "targetType": "executable",
     "description": "unDE - ultimate native Desktop Environment.",
     "authors": ["Nikolay (unDEFER) Krivchenkov"],
     "homepage": "http://unde.su",
     "license": "GPL-3.0 or later",
     "dependencies": {
         "bdb2d": ">=5.3.28",
         "derelict-sdl2":">=2.0.0"
     }
}
Sep 29 2016
parent reply unDEFER <undefer gmail.com> writes:
Forgot to say:
dub normally builds my bdb2d from it's directory. It doesn't 
detects any dependency cycle on targets "bdb2d", "bdb2d:reader", 
"bdb2d:writer".
Sep 29 2016
parent reply =?UTF-8?Q?S=c3=b6nke_Ludwig?= <sludwig outerproduct.org> writes:
Am 29.09.2016 um 12:31 schrieb unDEFER:
 Forgot to say:
 dub normally builds my bdb2d from it's directory. It doesn't detects any
 dependency cycle on targets "bdb2d", "bdb2d:reader", "bdb2d:writer".
The problem appears to be that both packages are called "bdb2d", so they are considered as the same package - or in particular the dependency to "bdb2d" in the second package is considered as a reference to itself.
Sep 29 2016
parent unDEFER <undefer gmail.com> writes:
On Thursday, 29 September 2016 at 10:41:49 UTC, Sönke Ludwig 
wrote:
 The problem appears to be that both packages are called 
 "bdb2d", so they are considered as the same package - or in 
 particular the dependency to "bdb2d" in the second package is 
 considered as a reference to itself.
OMG, really. So easy. Thank you. You have saved me life!
Sep 29 2016