type PantherBuildConfig = struct #ordered { var title : [Char:*]; var output : @build.BuildOutput; var architecture : @pthr.Architecture; var platform : @pthr.Platform; var windowsSubsystem : @pthr.WindowsSubsystem?; var optMode : @pthr.OptMode; var numThreads : UI32; // 0 means single-threaded var addDebugInfo : Bool; var packages : [@build.PantherPackage:*]; var cFamilyHeaders : [@build.CFamilyHeader:*]; }
Struct to describe a panther build. Meant for use with @createPantherBuild.
type BuildOutput = union { tokens : @build.BuildObjectOutput, ast : @build.BuildAssemblyOutput, semanticAnalysis : Void, pir : @build.BuildLLVMIROutput, llvmir : @build.BuildPIROutput, assembly : @build.BuildASTOutput, object : @build.BuildTokensOutput, run : Void, executable : @build.BuildExecutableOutput, }
Struct to describe a panther build output.
type BuildExecutableOutput = struct #ordered { var path : [Char:*]; var objectPath : [Char:*]; }
Struct to describe a panther build for an exectuable output.
type BuildObjectOutput = struct #ordered { var path: [Char:*]; }
Struct to describe a panther build for an object output.
type BuildAssemblyOutput = struct #ordered { var path: [Char:*]?; // null to print to stdout }
Struct to describe a panther build for an assembly output.
type BuildLLVMIROutput = struct #ordered { var path: [Char:*]?; // null to print to stdout }
Struct to describe a panther build for an LLVM-IR output.
type BuildPIROutput = struct #ordered { var path: [Char:*]?; // null to print to stdout }
Struct to describe a panther build for a PIR output.
type BuildASTOutput = struct #ordered { var path: [Char:*]?; // null to print to stdout }
Struct to describe a panther build for an AST output.
type BuildTokensOutput = struct #ordered { var path: [Char:*]?; // null to print to stdout }
Struct to describe a panther build for a tokens output.
type PantherPackage = struct #ordered { var path : [Char:*]; var name : [Char:*]; var warnings : @build.PackageWarningSettings; var options : [@build.PackageOption:*]; var sourceFiles : [[Char:*]:*]; var sourceDirectories : [@build.PantherDirectory:*]; }
Struct to describe a package for a panther build.
type PackageOption = struct #ordered { var name : [Char:*]; var value : @build.PackageOptionValue; }
Struct to describe a package option.
type PackageOptionValue = union { bool : Bool, ui8 : UI8, ui16 : UI16, ui32 : UI32, ui64 : UI64, i8 : I8, i16 : I16, i32 : I32, i64 : I64, f32 : F32, f64 : F64, string : [Char:*], }
Union to describe a package option value.
type PantherDirectory = struct #ordered { var path : [Char:*]; var isRecursive : Bool; }
Struct to describe a source directory for a panther build.
type CFamilyHeader = struct #ordered { var path : [Char:*]; var isCPP : Bool; var addIncludesToPubApi : Bool; }
Struct to describe a c-family header for a panther build.
type PackageWarningSettings = struct #ordered { var methodCallOnNonMethod : Bool = true; var deleteMovedFromExpr : Bool = true; var deleteTriviallyDeletableType : Bool = true; var comptimeIfCond : Bool = true; var alreadyUnsafe : Bool = true; var experimentalF80 : Bool = true; }
Struct for which warning should be enabled for a package.