Documentation ¶
Index ¶
- Constants
- func AppBinPath(targetName string, buildName string, appName string) string
- func AppElfPath(targetName string, buildName string, appName string) string
- func AppImgPath(targetName string, buildName string, appName string) string
- func ArchivePath(targetName string, buildName string, pkgName string, ...) string
- func BasicEnvVars(binBase string, bspPkg *pkg.BspPackage) map[string]string
- func BinDir(targetName string, buildName string) string
- func BinRoot() string
- func CMakeTargetGenerate(target *target.Target) error
- func CmakeCompilerInfoWrite(w io.Writer, archiveFile string, bpkg *BuildPackage, cj toolchain.CompilerJob, ...)
- func CmakeCompilerWrite(w io.Writer, c *toolchain.Compiler)
- func CmakeHeaderWrite(w io.Writer, c *toolchain.Compiler, targetName string)
- func CmakeListsPath() string
- func CmakeSourceObjectWrite(w io.Writer, cj toolchain.CompilerJob, includeDirs *[]string, ...)
- func DepGraphText(graph DepGraph) string
- func EscapePkgName(name string) string
- func ExtractLibraryName(filepath string) string
- func FeatureString(settings map[string]string) string
- func FileBinDir(targetName string, buildName string, pkgName string) string
- func GeneratedBaseDir(targetName string) string
- func GeneratedBinDir(targetName string) string
- func GeneratedIncludeDir(targetName string) string
- func GeneratedSrcDir(targetName string) string
- func Load(binBasePath string, bspPkg *pkg.BspPackage, extraEnvSettings map[string]string) error
- func ManifestPath(targetName string, buildName string, pkgName string) string
- func MfgBinDir(mfgPkgName string) string
- func MfgBootDir(mfgPkgName string) string
- func ParseMapFileSizes(fileName string) (map[string]*PkgSize, error)
- func PkgBinDir(targetName string, buildName string, pkgName string, ...) string
- func PkgSyscfgPath(pkgPath string) string
- func PrintSizes(libs map[string]*PkgSize) error
- func ProjectRoot() string
- func RevdepGraphText(graph DepGraph) string
- func RunOptionalCheck(checkScript string, env map[string]string) error
- func SettingsEnvVars(settings map[string]string) map[string]string
- func SizeReport(elfFilePath, srcBase string, sectionName string, diffFriendly bool) error
- func SlotEnvVars(bspPkg *pkg.BspPackage, imageSlot int) (map[string]string, error)
- func SortDepEntries(entries []DepEntry)
- func SysinitArchivePath(targetName string) string
- func TargetBinDir(targetName string) string
- func TestExePath(targetName string, buildName string, pkgName string, ...) string
- func TestTargetName(testPkgName string) string
- func ToolchainEnvVars(c *toolchain.Compiler) map[string]string
- func UserBaseDir(targetName string) string
- func UserEnvVars(params UserEnvParams) map[string]string
- func UserPreBuildDir(targetName string) string
- func UserPreBuildIncludeDir(targetName string) string
- func UserPreBuildSrcDir(targetName string) string
- func UserPreLinkDir(targetName string) string
- func UserPreLinkSrcDir(targetName string) string
- func UserTempIncludeDir(tempDir string) string
- func UserTempSrcDir(tempDir string) string
- type BuildPackage
- type Builder
- func (b *Builder) AddCompilerInfo(info *toolchain.CompilerInfo)
- func (b *Builder) AppBinBasePath() string
- func (b *Builder) AppBinPath() string
- func (b *Builder) AppElfPath() string
- func (b *Builder) AppHexPath() string
- func (b *Builder) AppImgPath() string
- func (b *Builder) AppLinkerElfPath() string
- func (b *Builder) AppMapPath() string
- func (b *Builder) AppPath() string
- func (b *Builder) AppTentativeElfPath() string
- func (b *Builder) ArchivePath(bpkg *BuildPackage) string
- func (b *Builder) BinDir() string
- func (b *Builder) Build() error
- func (b *Builder) CMakeBuildPackageWrite(w io.Writer, bpkg *BuildPackage, linkFlags *[]string, libraries *[]string) (*BuildPackage, error)
- func (b *Builder) CMakeTargetWrite(w io.Writer, targetCompiler *toolchain.Compiler) error
- func (b *Builder) CleanArtifacts()
- func (b *Builder) CollectCompileEntriesBpkg(bpkg *BuildPackage) ([]toolchain.CompilerJob, error)
- func (b *Builder) CompileCmdsPath() string
- func (b *Builder) CopySymbols(sm *symbol.SymbolMap) error
- func (b *Builder) Debug(extraJtagCmd string, reset bool, noGDB bool, binBase string) error
- func (b *Builder) EnvVars(imageSlot int) (map[string]string, error)
- func (b *Builder) ExtractSymbolInfo() (error, *symbol.SymbolMap)
- func (b *Builder) FetchSymbolMap() (error, *symbol.SymbolMap)
- func (b *Builder) FileBinDir(pkgName string) string
- func (b *Builder) FindPkgNameByArName(arName string) string
- func (b *Builder) GetCompilerInfo() *toolchain.CompilerInfo
- func (b *Builder) GetTarget() *target.Target
- func (b *Builder) KeepLink(linkerScripts []string, keepMap *symbol.SymbolMap, extraADirs []string) error
- func (b *Builder) Link(linkerScripts []string, extraADirs []string) error
- func (b *Builder) Load(imageSlot int, extraJtagCmd string, imgFilename string) error
- func (b *Builder) ManifestPath() string
- func (b *Builder) ParseObjectElf(elf_file string) (error, *symbol.SymbolMap)
- func (b *Builder) ParseObjectLibrary(bp *BuildPackage) (error, *symbol.SymbolMap)
- func (b *Builder) ParseObjectLibraryFile(bp *BuildPackage, file string, textDataOnly bool) (error, *symbol.SymbolMap)
- func (b *Builder) PkgBinDir(bpkg *BuildPackage) string
- func (b *Builder) PrepBuild() error
- func (b *Builder) RemovePackages(cmn map[string]bool) error
- func (b *Builder) SelfTestExecute(testRpkg *resolve.ResolvePackage) error
- func (b *Builder) SelfTestLink(rpkg *resolve.ResolvePackage) error
- func (b *Builder) Size() error
- func (b *Builder) SizeReport(sectionName string, diffFriendly bool) error
- func (b *Builder) SortedRpkgs() []*resolve.ResolvePackage
- func (b *Builder) TentativeLink(linkerScripts []string, extraADirs []string) error
- func (b *Builder) TestExePath() string
- type DepEntry
- type DepGraph
- type File
- type Folder
- type MemSection
- type MemSectionArray
- type MemoryRegion
- type PkgSize
- type PkgSizeArray
- type Symbol
- type SymbolData
- type SymbolDataArray
- type TargetBuilder
- func (t *TargetBuilder) BspPkg() *pkg.BspPackage
- func (t *TargetBuilder) Build() error
- func (t *TargetBuilder) CMakeTargetBuilderWrite(w io.Writer, targetCompiler *toolchain.Compiler) error
- func (t *TargetBuilder) CreateDepGraph() (DepGraph, error)
- func (t *TargetBuilder) CreateRevdepGraph() (DepGraph, error)
- func (t *TargetBuilder) Debug(extraJtagCmd string, reset bool, noGDB bool, elfFileOverride string) error
- func (t *TargetBuilder) GetTarget() *target.Target
- func (t *TargetBuilder) GetTestPkg() *pkg.LocalPackage
- func (t *TargetBuilder) InjectSetting(key string, value string)
- func (t *TargetBuilder) Load(extraJtagCmd string, imgFileOverride string) error
- func (t *TargetBuilder) MaxImgSizes() []int
- func (t *TargetBuilder) NewCompiler(dstDir string, buildProfile string) (*toolchain.Compiler, error)
- func (t *TargetBuilder) PrepBuild() error
- func (t *TargetBuilder) RelinkLoader() (error, map[string]bool, *symbol.SymbolMap)
- func (t *TargetBuilder) Resolve() (*resolve.Resolution, error)
- func (t *TargetBuilder) SelfTestCreateExe() error
- func (t *TargetBuilder) SelfTestDebug() error
- func (t *TargetBuilder) SelfTestExecute() error
- func (t *TargetBuilder) Size() error
- func (t *TargetBuilder) SizeReport(sectionName string, diffFriendly bool) error
- type UserEnvParams
Constants ¶
const BUILD_NAME_APP = "app"
const BUILD_NAME_BOOT = "app/@mcuboot"
const BUILD_NAME_LOADER = "loader"
const CMAKELISTS_FILENAME string = "CMakeLists.txt"
Variables ¶
This section is empty.
Functions ¶
func ArchivePath ¶
func ArchivePath(targetName string, buildName string, pkgName string, pkgType interfaces.PackageType) string
func BasicEnvVars ¶
func BasicEnvVars(binBase string, bspPkg *pkg.BspPackage) map[string]string
BasicEnvVars calculates the basic set of environment variables passed to all external scripts. `binBase` is the result of calling `binBasePath()`, or "" if you don't need the "BIN_BASENAME" setting.
func CMakeTargetGenerate ¶
func CmakeCompilerInfoWrite ¶
func CmakeCompilerInfoWrite(w io.Writer, archiveFile string, bpkg *BuildPackage, cj toolchain.CompilerJob, otherIncludes []string)
func CmakeHeaderWrite ¶
func CmakeListsPath ¶
func CmakeListsPath() string
func CmakeSourceObjectWrite ¶
func DepGraphText ¶
func EscapePkgName ¶
func ExtractLibraryName ¶
func FeatureString ¶
FeatureString converts a syscfg map to a string. The string is a space-separate list of "enabled" settings.
func GeneratedBaseDir ¶
func GeneratedBinDir ¶
func GeneratedIncludeDir ¶
func GeneratedSrcDir ¶
func MfgBootDir ¶
func ParseMapFileSizes ¶
* Go through GCC generated mapfile, and collect info about symbol sizes
func PkgBinDir ¶
func PkgBinDir(targetName string, buildName string, pkgName string, pkgType interfaces.PackageType) string
func PkgSyscfgPath ¶
func PrintSizes ¶
* Return a printable string containing size data for the libraries
func ProjectRoot ¶
func ProjectRoot() string
func RevdepGraphText ¶
func SettingsEnvVars ¶
SettingsEnvVars calculates the syscfg set of environment variables required by image loading scripts.
func SizeReport ¶
func SlotEnvVars ¶
SlotEnvVars calculates the image-slot set of environment variables required by image loading scripts. Pass a negative `imageSlot` value if the target is a boot loader.
func SortDepEntries ¶
func SortDepEntries(entries []DepEntry)
func SysinitArchivePath ¶
func TargetBinDir ¶
func TestExePath ¶
func TestExePath(targetName string, buildName string, pkgName string, pkgType interfaces.PackageType) string
func TestTargetName ¶
func UserBaseDir ¶
func UserEnvVars ¶
func UserEnvVars(params UserEnvParams) map[string]string
UserEnvVars calculates the set of environment variables required by external user scripts.
func UserPreBuildDir ¶
func UserPreBuildIncludeDir ¶
func UserPreBuildSrcDir ¶
func UserPreLinkDir ¶
func UserPreLinkSrcDir ¶
func UserTempIncludeDir ¶
func UserTempSrcDir ¶
Types ¶
type BuildPackage ¶
type BuildPackage struct { SourceDirectories []string // contains filtered or unexported fields }
func NewBuildPackage ¶
func NewBuildPackage(rpkg *resolve.ResolvePackage) *BuildPackage
func (*BuildPackage) BuildProfile ¶
func (bpkg *BuildPackage) BuildProfile(b *Builder) string
Retrieves the build package's build profile override, as specified in its `pkg.yml` file. If the package does not override the build profile, "" is returned.
func (*BuildPackage) CompilerInfo ¶
func (bpkg *BuildPackage) CompilerInfo( b *Builder) (*toolchain.CompilerInfo, error)
type Builder ¶
type Builder struct { PkgMap map[*resolve.ResolvePackage]*BuildPackage // contains filtered or unexported fields }
func NewBuilder ¶
func NewBuilder( t *TargetBuilder, buildName string, rpkgs []*resolve.ResolvePackage, apiMap map[string]*resolve.ResolvePackage, cfg syscfg.Cfg) (*Builder, error)
func (*Builder) AddCompilerInfo ¶
func (b *Builder) AddCompilerInfo(info *toolchain.CompilerInfo)
func (*Builder) AppBinBasePath ¶
func (*Builder) AppBinPath ¶
func (*Builder) AppElfPath ¶
func (*Builder) AppHexPath ¶
func (*Builder) AppImgPath ¶
func (*Builder) AppLinkerElfPath ¶
func (*Builder) AppMapPath ¶
func (*Builder) AppTentativeElfPath ¶
func (*Builder) ArchivePath ¶
func (b *Builder) ArchivePath(bpkg *BuildPackage) string
Generates the path+filename of the specified package's .a file.
func (*Builder) CMakeBuildPackageWrite ¶
func (b *Builder) CMakeBuildPackageWrite(w io.Writer, bpkg *BuildPackage, linkFlags *[]string, libraries *[]string) (*BuildPackage, error)
func (*Builder) CMakeTargetWrite ¶
func (*Builder) CleanArtifacts ¶
func (b *Builder) CleanArtifacts()
Deletes files that should never be reused for a subsequent build. This list includes:
<app>.img <app>.elf.bin manifest.json
func (*Builder) CollectCompileEntriesBpkg ¶
func (b *Builder) CollectCompileEntriesBpkg(bpkg *BuildPackage) ( []toolchain.CompilerJob, error)
func (*Builder) CompileCmdsPath ¶
func (*Builder) EnvVars ¶
EnvVars calculates the full set of environment variables passed to external scripts.
func (*Builder) ExtractSymbolInfo ¶
func (*Builder) FileBinDir ¶
func (*Builder) FindPkgNameByArName ¶
func (*Builder) GetCompilerInfo ¶
func (b *Builder) GetCompilerInfo() *toolchain.CompilerInfo
func (*Builder) ManifestPath ¶
func (*Builder) ParseObjectElf ¶
func (*Builder) ParseObjectLibrary ¶
func (b *Builder) ParseObjectLibrary(bp *BuildPackage) ( error, *symbol.SymbolMap)
func (*Builder) ParseObjectLibraryFile ¶
func (*Builder) PkgBinDir ¶
func (b *Builder) PkgBinDir(bpkg *BuildPackage) string
func (*Builder) PrepBuild ¶
Populates the builder with all the packages that need to be built and configures each package's build settings. After this function executes, packages are ready to be built.
func (*Builder) SelfTestExecute ¶
func (b *Builder) SelfTestExecute(testRpkg *resolve.ResolvePackage) error
func (*Builder) SelfTestLink ¶
func (b *Builder) SelfTestLink(rpkg *resolve.ResolvePackage) error
func (*Builder) SizeReport ¶
func (*Builder) SortedRpkgs ¶
func (b *Builder) SortedRpkgs() []*resolve.ResolvePackage
func (*Builder) TentativeLink ¶
func (*Builder) TestExePath ¶
type DepGraph ¶
Key=parent, Value=slice of children For normal dependency graph: parent=depender, children=dependees. For reverse dependency graph: parent=dependee, children=dependers.
func FilterDepGraph ¶
func FilterDepGraph(dg DepGraph, parents []*resolve.ResolvePackage) ( DepGraph, []*resolve.ResolvePackage)
Extracts a new dependency graph containing only the specified parents.
@param dg The source graph to filter. @param parents The parent nodes to keep.
@return DepGraph Filtered dependency graph.
[]*ResolvePackage Specified packages that were not parents in original graph.
type MemSection ¶
* These are different memory regions as specified in linker script.
func MakeMemSection ¶
func MakeMemSection(name string, off uint64, size uint64) *MemSection
func (*MemSection) PartOf ¶
func (m *MemSection) PartOf(addr uint64) bool
type MemSectionArray ¶
type MemSectionArray []*MemSection
func (MemSectionArray) Len ¶
func (array MemSectionArray) Len() int
func (MemSectionArray) Less ¶
func (array MemSectionArray) Less(i, j int) bool
func (MemSectionArray) Swap ¶
func (array MemSectionArray) Swap(i, j int)
type MemoryRegion ¶
type MemoryRegion struct { Name string Offset uint64 EndOff uint64 TotalSize uint64 SectionNames map[string]struct{} NamesSizes map[string]uint64 }
func MakeMemoryRegion ¶
func MakeMemoryRegion() *MemoryRegion
func (*MemoryRegion) PartOf ¶
func (m *MemoryRegion) PartOf(addr uint64) bool
type PkgSize ¶
type PkgSize struct { Name string Sizes map[string]uint32 /* Sizes indexed by mem section name */ Syms map[string]*SymbolData /* Symbols indexed by symbol name */ }
* We accumulate the size of libraries to elements in this.
func MakePkgSize ¶
type PkgSizeArray ¶
type PkgSizeArray []*PkgSize
func (PkgSizeArray) Len ¶
func (array PkgSizeArray) Len() int
func (PkgSizeArray) Less ¶
func (array PkgSizeArray) Less(i, j int) bool
func (PkgSizeArray) Swap ¶
func (array PkgSizeArray) Swap(i, j int)
type SymbolData ¶
type SymbolData struct { Name string ObjName string /* Which object file it came from */ Sizes map[string]uint32 /* Sizes indexed by mem section name */ }
* Info about specific symbol size
func MakeSymbolData ¶
func MakeSymbolData(name string, objName string) *SymbolData
type SymbolDataArray ¶
type SymbolDataArray []*SymbolData
func (SymbolDataArray) Len ¶
func (array SymbolDataArray) Len() int
func (SymbolDataArray) Less ¶
func (array SymbolDataArray) Less(i, j int) bool
func (SymbolDataArray) Swap ¶
func (array SymbolDataArray) Swap(i, j int)
type TargetBuilder ¶
type TargetBuilder struct { AppBuilder *Builder AppList interfaces.PackageList LoaderBuilder *Builder LoaderList interfaces.PackageList // contains filtered or unexported fields }
func NewTargetBuilder ¶
func NewTargetBuilder(target *target.Target) (*TargetBuilder, error)
func NewTargetTester ¶
func NewTargetTester(target *target.Target, testPkg *pkg.LocalPackage) (*TargetBuilder, error)
func (*TargetBuilder) BspPkg ¶
func (t *TargetBuilder) BspPkg() *pkg.BspPackage
func (*TargetBuilder) Build ¶
func (t *TargetBuilder) Build() error
func (*TargetBuilder) CMakeTargetBuilderWrite ¶
func (*TargetBuilder) CreateDepGraph ¶
func (t *TargetBuilder) CreateDepGraph() (DepGraph, error)
func (*TargetBuilder) CreateRevdepGraph ¶
func (t *TargetBuilder) CreateRevdepGraph() (DepGraph, error)
func (*TargetBuilder) Debug ¶
func (t *TargetBuilder) Debug(extraJtagCmd string, reset bool, noGDB bool, elfFileOverride string) error
Debug runs gdb on the .elf file corresponding to what is running on a device. If elfFileOverride is not empty, it specifies the path of the .elf file to debug. If it is empty, the .elf file in the target's `bin` directory is loaded.
func (*TargetBuilder) GetTarget ¶
func (t *TargetBuilder) GetTarget() *target.Target
func (*TargetBuilder) GetTestPkg ¶
func (t *TargetBuilder) GetTestPkg() *pkg.LocalPackage
func (*TargetBuilder) InjectSetting ¶
func (t *TargetBuilder) InjectSetting(key string, value string)
func (*TargetBuilder) Load ¶
func (t *TargetBuilder) Load(extraJtagCmd string, imgFileOverride string) error
Load loads a .img file onto a device. If imgFileOverride is not empty, it specifies the path of the image file to load. If it is empty, the image in the target's `bin` directory is loaded.
func (*TargetBuilder) MaxImgSizes ¶
func (t *TargetBuilder) MaxImgSizes() []int
Calculates the size of the largest image that can be written to each image slot.
func (*TargetBuilder) NewCompiler ¶
func (*TargetBuilder) PrepBuild ¶
func (t *TargetBuilder) PrepBuild() error
func (*TargetBuilder) RelinkLoader ¶
* This function re-links the loader adding symbols from libraries * shared with the app. Returns a list of the common packages shared * by the app and loader
func (*TargetBuilder) Resolve ¶
func (t *TargetBuilder) Resolve() (*resolve.Resolution, error)
func (*TargetBuilder) SelfTestCreateExe ¶
func (t *TargetBuilder) SelfTestCreateExe() error
func (*TargetBuilder) SelfTestDebug ¶
func (t *TargetBuilder) SelfTestDebug() error
func (*TargetBuilder) SelfTestExecute ¶
func (t *TargetBuilder) SelfTestExecute() error
func (*TargetBuilder) Size ¶
func (t *TargetBuilder) Size() error
func (*TargetBuilder) SizeReport ¶
func (t *TargetBuilder) SizeReport(sectionName string, diffFriendly bool) error