From 04cf66d6b53121998b33889a5495aaef3925cdfd Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 24 Mar 2024 14:10:30 +0000 Subject: Use profiles when compiling --- src/main/java/org/shedlang/compiler/ShedCompiler.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/main/java/org/shedlang/compiler/ShedCompiler.java') diff --git a/src/main/java/org/shedlang/compiler/ShedCompiler.java b/src/main/java/org/shedlang/compiler/ShedCompiler.java index 1f04c0fa..45c189bf 100644 --- a/src/main/java/org/shedlang/compiler/ShedCompiler.java +++ b/src/main/java/org/shedlang/compiler/ShedCompiler.java @@ -4,6 +4,7 @@ import org.shedlang.compiler.ast.untyped.UntypedNamespaceNode; import org.shedlang.compiler.backends.Backend; import org.shedlang.compiler.backends.paths.TargetDir; import org.shedlang.compiler.config.ConfigChecker; +import org.shedlang.compiler.config.ProfileConfig; import org.shedlang.compiler.config.ProjectConfig; import org.shedlang.compiler.parser.Parser; import org.shedlang.compiler.shid.ShidCodeGen; @@ -21,10 +22,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.StreamSupport; import static org.shedlang.compiler.parser.Tokeniser.tokenise; @@ -34,7 +32,7 @@ public class ShedCompiler { public void compile( Path projectRoot, Backend backend, - String profileName + Optional profileName ) throws IOException, InterruptedException { var config = ProjectConfig.read(projectRoot); @@ -75,12 +73,19 @@ public class ShedCompiler { ConfigChecker.configCheck(config, typeInfos); + var profileConfig = profileName.map(config::profile) + .orElse(ProfileConfig.DEFAULT); + backend.compile( config, - profileName, + profileConfig, namespaces, typeInfos, - new TargetDir(config.targetDir().resolve(backend.targetName())) + new TargetDir( + config.targetDir() + .resolve(backend.targetName()) + .resolve(profileConfig.name()) + ) ); } -- cgit v1.2.3