www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - DUB, link automatically right object for platform and archi

reply Basile B. <b2.temp gmx.com> writes:
I've converted this section:


"configurations" : [
     {
       "name" : "nux32",
       "dflags" : [
         "objects/coff32/beaengine.o"
       ]
     },
     {
       "name" : "nux64",
       "dflags" : [
         "objects/coff64/beaengine.o"
       ]
     },
     {
       "name" : "win32",
       "dflags" : [
         "objects\\omf32\\beaengine.obj"
       ]


to:


   "buildSettings" : {
     "dflags-linux-x86" : ["objects/coff32/beaengine.o"],
     "dflags-linux-x86_64" : ["objects/coff64/beaengine.o"],
     "dflags-windows-x86" : ["objects\\omf32\\beaengine.obj"]
   },


Because previously the right config could not be selected when 
the package was used as dependency. But now the object is not 
linked in the static library produced by the project.

What's wrong in my description ?
Sep 01 2016
next sibling parent Basile B. <b2.temp gmx.com> writes:
On Thursday, 1 September 2016 at 18:01:19 UTC, Basile B. wrote:
 I've converted this section:
 [...]
 to:


   "buildSettings" : {
     "dflags-linux-x86" : ["objects/coff32/beaengine.o"],
     "dflags-linux-x86_64" : ["objects/coff64/beaengine.o"],
     "dflags-windows-x86" : ["objects\\omf32\\beaengine.obj"]
   },


 Because previously the right config could not be selected when 
 the package was used as dependency. But now the object is not 
 linked in the static library produced by the project.

 What's wrong in my description ?
neither dflags, lflags nor sourceFiles work. Strangely enough this new section is completely missing in the dub.json obtained after the dub fetch.
Sep 01 2016
prev sibling parent reply rikki cattermole <rikki cattermole.co.nz> writes:
On 02/09/2016 6:01 AM, Basile B. wrote:
 I've converted this section:


 "configurations" : [
     {
       "name" : "nux32",
       "dflags" : [
         "objects/coff32/beaengine.o"
       ]
     },
     {
       "name" : "nux64",
       "dflags" : [
         "objects/coff64/beaengine.o"
       ]
     },
     {
       "name" : "win32",
       "dflags" : [
         "objects\\omf32\\beaengine.obj"
       ]


 to:


   "buildSettings" : {
     "dflags-linux-x86" : ["objects/coff32/beaengine.o"],
     "dflags-linux-x86_64" : ["objects/coff64/beaengine.o"],
     "dflags-windows-x86" : ["objects\\omf32\\beaengine.obj"]
   },


 Because previously the right config could not be selected when the
 package was used as dependency. But now the object is not linked in the
 static library produced by the project.

 What's wrong in my description ?
Well for starters buildSettings is just a name given to a group of properties. It doesn't actually go INTO the dub file. dflags is valid in top level config, subPackage and of course configuration.
Sep 01 2016
parent Basile B. <b2.temp gmx.com> writes:
On Friday, 2 September 2016 at 03:24:58 UTC, rikki cattermole 
wrote:
 On 02/09/2016 6:01 AM, Basile B. wrote:
 [...]

 What's wrong in my description ?
For starters
Ouch...
 buildSettings is just a name given to a group of properties. It 
 doesn't actually go INTO the dub file.
Thx much, this explains why the JSON object was missing.
 dflags is valid in top level config, subPackage and of course 
 configuration.
Sep 02 2016