package org.shedlang.compiler.backends.targets; import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypeScalar; import org.shedlang.compiler.backends.llvm.ir.ast.types.LlvmTypes; import java.util.List; public enum NativeTarget { AMD64("amd64", "x86_64-unknown-linux-gnu", LlvmTypes.INT_64, List.of()), I686("i686", "i686-unknown-linux-gnu", LlvmTypes.INT_32, List.of("-m32")); private final String targetName; private final String targetTriple; private final LlvmTypeScalar sizeT; private final List clangFlags; NativeTarget( String targetName, String targetTriple, LlvmTypeScalar sizeT, List clangFlags ) { this.targetName = targetName; this.targetTriple = targetTriple; this.sizeT = sizeT; this.clangFlags = clangFlags; } public String targetName() { return this.targetName; } public String targetTriple() { return this.targetTriple; } public LlvmTypeScalar sizeT() { return this.sizeT; } public LlvmTypeScalar patioIntType() { return this.sizeT; } public LlvmTypeScalar cIntType() { return LlvmTypes.INT_32; } public List clangFlags() { return this.clangFlags; } }