summaryrefslogtreecommitdiff
path: root/buildstream/data/projectconfig.yaml
blob: 5ebed682d135bbf4f8585099d51925489d869575 (plain)
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# Default BuildStream project configuration.

# Project name
#
# name: myproject

# Base project relative element path, elements will be loaded
# from this base.

element-path: .

# Alias configuration
#
# Aliases are entirely project specific, they are
# configured as a simple dictionary, example:
#
# aliases:
#   baserock: git://git.baserock.org/baserock/
#   freedesktop: git://anongit.freedesktop.org/


# Plugin path configuration
#
# You may specify one or more project relative paths to
# subdirectories where plugins should be loaded from.
#
# plugins:
#
#   elements:
#   - plugins/local-elements
#   - plugins/shared-elements
#
#   sources:
#   - plugins/local-sources


# Variable Configuration
#
# You may override the defaults of variables on a project wide
# basis by specifying the 'variables' attribute.
#
# The defaults for this version of buildstream are listed
# below.
#
variables:

  # Maximum number of parallel build processes within a given
  # build, support for this is conditional on the element type
  # and the build system used (any element using 'make' can
  # implement this).
  #
  # Note: this value defaults to the number of cores available
  max-jobs: 4

  # Path configuration, to be used in build instructions.
  #
  prefix: "/usr"
  exec_prefix: "%{prefix}"
  bindir: "%{exec_prefix}/bin"
  sbindir: "%{exec_prefix}/sbin"
  libexecdir: "%{exec_prefix}/libexec"
  datadir: "%{prefix}/share"
  sysconfdir: "/etc"
  sharedstatedir: "%{prefix}/com"
  localstatedir: "/var"
  lib: "lib"
  libdir: "%{prefix}/%{lib}"
  debugdir: "%{libdir}/debug"
  includedir: "%{prefix}/include"
  docdir: "%{datadir}/doc"
  infodir: "%{datadir}/info"
  mandir: "%{datadir}/man"

  # Indicates the default build directory where input is
  # normally staged
  build-root: /buildstream/build

  # Indicates the build installation directory in the sandbox
  install-root: /buildstream/install

  # Define some patterns which might be used in multiple
  # elements
  strip-binaries: |

    find "%{install-root}" -type f \
      '(' -perm -111 -o -name '*.so*' \
          -o -name '*.cmxs' -o -name '*.node' ')' \
      -exec sh -ec \
      'read -n4 hdr <"$1" # check for elf header
       if [ "$hdr" != "$(printf \\x7fELF)" ]; then
           exit 0
       fi
       debugfile="%{install-root}%{debugdir}/$(basename "$1")"
       mkdir -p "$(dirname "$debugfile")"
       objcopy --only-keep-debug "$1" "$debugfile"
       chmod 644 "$debugfile"
       strip --remove-section=.comment --remove-section=.note --strip-unneeded "$1"
       objcopy --add-gnu-debuglink "$debugfile" "$1"' - {} ';'


# Base sandbox environment, can be overridden by plugins
environment:
  PATH: /usr/bin:/bin:/usr/sbin:/sbin
  SHELL: /bin/sh
  TERM: dumb
  USER: tomjon
  USERNAME: tomjon
  LOGNAME: tomjon
  LC_ALL: C
  HOME: /tmp
  TZ: UTC

# List of environment variables which should not be taken into
# account when calculating a cache key for a given element.
#
environment-nocache: []


# Defaults for the 'split-rules' public data found on elements
# in the 'bst' domain.
#
# These define patterns for categorizing the output of build
# elements so that selective composition can be performed by
# plugins later on.
#
# Elements may extend these rules by adding entries to the
# various split domains either in a plugin definition or
# in a project element declaration.
#
# Note that the split rules reported by
# Element.get_public_data('bst') will have any variables for
# the given element already expanded.
#
split-rules:

  # The runtime domain includes whatever is needed for the
  # built element to run, this includes stripped executables
  # and shared libraries by default.
  runtime:
  - |
    %{bindir}/*
  - |
    %{sbindir}/*
  - |
    %{libexecdir}/*
  - |
    %{libdir}/lib*.so*

  # The devel domain includes additional things which
  # you may need for development.
  #
  # By default this includes header files, static libraries
  # and other metadata such as pkgconfig files, m4 macros and
  # libtool archives.
  devel:
  - |
    %{includedir}
  - |
    %{includedir}/**
  - |
    %{libdir}/lib*.a
  - |
    %{libdir}/lib*.la
  - |
    %{libdir}/pkgconfig/*.pc
  - |
    %{datadir}/pkgconfig/*.pc
  - |
    %{datadir}/aclocal/*.m4

  # The debug domain includes debugging information stripped
  # away from libraries and executables
  debug:
  - |
    %{debugdir}
  - |
    %{debugdir}/**

  # The doc domain includes documentation
  doc:
  - |
    %{docdir}
  - |
    %{docdir}/**
  - |
    %{infodir}
  - |
    %{infodir}/**
  - |
    %{mandir}
  - |
    %{mandir}/**

  # The locale domain includes translations etc
  locale:
  - |
    %{datadir}/locale
  - |
    %{datadir}/locale/**
  - |
    %{datadir}/i18n
  - |
    %{datadir}/i18n/**
  - |
    %{datadir}/zoneinfo
  - |
    %{datadir}/zoneinfo/**

# Element Overrides
#
# Base attributes declared by element default yaml files
# can be overridden on a project wide basis. The elements
# dictionary can be used to override variables, environments
# or plugin specific configuration data as shown below.
#
#
# elements:
#
#   autotools:
#
#     variables:
#       bindir: "%{prefix}/bin"
#
#     config:
#       configure-commands: ...
#
#     environment:
#       PKG_CONFIG_PATH=%{libdir}/pkgconfig
#