aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2025-03-09 21:52:45 +0000
committerMichael Williamson <mike@zwobble.org>2025-03-09 21:52:45 +0000
commit564a2a7f4feb6f53b5aeff38a73f30dc275d4437 (patch)
tree8315e706744b44869f974444254e4a7b0558f767 /src/main/java
parent596b1c1fde6b94326c7cc1ee35c81586fa04ab72 (diff)
Remove duplication of path to binary
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/ShedCompiler.java12
-rw-r--r--src/main/java/org/shedlang/compiler/config/ProjectConfig.java10
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) {