diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-03-09 21:52:45 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-03-09 21:52:45 +0000 |
| commit | 564a2a7f4feb6f53b5aeff38a73f30dc275d4437 (patch) | |
| tree | 8315e706744b44869f974444254e4a7b0558f767 /src/main/java | |
| parent | 596b1c1fde6b94326c7cc1ee35c81586fa04ab72 (diff) | |
Remove duplication of path to binary
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ShedCompiler.java | 12 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/config/ProjectConfig.java | 10 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/main/java/org/shedlang/compiler/ShedCompiler.java b/src/main/java/org/shedlang/compiler/ShedCompiler.java index e2be53a2..845da159 100644 --- a/src/main/java/org/shedlang/compiler/ShedCompiler.java +++ b/src/main/java/org/shedlang/compiler/ShedCompiler.java @@ -30,7 +30,7 @@ import static org.shedlang.compiler.sourcefiles.SourceFiles.collectSourceFiles; import static org.shedlang.compiler.typechecker.NamespaceDependencyLineariser.orderNamespaces; public class ShedCompiler { - public void compile( + public TargetDir compile( Path projectRoot, Backend backend, Optional<String> profileName @@ -85,17 +85,17 @@ public class ShedCompiler { var profileConfig = profileName.map(config::profile) .orElse(ProfileConfig.DEFAULT); + var targetDir = config.targetDir(backend, profileConfig); + backend.compile( config, profileConfig, namespaces, typeInfos, - new TargetDir( - config.targetDir() - .resolve(backend.targetName()) - .resolve(profileConfig.name()) - ) + targetDir ); + + return targetDir; } /** diff --git a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java index dcb402f8..44a041f4 100644 --- a/src/main/java/org/shedlang/compiler/config/ProjectConfig.java +++ b/src/main/java/org/shedlang/compiler/config/ProjectConfig.java @@ -1,5 +1,7 @@ package org.shedlang.compiler.config; +import org.shedlang.compiler.backends.Backend; +import org.shedlang.compiler.backends.paths.TargetDir; import org.shedlang.compiler.config.json.Json5ObjectWithSource; import org.zwobble.sourcetext.SourceText; @@ -64,8 +66,12 @@ public record ProjectConfig( .toList(); } - public Path targetDir() { - return root.resolve("target"); + public TargetDir targetDir(Backend backend, ProfileConfig profileConfig) { + var path = root.resolve("target") + .resolve(backend.targetName()) + .resolve(profileConfig.name()); + + return new TargetDir(path); } public ProfileConfig profile(String profileName) { |
