maker

package
v0.9.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const CMAKE_MIN_REQUIRED = "3.27"

Variables

View Source
var CategoryLanguageMap = map[string]string{
	"headerAsm":  "ASM",
	"headerC":    "C",
	"headerCpp":  "CXX",
	"includeAsm": "ASM",
	"includeC":   "C",
	"includeCpp": "CXX",
	"sourceAsm":  "ASM",
	"sourceC":    "C",
	"sourceCpp":  "CXX",
}
View Source
var LanguageReMap = map[string]string{
	"asm":   "ASM",
	"c":     "C",
	"cpp":   "CXX",
	"c-cpp": "C,CXX",
}
View Source
var WestToolchainMap = map[string]string{
	"AC6":   "armclang",
	"GCC":   "gnuarmemb",
	"IAR":   "iar",
	"CLANG": "llvm",
}

Functions

func AddRootPrefix

func AddRootPrefix(base string, input string, solutionRoot string) string

func AddShellPrefix

func AddShellPrefix(input string) string

func AreAbstractionsEmpty

func AreAbstractionsEmpty(abstractions CompilerAbstractions, languages []string) bool

func CMakeAddLibrary

func CMakeAddLibrary(name string, buildFiles BuildFiles) string

func CMakeTargetCompileDefinitions

func CMakeTargetCompileDefinitions(name string, parent string, scope string, define []interface{}, undefine []string) string

func CMakeTargetIncludeDirectories

func CMakeTargetIncludeDirectories(name string, includes ScopeMap) string

func GetFileOptions

func GetFileOptions(file Files, hasAbstractions bool, delimiter string) string

func GetLanguage

func GetLanguage(file Files) string

func GetScope

func GetScope(file Files) string

func HasFileAbstractions

func HasFileAbstractions(files []Files) bool

func HasFileCustomOptions added in v0.9.1

func HasFileCustomOptions(file Files) bool

func HasMapFile added in v0.9.5

func HasMapFile(outputList []Output) bool

func IsCompileMiscEmpty

func IsCompileMiscEmpty(misc Misc) bool

func ListCompileDefinitions

func ListCompileDefinitions(defines []interface{}, delimiter string) string

func ListIncludeDirectories

func ListIncludeDirectories(includes []string, delimiter string) string

func OutputFiles

func OutputFiles(outputList []Output) (outputByProducts string, outputFile string, outputType string, customCommands string)

func QuoteArguments added in v0.9.1

func QuoteArguments(cmd string) string

func ReplaceDelimiters

func ReplaceDelimiters(identifier string) string

Types

type Apis added in v0.9.5

type Apis struct {
	API      string  `yaml:"api"`
	Files    []Files `yaml:"files"`
	FromPack string  `yaml:"from-pack"`
}

type BuildFiles

type BuildFiles struct {
	Interface       bool
	Include         ScopeMap
	Source          LanguageMap
	Custom          LanguageMap
	Library         []string
	Object          []string
	PreIncludeLocal []string
}

type Cbuild

type Cbuild struct {
	BuildDescType struct {
		GeneratedBy      string        `yaml:"generated-by"`
		CurrentGenerator struct{}      `yaml:"current-generator"`
		Solution         string        `yaml:"solution"`
		Project          string        `yaml:"project"`
		Context          string        `yaml:"context"`
		Compiler         string        `yaml:"compiler"`
		Board            string        `yaml:"board"`
		BoardPack        string        `yaml:"board-pack"`
		Device           string        `yaml:"device"`
		DevicePack       string        `yaml:"device-pack"`
		Processor        Processor     `yaml:"processor"`
		Packs            []Packs       `yaml:"packs"`
		Optimize         string        `yaml:"optimize"`
		Debug            string        `yaml:"debug"`
		Warnings         string        `yaml:"warnings"`
		LanguageC        string        `yaml:"language-C"`
		LanguageCpp      string        `yaml:"language-CPP"`
		Lto              bool          `yaml:"link-time-optimize"`
		Misc             Misc          `yaml:"misc"`
		Define           []interface{} `yaml:"define"`
		DefineAsm        []interface{} `yaml:"define-asm"`
		AddPath          []string      `yaml:"add-path"`
		AddPathAsm       []string      `yaml:"add-path-asm"`
		OutputDirs       OutputDirs    `yaml:"output-dirs"`
		Output           []Output      `yaml:"output"`
		Components       []Components  `yaml:"components"`
		Apis             []Apis        `yaml:"apis"`
		Linker           Linker        `yaml:"linker"`
		Groups           []Groups      `yaml:"groups"`
		Generators       []struct{}    `yaml:"generators"`
		ConstructedFiles []Files       `yaml:"constructed-files"`
		Licenses         []struct{}    `yaml:"licenses"`
		West             West          `yaml:"west"`
	} `yaml:"build"`
	BaseDir          string
	ContextRoot      string
	SolutionRoot     string
	Languages        []string
	PreIncludeGlobal []string
	LibraryGlobal    []string
	IncludeGlobal    LanguageMap
	UserIncGlobal    LanguageMap
	BuildGroups      []string
	Toolchain        string
	GeneratedFiles   []string
	LinkerLto        bool
}

func (*Cbuild) AddContextLanguage

func (c *Cbuild) AddContextLanguage(language string)

func (*Cbuild) AddRootPrefix added in v0.9.4

func (c *Cbuild) AddRootPrefix(base string, input string) string

func (*Cbuild) AddRootPrefixes added in v0.9.4

func (c *Cbuild) AddRootPrefixes(base string, input []string) []string

func (*Cbuild) AdjustRelativePath

func (c *Cbuild) AdjustRelativePath(option string) string

func (*Cbuild) CMakeAddLibraryCustomFile added in v0.9.1

func (c *Cbuild) CMakeAddLibraryCustomFile(name string, file Files) string

func (*Cbuild) CMakeCreateComponents

func (c *Cbuild) CMakeCreateComponents(contextDir string) error

func (*Cbuild) CMakeCreateGroupRecursively

func (c *Cbuild) CMakeCreateGroupRecursively(parent string, groups []Groups,
	parentAbstractions CompilerAbstractions, parentDefineAsm []interface{}, parentMiscAsm []string) string

func (*Cbuild) CMakeCreateGroups

func (c *Cbuild) CMakeCreateGroups(contextDir string) error

func (*Cbuild) CMakeSetFileProperties

func (c *Cbuild) CMakeSetFileProperties(file Files, abstractions CompilerAbstractions) string

func (*Cbuild) CMakeTargetCompileOptions

func (c *Cbuild) CMakeTargetCompileOptions(name string, scope string, lto bool, misc Misc, preIncludes []string, parent string) string

func (*Cbuild) CMakeTargetCompileOptionsAbstractions

func (c *Cbuild) CMakeTargetCompileOptionsAbstractions(name string, abstractions CompilerAbstractions, languages []string) string

func (*Cbuild) CMakeTargetCompileOptionsGlobal

func (c *Cbuild) CMakeTargetCompileOptionsGlobal(name string, scope string) string

func (*Cbuild) CMakeTargetLinkLibraries

func (c *Cbuild) CMakeTargetLinkLibraries(name string, scope string, libraries ...string) string

func (*Cbuild) ClassifyFiles

func (c *Cbuild) ClassifyFiles(files []Files) BuildFiles

func (*Cbuild) CompilerAbstractions

func (c *Cbuild) CompilerAbstractions(abstractions CompilerAbstractions, language string) string

func (*Cbuild) GetAPIFiles added in v0.9.5

func (c *Cbuild) GetAPIFiles(id string) []Files

func (*Cbuild) GetCompileOptionsLanguageMap

func (c *Cbuild) GetCompileOptionsLanguageMap(lto bool, misc Misc, optionsMap *map[string][]string)

func (*Cbuild) GetLinkLibraries added in v0.9.2

func (c *Cbuild) GetLinkLibraries() (libraries []string)

func (*Cbuild) LanguageSpecificCompileOptions

func (c *Cbuild) LanguageSpecificCompileOptions(language string, options ...string) string

func (*Cbuild) LinkerOptions

func (c *Cbuild) LinkerOptions() (linkerVars string, linkerOptions string)

func (*Cbuild) ListGroupsAndComponents

func (c *Cbuild) ListGroupsAndComponents() []string

func (*Cbuild) MergeIncludes added in v0.9.1

func (c *Cbuild) MergeIncludes(includes ScopeMap, scope string, parent string, addPaths []string, addPathsAsm []string, delPaths []string) ScopeMap

func (*Cbuild) ProcessorOptions

func (c *Cbuild) ProcessorOptions() string

func (*Cbuild) SetFileAsmDefines added in v0.9.1

func (c *Cbuild) SetFileAsmDefines(file Files, parentMiscAsm []string) string

func (*Cbuild) SetOptionsFlags

func (c *Cbuild) SetOptionsFlags(abstractions CompilerAbstractions, language string) string

type CbuildIndex

type CbuildIndex struct {
	BuildIdx struct {
		GeneratedBy string      `yaml:"generated-by"`
		Cdefault    string      `yaml:"cdefault"`
		Csolution   string      `yaml:"csolution"`
		ImageOnly   bool        `yaml:"image-only"`
		TmpDir      string      `yaml:"tmpdir"`
		Cprojects   []Cprojects `yaml:"cprojects"`
		Cbuilds     []Cbuilds   `yaml:"cbuilds"`
		Executes    []Executes  `yaml:"executes"`
	} `yaml:"build-idx"`
	BaseDir string
}

type CbuildSet added in v0.9.1

type CbuildSet struct {
	BuildSet struct {
		GeneratedBy string     `yaml:"generated-by"`
		Contexts    []Contexts `yaml:"contexts"`
		Compiler    string     `yaml:"compiler"`
	} `yaml:"cbuild-set"`
}

type Cbuilds

type Cbuilds struct {
	Cbuild        string   `yaml:"cbuild"`
	Project       string   `yaml:"project"`
	Configuration string   `yaml:"configuration"`
	DependsOn     []string `yaml:"depends-on"`
	West          bool     `yaml:"west"`
}

type Clayers

type Clayers struct {
	Clayer string `yaml:"clayer"`
}

type CompilerAbstractions

type CompilerAbstractions struct {
	Debug       string
	Optimize    string
	Warnings    string
	LanguageC   string
	LanguageCpp string
}

type Components

type Components struct {
	Component   string        `yaml:"component"`
	Condition   string        `yaml:"condition"`
	SelectedBy  string        `yaml:"selected-by"`
	Implements  string        `yaml:"implements"`
	Rtedir      string        `yaml:"rtedir"`
	Optimize    string        `yaml:"optimize"`
	Debug       string        `yaml:"debug"`
	Warnings    string        `yaml:"warnings"`
	LanguageC   string        `yaml:"language-C"`
	LanguageCpp string        `yaml:"language-CPP"`
	Lto         bool          `yaml:"link-time-optimize"`
	Define      []interface{} `yaml:"define"`
	DefineAsm   []interface{} `yaml:"define-asm"`
	Undefine    []string      `yaml:"undefine"`
	AddPath     []string      `yaml:"add-path"`
	AddPathAsm  []string      `yaml:"add-path-asm"`
	DelPath     []string      `yaml:"del-path"`
	Misc        Misc          `yaml:"misc"`
	Files       []Files       `yaml:"files"`
	Generator   Generator     `yaml:"generator"`
	FromPack    string        `yaml:"from-pack"`
}

type Contexts added in v0.9.1

type Contexts struct {
	Context string `yaml:"context"`
}

type Cprojects

type Cprojects struct {
	Cproject string    `yaml:"cproject"`
	Clayers  []Clayers `yaml:"clayers"`
}

type DependenciesMap added in v0.9.5

type DependenciesMap map[string][]string

type Executes added in v0.9.1

type Executes struct {
	Execute   string                 `yaml:"execute"`
	Run       string                 `yaml:"run"`
	Always    map[string]interface{} `yaml:"always,inline"`
	Input     []string               `yaml:"input"`
	Output    []string               `yaml:"output"`
	DependsOn []string               `yaml:"depends-on"`
}

type Files

type Files struct {
	File        string        `yaml:"file"`
	Category    string        `yaml:"category"`
	Scope       string        `yaml:"scope"`
	Language    string        `yaml:"language"`
	Attr        string        `yaml:"attr"`
	Version     string        `yaml:"version"`
	Optimize    string        `yaml:"optimize"`
	Debug       string        `yaml:"debug"`
	Warnings    string        `yaml:"warnings"`
	LanguageC   string        `yaml:"language-C"`
	LanguageCpp string        `yaml:"language-CPP"`
	Lto         bool          `yaml:"link-time-optimize"`
	Define      []interface{} `yaml:"define"`
	DefineAsm   []interface{} `yaml:"define-asm"`
	Undefine    []string      `yaml:"undefine"`
	AddPath     []string      `yaml:"add-path"`
	AddPathAsm  []string      `yaml:"add-path-asm"`
	DelPath     []string      `yaml:"del-path"`
	Misc        Misc          `yaml:"misc"`
}

type Generator

type Generator struct {
	ID       string  `yaml:"id"`
	Path     string  `yaml:"path"`
	FromPack string  `yaml:"from-pack"`
	Files    []Files `yaml:"files"`
}

type Groups

type Groups struct {
	Group       string        `yaml:"group"`
	Groups      []Groups      `yaml:"groups"`
	Files       []Files       `yaml:"files"`
	Optimize    string        `yaml:"optimize"`
	Debug       string        `yaml:"debug"`
	Warnings    string        `yaml:"warnings"`
	LanguageC   string        `yaml:"language-C"`
	LanguageCpp string        `yaml:"language-CPP"`
	Lto         bool          `yaml:"link-time-optimize"`
	Define      []interface{} `yaml:"define"`
	DefineAsm   []interface{} `yaml:"define-asm"`
	Undefine    []string      `yaml:"undefine"`
	AddPath     []string      `yaml:"add-path"`
	AddPathAsm  []string      `yaml:"add-path-asm"`
	DelPath     []string      `yaml:"del-path"`
	Misc        Misc          `yaml:"misc"`
}

type LanguageMap

type LanguageMap map[string][]string

func AppendGlobalIncludes

func AppendGlobalIncludes(includes LanguageMap, elements ScopeMap) LanguageMap

func MergeLanguageCommonIncludes added in v0.9.2

func MergeLanguageCommonIncludes(languages LanguageMap) LanguageMap

type Linker

type Linker struct {
	Regions string        `yaml:"regions"`
	Script  string        `yaml:"script"`
	Define  []interface{} `yaml:"define"`
}

type Maker

type Maker struct {
	Params
	Vars
}

func (*Maker) AddStepSuffix added in v0.9.1

func (m *Maker) AddStepSuffix(name string) string

func (*Maker) BuildDependencies added in v0.9.1

func (m *Maker) BuildDependencies() string

func (*Maker) CMakeCreateRoots added in v0.9.3

func (m *Maker) CMakeCreateRoots(solutionRoot string) error

func (*Maker) CMakeCreateToolchain

func (m *Maker) CMakeCreateToolchain(index int, contextDir string, inc bool) error

func (*Maker) CMakeTargetAddDependencies added in v0.9.1

func (m *Maker) CMakeTargetAddDependencies(name string, dependencies []string) string

func (*Maker) CreateCMakeListsImageOnly added in v0.9.8

func (m *Maker) CreateCMakeListsImageOnly() error

func (*Maker) CreateContextCMakeLists

func (m *Maker) CreateContextCMakeLists(index int) error

func (*Maker) CreateSuperCMakeLists

func (m *Maker) CreateSuperCMakeLists() error

func (*Maker) CreateWestCMakeLists added in v0.9.9

func (m *Maker) CreateWestCMakeLists(index int) error

func (*Maker) ExecutesCommands added in v0.9.4

func (m *Maker) ExecutesCommands(executes []Executes) string

func (*Maker) GenerateCMakeLists

func (m *Maker) GenerateCMakeLists() error

func (*Maker) GetContextDependencies added in v0.9.5

func (m *Maker) GetContextDependencies(execute string, dependsOn []string, deps DependenciesMap) DependenciesMap

func (*Maker) GetExecute added in v0.9.5

func (m *Maker) GetExecute(execute string) Executes

func (*Maker) GetGeneratedFiles added in v0.9.6

func (m *Maker) GetGeneratedFiles(list []string)

func (*Maker) GetIndependentRunAlways added in v0.9.5

func (m *Maker) GetIndependentRunAlways(execute string) (elements []string)

func (*Maker) ListExecutesIOs added in v0.9.4

func (m *Maker) ListExecutesIOs(io string, list []string, run string) string

func (*Maker) ParseCbuildFile

func (m *Maker) ParseCbuildFile(cbuildFile string) (data Cbuild, err error)

func (*Maker) ParseCbuildFiles

func (m *Maker) ParseCbuildFiles() error

func (*Maker) ParseCbuildIndexFile

func (m *Maker) ParseCbuildIndexFile(cbuildIndexFile string) (data CbuildIndex, err error)

func (*Maker) ParseCbuildSetFile added in v0.9.1

func (m *Maker) ParseCbuildSetFile(cbuildSetFile string) (data CbuildSet, err error)

func (*Maker) ProcessToolchain

func (m *Maker) ProcessToolchain() error

type Misc

type Misc struct {
	C       []string `yaml:"C"`
	CPP     []string `yaml:"CPP"`
	CCPP    []string `yaml:"C-CPP"`
	ASM     []string `yaml:"ASM"`
	Link    []string `yaml:"Link"`
	LinkC   []string `yaml:"Link-C"`
	LinkCPP []string `yaml:"Link-CPP"`
	Library []string `yaml:"Library"`
	Lib     []string `yaml:"Lib"`
}

type Options

type Options struct {
	Quiet         bool
	Debug         bool
	Verbose       bool
	UseContextSet bool
}

type Output

type Output struct {
	File string `yaml:"file"`
	Type string `yaml:"type"`
}

type OutputDirs

type OutputDirs struct {
	Intdir  string `yaml:"intdir"`
	Outdir  string `yaml:"outdir"`
	Cprjdir string `yaml:"cprjdir"`
	Rtedir  string `yaml:"rtedir"`
}

type Packs

type Packs struct {
	Pack string `yaml:"pack"`
	Path string `yaml:"path"`
}

type Params

type Params struct {
	Runner         utils.RunnerInterface
	Options        Options
	InputFile      string
	InstallConfigs utils.Configurations
}

type Processor

type Processor struct {
	Fpu              string `yaml:"fpu"`
	Dsp              string `yaml:"dsp"`
	Mve              string `yaml:"mve"`
	Endian           string `yaml:"endian"`
	Trustzone        string `yaml:"trustzone"`
	BranchProtection string `yaml:"branch-protection"`
	Core             string `yaml:"core"`
}

type ScopeMap

type ScopeMap map[string]map[string][]string

type Toolchain

type Toolchain struct {
	Name string
	Path string
}

type Vars

type Vars struct {
	CbuildIndex              CbuildIndex
	CbuildSet                CbuildSet
	Cbuilds                  []Cbuild
	Contexts                 []string
	EnvVars                  utils.EnvVars
	GeneratedFiles           []string
	ToolchainConfigs         map[*semver.Version]Toolchain
	RegisteredToolchains     map[*semver.Version]Toolchain
	SelectedToolchainVersion []*semver.Version
	SelectedToolchainConfig  []string
	SolutionTmpDir           string
	SolutionRoot             string
	SolutionName             string
}

type West added in v0.9.9

type West struct {
	ProjectId string        `yaml:"project-id"`
	AppPath   string        `yaml:"app-path"`
	Board     string        `yaml:"board"`
	Device    string        `yaml:"device"`
	WestDefs  []interface{} `yaml:"west-defs"`
	WestOpt   []string      `yaml:"west-opt"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL