| # Project name |
| name: webkit-sdk |
| |
| # The minimum base BuildStream version |
| min-version: 2.0 |
| |
| # Where elements are stored |
| element-path: elements |
| |
| fatal-warnings: |
| - overlaps |
| |
| (@): |
| - freedesktop-sdk.bst:include/runtime.yml |
| |
| # Options to specify for the project, these provide |
| # command line switches which control the behavior of |
| # conditional directives in the element.bst files. |
| # |
| options: |
| arch: |
| type: arch |
| description: Machine architecture |
| variable: arch |
| values: |
| - aarch64 |
| - x86_64 |
| |
| bootstrap_build_arch: |
| type: arch |
| description: Bootstrap build machine architecture |
| variable: bootstrap_build_arch |
| values: |
| - aarch64 |
| - x86_64 |
| |
| # Source aliases. |
| # |
| # These are used in the individual element.bst files in |
| # place of specifying full uris. |
| # |
| # The location from where source code is downloaded can |
| # be changed without triggering a rebuild. |
| # |
| aliases: |
| ffmpeg: https://git.ffmpeg.org/ |
| gitlab_freedesktop_org: https://gitlab.freedesktop.org/ |
| github_com: https://github.com/ |
| #(github_files is an alias for the same url as github, but doesn't use the same mirror) |
| github_files: https://github.com/ |
| gitlab_com: https://gitlab.com/ |
| gitlab_gnome_org: https://gitlab.gnome.org/ |
| raw_githubusercontent_com: https://raw.githubusercontent.com/ |
| gnome_downloads: https://download.gnome.org/sources/ |
| ruby_gems: https://rubygems.org/downloads/ |
| kde: https://invent.kde.org/qt/qt/ |
| pypi: https://files.pythonhosted.org/packages/ |
| vlc: https://code.videolan.org/ |
| wpe: https://wpewebkit.org/releases/ |
| crates: https://static.crates.io/ |
| |
| # Some overrides to the default sandbox execution environment |
| # |
| environment: |
| LC_ALL: en_US.UTF-8 |
| LD_LIBRARY_PATH: '%{libdir}' |
| PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin |
| PKG_CONFIG_PATH: /usr/local/lib/pkgconfig:%{libdir}/pkgconfig |
| (?): |
| - arch == "x86_64": |
| CFLAGS: "%{flags_x86_64}" |
| CXXFLAGS: "%{flags_x86_64}" |
| LDFLAGS: "%{ldflags_defaults}" |
| - arch == "aarch64": |
| CFLAGS: "%{flags_aarch64}" |
| CXXFLAGS: "%{flags_aarch64}" |
| LDFLAGS: "%{ldflags_defaults}" |
| |
| # Some overrides to element configuration based on type |
| # |
| # Here we can set a project wide options for various build systems, |
| # e.g. we can add --disable-gtk-doc to every `./configure` line. |
| elements: |
| autotools: |
| variables: |
| conf-global: --disable-static --disable-Werror --host=%{triplet} --build=%{triplet} |
| |
| # Temporary workaround to avoid regenerating existing |
| # configure scripts when building tarballs. |
| # |
| # We can remove this after addressing the upstream issue: |
| # |
| # https://gitlab.com/BuildStream/buildstream/issues/256 |
| # |
| # XXX: updating config.{sub,guess} would be still useful in that case |
| # to fix compilation on recent architectures such as aarch64. |
| autogen: | |
| export NOCONFIGURE=1 |
| if [ -x %{conf-cmd} ]; then cp -f /usr/share/automake*/config.{sub,guess} %{conf-aux} |
| elif [ -x autogen ]; then ./autogen |
| elif [ -x autogen.sh ]; then ./autogen.sh |
| elif [ -x bootstrap ]; then ./bootstrap |
| elif [ -x bootstrap.sh ]; then ./bootstrap.sh |
| else autoreconf -ivf |
| fi |
| # the directory where config.sub and config.guess are stored |
| conf-aux: . |
| |
| cmake: |
| variables: |
| cmake-global: -DCMAKE_BUILD_TYPE=RelWithDebInfo |
| generator: Ninja |
| distutils: |
| variables: |
| prefix: /usr/local |
| python-install: '%{python} setup.py install --root "%{install-root}"' |
| fix-pyc-timestamps: '' |
| config: |
| install-commands: |
| (>): |
| # There's no way to get the setup.py to install this in the right place. |
| - | |
| if [ -d '%{install-root}/usr/lib/pkgconfig/' ]; then |
| mkdir -p %{install-root}/usr/%{lib}/ |
| mv -f %{install-root}/usr/lib/pkgconfig/ %{install-root}/usr/%{lib}/ |
| fi |
| meson: |
| variables: |
| meson-global: --buildtype=plain --auto-features=enabled |
| pip: |
| variables: |
| pip: pip3 |
| fix-pyc-timestamps: "true" |
| config: |
| install-commands: |
| - | |
| %{pip} install --no-build-isolation --no-deps --root=%{install-root} --prefix=%{prefix} . |
| filter: |
| config: |
| include-orphans: true |
| |
| sources: |
| git_repo: |
| config: |
| ref-format: git-describe |
| cargo: |
| config: |
| url: crates:crates |
| |
| split-rules: |
| devel: |
| (>): |
| - '%{libdir}/cmake' |
| - '%{libdir}/cmake/**' |
| - '%{libdir}/cmake/**' |
| - '%{datadir}/gir-1.0/**' |
| vm: |
| - '%{datadir}/dbus-1/**' |
| |
| # Define some behavior for `bst shell` |
| # |
| shell: |
| |
| # Default command for `bst shell`, we prefer bash, and disable |
| # parsing of profile and rc files so that the prompt BuildStream |
| # sets is not overwritten. |
| command: ['bash', '--noprofile', '--norc', '-i'] |
| |
| # Some environment variables to inherit from the host environment |
| environment: |
| LANG: '$LANG' |
| DISPLAY: '$DISPLAY' |
| DBUS_SESSION_BUS_ADDRESS: '$DBUS_SESSION_BUS_ADDRESS' |
| XDG_RUNTIME_DIR: '$XDG_RUNTIME_DIR' |
| |
| # Inform applications which use pulseaudio of the server socket |
| PULSE_SERVER: 'unix:${XDG_RUNTIME_DIR}/pulse/native' |
| |
| # Some things to mount into the sandbox |
| host-files: |
| # Understand user inherited uid/gid |
| - '/etc/passwd' |
| - '/etc/group' |
| # Allow network resolution |
| - '/etc/resolv.conf' |
| |
| # Allow access to plausible video devices, |
| # declare these optional to avoid meaningless warnings |
| - path: '/dev/dri' |
| optional: true |
| - path: '/dev/mali' |
| optional: true |
| - path: '/dev/mali0' |
| optional: true |
| - path: '/dev/umplock' |
| optional: true |
| - path: '/dev/nvidiactl' |
| optional: true |
| - path: '/dev/nvidia0' |
| optional: true |
| - path: '/dev/nvidia-modeset' |
| optional: true |
| |
| # Allow access to sysfs, needed for local device discovery |
| - '/sys' |
| |
| # Allow access to the user runtime directory, this |
| # will include the pulseaudio socket along with some |
| # other things. |
| - '${XDG_RUNTIME_DIR}' |
| |
| variables: |
| sdk-branch: "23.08" |
| sdk-branch-extra: "%{sdk-branch}-extra" |
| gcc_arch: "%{arch}" |
| abi: "gnu" |
| gcc_triplet: "%{gcc_arch}-linux-%{abi}" |
| triplet: "%{arch}-unknown-linux-%{abi}" |
| lib: "lib/%{gcc_triplet}" |
| sbindir: "%{bindir}" |
| sysconfdir: "/etc" |
| localstatedir: "/var" |
| indep-libdir: "%{prefix}/lib" |
| debugdir: "%{indep-libdir}/debug" |
| common_flags: "-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions\ |
| \ -fstack-protector-strong -grecord-gcc-switches" |
| flags_x86_64: "-march=x86-64 -mtune=generic %{common_flags} -fasynchronous-unwind-tables\ |
| \ -fstack-clash-protection -fcf-protection" |
| flags_aarch64: "%{common_flags} -fasynchronous-unwind-tables -fstack-clash-protection" |
| ldflags_defaults: "-Wl,-z,relro,-z,now -Wl,--as-needed -L%{libdir}" |
| |
| plugins: |
| - origin: junction |
| junction: plugins/buildstream-plugins.bst |
| elements: |
| - autotools |
| - meson |
| - pip |
| - cmake |
| - make |
| sources: |
| - cargo |
| - patch |
| |
| - origin: junction |
| junction: plugins/bst-plugins-experimental.bst |
| elements: |
| - flatpak_image |
| - flatpak_repo |
| - collect_manifest |
| - qmake |
| - makemaker |
| sources: |
| - git_module |
| - git_repo |
| - zip |