blob: c2b91a55925ead56a7d7dbc7ab0c137dd032e569 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Package profile defines types for the implementation of Vanadium profiles.
package profile
import "v.io/v23/services/build"
// Library describes a shared library that applications may use.
type Library struct {
// Name is the name of the library.
Name string
// MajorVersion is the major version of the library.
MajorVersion string
// MinorVersion is the minor version of the library.
MinorVersion string
}
// Specification is how we represent a profile internally. It should
// provide enough information to allow matching of binaries to devices.
type Specification struct {
// Label is a human-friendly concise label for the profile,
// e.g. "linux-media".
Label string
// Description is a human-friendly description of the profile.
Description string
// Arch is the target hardware architecture of the profile.
Arch build.Architecture
// Os is the target operating system of the profile.
Os build.OperatingSystem
// Format is the file format supported by the profile.
Format build.Format
// Libraries is a set of libraries the profile requires.
Libraries set[Library]
}