Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Configuration ¶
type Configuration struct { // Project name. Project string `yaml:"Project"` // Short project description. Description string `yaml:"Description"` // Version (ex. 0.0.1). Version string `yaml:"Version"` // Organization name. Organization string `yaml:"Organization"` // Organization contact information. Contact string `yaml:"Contact"` // List of maintainers. Maintainers []Maintainer `yaml:"Maintainers"` // List of root-level features. Features *[]Feature `yaml:"Features"` // Project website. Site string `yaml:"Site"` // Project repository. Repository string `yaml:"Repository"` // Local path to project logo image. Logo string `yaml:"Logo"` // Project license. License string `yaml:"License"` // List o runnable scripts. Scripts *[]Script `yaml:"Scripts"` // List of build profiles. Profiles []Profile `yaml:"Profiles"` // List of third-party Conan packages. Dependencies *[]Dependency `yaml:"Dependencies"` // List of targets. Targets *[]Target `yaml:"Targets"` }
type Dependency ¶
type Dependency struct { // The package manager or source to use when fetching the package. From string `yaml:"from"` // The package string. This should be in the form of // NAME/(VERSION or TAG) Package string `yaml:"package"` // The URL or path to the resource. Path string `yaml:"path"` // The dependency imports. Imports []DependencyImport `yaml:"imports"` }
type DependencyImport ¶
type Feature ¶
type Feature struct { // Other properties will only be evaluated if this property evaluates to true. Condition *string `yaml:"if"` // List of CMake instructions. Scripts *[]string `yaml:"scripts"` // List of target definitions. Definitions *[]string `yaml:"defines"` // The variable identifier. Key *string `yaml:"key"` // Optional description. This is mandatory for user provided options. Description *string `yaml:"description"` // The value of the variable. Value *string `yaml:"value"` }
type Maintainer ¶
type Profile ¶
type Profile struct { // Profile name. Name string `yaml:"id"` // Profile description. Description string `yaml:"description"` // Build type (ex. Debug or Release). Type string `yaml:"type"` // Optional operating system (ex. Windows, Linux, macOS). System string `yaml:"system"` // The C++ compiler. Compiler string `yaml:"compiler"` // Optional system architecture. Arch string `yaml:"arch"` // List of option maps. Variables []map[string]string `yaml:"options"` // List of linker flags. LinkFlags []string `yaml:"flags.link"` // List of compiler flags. CompileFlags []string `yaml:"flags.compile"` }
type Resource ¶
type Resource struct { // Optional prefix that will be prepended to the resource alias. Prefix *string `yaml:"prefix"` // Optional module name if this resource group describes a QML module. Module *string `yaml:"module"` // List of files used by this resource group. You may use // regular expression. Files []string `yaml:"files"` }
type Script ¶
type Script struct { // Script name. Name string `yaml:"name"` // Script description. Description string `yaml:"description"` // List of commands this script will run. Commands []string `yaml:"commands"` // Optional dependencies. Requires *[]string `yaml:"requires"` // Optional products (i.e. files this script will produce). Products *[]string `yaml:"products"` }
type Target ¶
type Target struct { // The name used to identify the target. Name string `yaml:"name" jsonschema:"required"` // A short description of the target. You can access this variable in C/C++ by // including "version.h" and accessing EXE_TARGET_DESCRIPTION. Description string `yaml:"description" jsonschema:"required"` // The type of target. Type can be "executable", "application", "shared-library", // "static-library", "header-library", "plugin", or "test". Type string `yaml:"type" jsonschema:"required"` // Set this property to true if you want to export a library under the // project namespace. This will automatically handle installation. Export *bool `yaml:"export"` // The target (and its unique dependencies) are only enabled when this condition // evaluates to true. Set the value to 'SNAKE_ALWAYS_BUILD' to have no requirements; do // not set it to an empty value as that would evaluate to false. Requirement string `yaml:"requirement" jsonschema:"required"` // The *relative* path to the source and header files. The TARGET_SOURCE_DIR variable // is set to the absolute path and can be used by your configuration. Path string `yaml:"path" jsonschema:"required"` // List of conditional features acquired by this target. These // are executed in the order they are provided. Features *[]TargetFeature `yaml:"features"` }
type TargetFeature ¶
type TargetFeature struct { Feature `yaml:",inline"` // List of libraries used by the target. If the name is separated by '::' then // the left side will be used as the package name for find_package. Qt6 components // are automatically handled. Libraries *[]TargetLibrary `yaml:"libraries"` // List of installation rules used by the target. Installs *[]Install `yaml:"installs"` // List of resources that will be embedded into the target. Resources *[]Resource `yaml:"resources"` // List of imported plugins. Plugins *[]string `yaml:"plugins"` // Map of target properties. Properties *[]map[string]string `yaml:"properties"` // List of enabled tests. Only active when target type is "test". Tests *[]Test `yaml:"tests"` // Qt QML module definition. Module *QMLModule `yaml:"module"` }
type TargetLibrary ¶
Click to show internal directories.
Click to hide internal directories.