Skip to content

Commit ab69f2f

Browse files
committed
Added: TargetType none can now be used to build multiple executables
1 parent f77a7f5 commit ab69f2f

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

source/redub/api.d

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -427,12 +427,15 @@ ProjectDetails buildProject(ProjectDetails d)
427427

428428
import redub.misc.file_size_format;
429429
import std.path;
430-
string generatedBin = d.getOutputFile();
430+
infos("Finished: ", d.tree.name, " - ", result.msecs, "ms - Rebuild up-to-date targets with --force");
431431

432-
string binShortName = relativePath(generatedBin);
433-
binShortName = binShortName.length < generatedBin.length ? binShortName : generatedBin;
434-
435-
infos("Finished: ", d.tree.name, " - ", result.msecs, "ms - Generated ",binShortName,"(",getFileSizeFormatted(generatedBin),") - Rebuild up-to-date targets with --force");
432+
if(d.tree.requirements.cfg.targetType != TargetType.none)
433+
{
434+
string generatedBin = d.getOutputFile();
435+
string binShortName = relativePath(generatedBin);
436+
binShortName = binShortName.length < generatedBin.length ? binShortName : generatedBin;
437+
infos("Generated ",binShortName,"(",getFileSizeFormatted(generatedBin),")");
438+
}
436439

437440
return d;
438441
}

source/redub/buildapi.d

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,7 +1024,7 @@ class ProjectNode
10241024
transferDependenciesAndClearOptional(node.dependencies[i], removedOptionals, removedNull, anySourceCache);
10251025
}
10261026
///If the node is none or sourceLibrary, transfer all of its dependencies to all of its parents
1027-
bool shouldTransfer = node.requirements.cfg.targetType == TargetType.none || node.requirements.cfg.targetType == TargetType.sourceLibrary;
1027+
bool shouldTransfer = (node.requirements.cfg.targetType == TargetType.none && !node.isRoot) || node.requirements.cfg.targetType == TargetType.sourceLibrary;
10281028
if(shouldTransfer)
10291029
{
10301030
for(int i = 0; i < node.parent.length; i++)
@@ -1149,7 +1149,7 @@ class ProjectNode
11491149
privatesToMerge~= [p, node];
11501150
}
11511151
visited[node] = true;
1152-
if(node.requirements.cfg.targetType == TargetType.sourceLibrary || node.requirements.cfg.targetType == TargetType.none)
1152+
if(node.requirements.cfg.targetType == TargetType.sourceLibrary || (node.requirements.cfg.targetType == TargetType.none && !node.isRoot))
11531153
dependenciesToRemove~= node;
11541154
}
11551155
static void finishPrivate(ProjectNode[] privatesToMerge, ProjectNode[] dependenciesToRemove, ref bool[ProjectNode] linkPropagated)
@@ -1203,7 +1203,7 @@ class ProjectNode
12031203

12041204
bool shouldEnterCompilationThread() const
12051205
{
1206-
return !isUpToDate || isCopyEnough;
1206+
return (!isUpToDate || isCopyEnough) && requirements.cfg.targetType != TargetType.none;
12071207
}
12081208

12091209

source/redub/building/compile.d

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ private void printCachedBuildInfo(ProjectNode root)
520520
copyEnough~= cfg;
521521
else if(node.isUpToDate)
522522
upToDate~= cfg;
523-
else
523+
else if(node.shouldEnterCompilationThread)
524524
willBuild~= cfg;
525525
}
526526
if(copyEnough.length)
@@ -686,7 +686,7 @@ private bool doLink(ProjectNode root, CompilingSession info, string mainPackHash
686686

687687
if(isUpToDate)
688688
infos("Up-to-Date: ", root.name, ", skipping linking");
689-
else if(root.requirements.cfg.targetType != TargetType.none)
689+
else
690690
{
691691
auto result = timed(()
692692
{

0 commit comments

Comments
 (0)