Panther Search Documentation Tutorials Devlogs Downloads Source Code

Documentation > Panther Documentation > Intrinsics > Builtin Module @build

Builtin Module @build

Panther
Documentation


PantherBuildConfig

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.

BuildOutput

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.

BuildExecutableOutput

type BuildExecutableOutput = struct #ordered {
	var path       : [Char:*];
	var objectPath : [Char:*];
}

Struct to describe a panther build for an exectuable output.

BuildObjectOutput

type BuildObjectOutput = struct #ordered {
	var path: [Char:*];
}

Struct to describe a panther build for an object output.

BuildAssemblyOutput

type BuildAssemblyOutput = struct #ordered {
	var path: [Char:*]?; // null to print to stdout
}

Struct to describe a panther build for an assembly output.

BuildLLVMIROutput

type BuildLLVMIROutput = struct #ordered {
	var path: [Char:*]?; // null to print to stdout
}

Struct to describe a panther build for an LLVM-IR output.

BuildPIROutput

type BuildPIROutput = struct #ordered {
	var path: [Char:*]?; // null to print to stdout
}

Struct to describe a panther build for a PIR output.

BuildASTOutput

type BuildASTOutput = struct #ordered {
	var path: [Char:*]?; // null to print to stdout
}

Struct to describe a panther build for an AST output.

BuildTokensOutput

type BuildTokensOutput = struct #ordered {
	var path: [Char:*]?; // null to print to stdout
}

Struct to describe a panther build for a tokens output.

PantherPackage

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.

PackageOption

type PackageOption = struct #ordered {
	var name  : [Char:*];
	var value : @build.PackageOptionValue;
}

Struct to describe a package option.

PackageOptionValue

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.

PantherDirectory

type PantherDirectory = struct #ordered {
	var path        : [Char:*];
	var isRecursive : Bool;
}

Struct to describe a source directory for a panther build.

CFamilyHeader

type CFamilyHeader = struct #ordered {
	var path                : [Char:*];
	var isCPP               : Bool;
	var addIncludesToPubApi : Bool;
}

Struct to describe a c-family header for a panther build.

PackageWarningSettings

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.