Dub importPath and sourcePath variables

Andre Pany andre at s-e-a-p.de
Wed Aug 28 12:38:14 UTC 2019


On Wednesday, 28 August 2019 at 00:26:24 UTC, Max wrote:
> Hello,
>
> I am having a problem working with custom build types in Dub.
>
> For my project, when I perform a regular build, all of my 
> source code is contained in ./source or 
> ~/.dub/packages/<package-name>.
> However, I want to specify a custom build type (called 'tests') 
> that imports modules from the additional directory ./tests.
> Accordingly, my dub.json file is structured as follows:
>
> {
> 	"name": "q1dcfd",
> 	"authors": [
> 		"Tom Reddell", "Viv Bone"
> 	],
> 	"description" : "Quasi One Dimensional Compressible Flow 
> Dynamics",
> 	"copyright"   : "Copyright © 2018, Tom Reddell",
> 	"license"     : "MIT",
> 	"targetType"  : "executable",
> 	"sourceFiles"         : ["$CPD/source/cpp_layer.o", 
> "$CPD/source/libCoolProp.a"],
>     "excludedSourceFiles" : ["source/experimental/*"],
> 	"dependencies": {
>         "mir"           : "~>3.2.0",
>         "mir-algorithm" : "~>3.4.14",
>         "lubeck"        : "~>1.1.2",
> 		"coolprop"      : "*"
> 	},
>     "buildTypes" : {
>         "tests" : {
>             "buildOptions"        : ["unittests", "debugMode"],
>             "importPaths"         : ["tests/", "source/"],
>             "sourcePaths"         : ["tests/", "source/"],
>             "excludedSourceFiles" : ["source/experimental/*"]
>         }
>     }
> }
>
> When I manually assign my "importPaths" and "sourcePaths" 
> variables during a "tests" build, I overwrite the values in 
> these variables that have been automatically added due to my 
> dependencies, causing the build to fail.
> Is there a way that I can append "tests" to importPaths and 
> sourcePaths, rather than overwriting them completely?
>
> Regards,
>
> Viv

My understanding is that you can use configurations rather than 
build types.

"configurations": [{
             "name": "debug",
             "targetType": "executable",
             "targetName": "puzz",
             "targetPath": "bin"
         }, {
             "name": "unittest",
             "targetType": "executable",
             "targetName": "unittest",
             "mainSourceFile": "source/cp/app.d"
         }

     ]

Command ```dub build``` will use the first configuration (debug). 
Command ```dub test``` will automatically use configuration 
unittest.

Kind regards
Andre




More information about the Digitalmars-d-learn mailing list