blob: 5b783b727ab8e1fc9a819cb0e7d7ccc2564ff6ef [file] [log] [blame]
Jiri Simsa756772c2015-03-25 15:40:54 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Jiri Simsa5293dcb2014-05-10 09:56:38 -07005// Package profile contains implementation and internal interfaces and
Suharsh Sivakumard1cc6e02015-03-16 13:58:49 -07006// types used by the implementation of Vanadium profiles.
Jiri Simsa5293dcb2014-05-10 09:56:38 -07007package profile
8
Todd Wang94c9d0b2015-04-01 14:27:00 -07009import "v.io/v23/services/build"
Jiri Simsa5293dcb2014-05-10 09:56:38 -070010
11// Library describes a shared library that applications may use.
12type Library struct {
Jiri Simsaddbfebb2014-06-20 15:56:06 -070013 // Name is the name of the library.
14 Name string
15 // MajorVersion is the major version of the library.
16 MajorVersion string
17 // MinorVersion is the minor version of the library.
18 MinorVersion string
Jiri Simsa5293dcb2014-05-10 09:56:38 -070019}
20
21// Specification is how we represent a profile internally. It should
Bogdan Caprita2b219362014-12-09 17:03:33 -080022// provide enough information to allow matching of binaries to devices.
Jiri Simsa5293dcb2014-05-10 09:56:38 -070023type Specification struct {
Bogdan Caprita54ae80e2015-01-20 13:37:52 -080024 // Label is a human-friendly concise label for the profile,
25 // e.g. "linux-media".
26 Label string
Jiri Simsa2f8bc272014-07-16 12:29:15 -070027 // Description is a human-friendly description of the profile.
Jiri Simsaddbfebb2014-06-20 15:56:06 -070028 Description string
Bogdan Caprita54ae80e2015-01-20 13:37:52 -080029 // Arch is the target hardware architecture of the profile.
30 Arch build.Architecture
Todd Wang53a4e2e2015-03-18 10:54:54 -070031 // Os is the target operating system of the profile.
32 Os build.OperatingSystem
Jiri Simsa2f8bc272014-07-16 12:29:15 -070033 // Format is the file format supported by the profile.
34 Format build.Format
35 // Libraries is a set of libraries the profile requires.
36 Libraries set[Library]
Jiri Simsa5293dcb2014-05-10 09:56:38 -070037}