Skip to content

Commit

Permalink
Merge pull request atilaneves#241 from atilaneves/dub-rules-new-names
Browse files Browse the repository at this point in the history
New names for dub rules
  • Loading branch information
atilaneves authored Dec 5, 2023
2 parents d56272d + 621f52c commit 47a2029
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 52 deletions.
37 changes: 7 additions & 30 deletions doc/rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
10 changes: 5 additions & 5 deletions payload/reggae/dub/interop/default_build.d
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down
5 changes: 3 additions & 2 deletions payload/reggae/dub/interop/package.d
Original file line number Diff line number Diff line change
Expand Up @@ -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];

Expand Down
26 changes: 14 additions & 12 deletions payload/reggae/rules/dub.d
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}
}
Expand All @@ -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,
Expand All @@ -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"),
Expand All @@ -213,22 +214,22 @@ 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,
extraCompilerFlags,
);
}

imported!"reggae.build".Target dubTarget(
imported!"reggae.build".Target dubBuild(
in imported!"reggae.options".Options options,
in DubInfo dubInfo,
in CompilationMode compilationMode = CompilationMode.options,
Expand Down Expand Up @@ -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")
Expand All @@ -341,15 +343,15 @@ 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;

enum configuration = oneOptionalOf!(Configuration , Args);
enum compilationMode = oneOptionalOf!(CompilationMode, Args);
enum extraCompilerFlags = oneOptionalOf!(CompilerFlags , Args);

return dubTarget(
return dubBuild(
options,
configToDubInfo,
configuration,
Expand All @@ -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,
Expand Down
4 changes: 2 additions & 2 deletions reggaefile.d
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down
2 changes: 1 addition & 1 deletion tests/it/runtime/issues.d
Original file line number Diff line number Diff line change
Expand Up @@ -433,7 +433,7 @@ unittest {
"reggaefile.d",
q{
import reggae;
alias it = dubTarget!(
alias it = dubBuild!(
Configuration("integration"),
CompilerFlags("-unittest"),
);
Expand Down

0 comments on commit 47a2029

Please sign in to comment.