-
Notifications
You must be signed in to change notification settings - Fork 3
/
project.conf
99 lines (83 loc) · 2.67 KB
/
project.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
name: roku-bst-evaluation-foss
# Required BuildStream version
min-version: 2.0
# Subdirectory where elements are stored
element-path: elements
# Aliases are a special include for sources:
aliases:
(@): include/aliases.yml
# Plugins, for various element types and sources:
plugins:
- origin: junction
junction: plugins/buildstream-plugins.bst
elements:
- autotools
- cmake
- make
sources:
- git
- patch
- origin: junction
junction: plugins/bst-plugins-experimental.bst
sources:
- ostree
- patch_queue
# Project Options!
# NOTE: This is currently an absolute mess. Not being able to use conditionals to set
# conditionals is a potential pain point.
# Open BuildStream ticket: https://github.com/apache/buildstream/issues/1770
# TODO: Refine project options (maybe remove entirely?)
options:
host_arch:
type: arch
description: |
Machine arch of the build host.
User should not need to specify, bst will (should) auto-detect.
This is simply here so we can reference the %{host_arch} variable later.
Assuming that we'll support x64 as normal and native MacOS builds:
variable: host_arch
values:
- aarch64
- x86_64
target_arch: # Use this name for (?) conditional statements
type: enum # Not 'arch' as we don't want bst picking one for us, and can have custom ones like 'armhf'
description: |
Machine arch of the cross platform we're cross-compiling to.
TODO: Don't make the user specify this if they specify a "platform" option below.
Open BuildStream ticket: https://github.com/apache/buildstream/issues/1770
Note on %{target_arch_set} below:
Use %{target_arch} for variables as it gets set properly later! (e.g. "armhf" isn't a real arch.)
Don't use %{target_arch_set} directly!
variable: target_arch_set
values:
- aarch64
- arm
- armhf
- x86_64
default: x86_64
platform:
type: enum
description: |
Select a specific cross platform.
By default, "pristine" is used, which does not have any platform-specific items,
or %{target_arch} restrictions.
variable: platform_set
values:
- pristine
- rpi
default: pristine
debug:
type: bool
description: |
Enabling debugging will output images with included debug packages.
default: False
# Global project variables! 'variables.yml' is the file you are most likely looking for.
# It will also select arch- and platform-specific things:
(@):
- include/plugin-fixes.yml
- include/variables.yml
- include/sanity-check.yml
# `bst build` with no other args will build this element:
defaults:
targets:
- image.bst