diff --git a/doc/rules.md b/doc/rules.md index 38649197..5d9fed62 100644 --- a/doc/rules.md +++ b/doc/rules.md @@ -228,47 +228,24 @@ Target unityBuild(ExeName exeName, `emptyTargets` is a pre-defined function that returns an tempty `Target[]` array. -dubDefaultTarget +dubBuild ---------------- Currently only supported for build descriptions written in D. The target usually generated by `dub` with `dub build`. ```d -Target dubDefaultTarget(CompilerFlags compilerFlags = CompilerFlags(), - LinkerFlags linkerFlags = LinkerFlags(), - Flag!"allTogether" allTogether = No.allTogether) +Target dubBuild(Args...)() ``` -If it is used with no compiler -flags, an empty parameter list must be added, e.g.: +This rule has several optional arguments: - mixin build!(dubDefaultTarget!()); +* `Config config`: the dub configuration to use. +* `CompiationMode compilationMode`: how to compile (per-module, per-package, ...). +* `CompilerFlags extraCompilerFlags`: extra compiler flags to add. -dubTestTarget +dubTest ------------- The target that would be built by `dub test`. - -dubConfigurationTarget ----------------------- - -Currently only supported for build descriptions written in D. -A configuration target of dub's, for instance 'unittest'. - -```d -Target dubConfigurationTarget(Configuration config = Configuration("default"), - CompilerFlags compilerFlags = CompilerFlags(), - LinkerFlags linkerFlags = LinkerFlags(), - Flag!"allTogether" allTogether = No.allTogether, - alias objsFunction = () { Target[] t; return t; }, - ) - () if(isCallable!objsFunction) -``` - -* `config`: The dub configuration to use. -* `compilerFlags`: Self-explanatory. -* `LinkerFlags`: Self-explanatory. -* `allTogether`: to be done. -* `objsFunction`: Dependencies to link to. diff --git a/payload/reggae/dub/interop/default_build.d b/payload/reggae/dub/interop/default_build.d index 66412a37..c123a2a2 100644 --- a/payload/reggae/dub/interop/default_build.d +++ b/payload/reggae/dub/interop/default_build.d @@ -22,10 +22,10 @@ auto defaultDubBuild(in imported!"reggae.options".Options options) { private auto standardDubBuild(in imported!"reggae.options".Options options, in ConfigToDubInfo configToDubInfo) { import reggae.build: Build, Target, optional; - import reggae.rules.dub: dubTarget, dubTestTarget; + import reggae.rules.dub: dubBuild, dubTest; - auto buildTarget = dubTarget(options, configToDubInfo); // dub build - auto testTarget = dubTestTarget(options, configToDubInfo); // dub test + auto buildTarget = dubBuild(options, configToDubInfo); + auto testTarget = dubTest (options, configToDubInfo); Target aliasTarget(string aliasName, alias target)() { import std.algorithm: canFind, map; @@ -55,9 +55,9 @@ private auto standardDubBuild(in imported!"reggae.options".Options options, in C private auto reducedDubBuild(in imported!"reggae.options".Options options, in ConfigToDubInfo configToDubInfo) { import reggae.build: Build, Target, optional; - import reggae.rules.dub: dubTarget; + import reggae.rules.dub: dubBuild; - auto buildTarget = dubTarget(options, configToDubInfo); // dub build + auto buildTarget = dubBuild(options, configToDubInfo); Target aliasTarget(string aliasName, alias target)() { import std.algorithm: map; diff --git a/payload/reggae/dub/interop/package.d b/payload/reggae/dub/interop/package.d index f814685b..b45f32cd 100644 --- a/payload/reggae/dub/interop/package.d +++ b/payload/reggae/dub/interop/package.d @@ -126,8 +126,9 @@ private imported!"reggae.dub.info".DubInfo[string] getDubInfos ret["default"] = ret[configs.default_]; - // (additionally) expose the special `dub test` config as `unittest` config in the DSL (`configToDubInfo`) - // (for `dubTestTarget!()`, `dubConfigurationTarget!(Configuration("unittest"))` etc.) + // (additionally) expose the special `dub test` config as + // `unittest` config in the DSL (`configToDubInfo`) (for + // `dubTest!()`, `dubBuild!(Configuration("unittest"))` etc.) if(haveTestConfig && configs.test != "unittest" && configs.test in ret) ret["unittest"] = ret[configs.test]; diff --git a/payload/reggae/rules/dub.d b/payload/reggae/rules/dub.d index 664b8a00..5cfe598f 100644 --- a/payload/reggae/rules/dub.d +++ b/payload/reggae/rules/dub.d @@ -165,7 +165,7 @@ private struct DubPathDependency { // reggaefile's project path. The reason we use relative paths // instead of absolute is so the user doesn't have to type the // whole path to a target. - return dubTarget(subOptions, dubInfo) + return dubBuild(subOptions, dubInfo) .mapOutputs((string o) => buildPath(subOptions.projectPath.relativePath(projectPath), o)); } } @@ -188,8 +188,9 @@ private string withExtension( } } +deprecated alias dubTestTarget = dubTest; -imported!"reggae.build".Target dubTestTarget(C) +imported!"reggae.build".Target dubTest(C) (in imported!"reggae.options".Options options, in C configToDubInfo, in CompilationMode compilationMode = CompilationMode.options, @@ -204,7 +205,7 @@ imported!"reggae.build".Target dubTestTarget(C) if ("unittest" !in configToDubInfo) return Target(null); - return dubTarget( + return dubBuild( options, configToDubInfo, Configuration("unittest"), @@ -213,14 +214,14 @@ imported!"reggae.build".Target dubTestTarget(C) ); } -imported!"reggae.build".Target dubTarget(C) +imported!"reggae.build".Target dubBuild(C) (in imported!"reggae.options".Options options, in C configToDubInfo, in Configuration config = Configuration("default"), in CompilationMode compilationMode = CompilationMode.options, in imported!"reggae.types".CompilerFlags extraCompilerFlags = imported!"reggae.types".CompilerFlags()) { - return dubTarget( + return dubBuild( options, configToDubInfo[config.value], compilationMode, @@ -228,7 +229,7 @@ imported!"reggae.build".Target dubTarget(C) ); } -imported!"reggae.build".Target dubTarget( +imported!"reggae.build".Target dubBuild( in imported!"reggae.options".Options options, in DubInfo dubInfo, in CompilationMode compilationMode = CompilationMode.options, @@ -331,8 +332,9 @@ static if(imported!"reggae.config".isDubProject) { import reggae.build: Target; - deprecated alias dubConfigurationTarget = dubTarget; - deprecated alias dubDefaultTarget = dubTarget; + deprecated alias dubConfigurationTarget = dubBuild; + deprecated alias dubDefaultTarget = dubBuild; + deprecated alias dubTarget = dubBuild; /** Builds a particular dub configuration (usually "default") @@ -341,7 +343,7 @@ static if(imported!"reggae.config".isDubProject) { * CompilationMode * CompilerFlags (to add to the ones from dub) */ - Target dubTarget(Args...)() { + Target dubBuild(Args...)() { import reggae.config: options, configToDubInfo; import reggae.types: CompilerFlags; @@ -349,7 +351,7 @@ static if(imported!"reggae.config".isDubProject) { enum compilationMode = oneOptionalOf!(CompilationMode, Args); enum extraCompilerFlags = oneOptionalOf!(CompilerFlags , Args); - return dubTarget( + return dubBuild( options, configToDubInfo, configuration, @@ -361,13 +363,13 @@ static if(imported!"reggae.config".isDubProject) { /** A target corresponding to `dub test` */ - Target dubTestTarget( + Target dubTest( CompilationMode compilationMode = CompilationMode.options, imported!"std.typecons".Flag!"coverage" coverage = imported!"std.typecons".No.coverage) () { import reggae.config: options, configToDubInfo; - return dubTestTarget( + return dubTest( options, configToDubInfo, compilationMode, diff --git a/reggaefile.d b/reggaefile.d index d046f08d..0321faa9 100644 --- a/reggaefile.d +++ b/reggaefile.d @@ -36,10 +36,10 @@ version(minimal) { import std.typecons: Yes; //the actual reggae binary - alias main = dubTarget!(); + alias main = dubBuild!(); //the unit test binary - alias ut = dubTestTarget!(CompilationMode.all, Yes.coverage); + alias ut = dubTest!(CompilationMode.all, Yes.coverage); //the cucumber test target //enum cuke = Target.phony("cuke", "cd $project && cucumber", [main]); diff --git a/tests/it/runtime/issues.d b/tests/it/runtime/issues.d index 229b649f..5a98a1e1 100644 --- a/tests/it/runtime/issues.d +++ b/tests/it/runtime/issues.d @@ -433,7 +433,7 @@ unittest { "reggaefile.d", q{ import reggae; - alias it = dubTarget!( + alias it = dubBuild!( Configuration("integration"), CompilerFlags("-unittest"), );