The Z Cross Build Environment
Project description
Z Cross Build Environment
Introduction
The Z cross build environment is a tool for managing cross-compile environments. It comes with concurrent building, dependency tracking and other useful features.
Usage
Installation
ZCBE is available on PyPI:
pip install zcbe
Tutorial
-
Understanding concepts:
- A "build" is an environment with multiple projects.
- A "project" is a single package. They may depend on other projects.
-
The first step is to create a basic directory structure. ZCBE uses TOML as its configuration language.
. |-- build.toml |-- mapping.toml |-- zcbe/ |-- PROJECT.zcbe/ |-- conf.toml |-- build.sh |-- ...
The sources of projects can be anywhere. But generally it's suggested that you put them somewhere under the build's root directory.
-
Then we can populate the configurations.
build.toml
: This file describes how to prepare environment. For example, the installation prefix and host triplets are set in this file. Go totemplates/build.toml
for an example.mapping.toml
: This file sets the working directory for each projects. This directory can be absolute or relative to build root. An example is attemplates/mapping.toml
.zcbe/*.zcbe
: Each project has a subdirectory here for holding their configuration, scripts and data.zcbe/*.zcbe/conf.toml
: This file contains the information about a project. The dependencies are specified here. An example is also available attemplates/conf.toml
.zcbe/*.zcbe/build.sh
: This is the build script.
-
Start building!
- To build a single project and its dependencies, run
zcbe <NAME>
. - To build everything, pass
-a
. - To silence
stdout
, pass-s
. - By default only one process is run at a time. To build concurrently, pass
-j <N>
.
See CLI Usage Section for a complete list of options.
- To build a single project and its dependencies, run
Contribution
For security-related issues, see SECURITY.md.
Contributions are very welcome on GitHub. Please try to follow PEP-8 coding guidelines and make sure test suites pass before submitting.
For new features and bug fixes, corresponding tests must be added.
The license is Apache-2.0.
Usage References and Specifications
CLI Usage
usage: zcbe [-h] [-w] [-W WARNING] [-B] [-C CHDIR] [-o FILE] [-e FILE]
[-f FILE] [-p PREFIX] [-t TARGET_TRIPLET] [-m BUILD_NAME]
[-j JOBS] [-a] [-s] [-n] [-u] [-y] [-H ABOUT]
[PROJ ...]
The Z Cross Build Environment
positional arguments:
PROJ List of projects to build
optional arguments:
-h, --help show this help message and exit
-w Suppress all warnings
-W WARNING Modify warning behavior
-B, --rebuild, --always-make, --always-build
Force build requested projects and dependencies
-C CHDIR, --chdir CHDIR, --directory CHDIR
Change directory to
-o FILE, --stdout-to FILE
Redirect stdout to FILE ('{n}' expands to the name of
the project)
-e FILE, --stderr-to FILE
Redirect stderr to FILE ('{n}' expands to the name of
the project)
-f FILE, --file FILE, --build-toml FILE
Read FILE as build.toml
-p PREFIX, --prefix PREFIX, --override-prefix PREFIX
Override value for prefix
-t TARGET_TRIPLET, --target-triplet TARGET_TRIPLET, --override-target TARGET_TRIPLET
Override value for target triplet
-m BUILD_NAME, --build-name BUILD_NAME, --override-build-name BUILD_NAME
Override value for build name
-j JOBS, --jobs JOBS Number of maximum concurrent jobs
-a, --all Build all projects in mapping.toml
-s, --silent Silence make standard output(short for -o /dev/null)
-n, --dry-run, --just-print, --recon
Don't actually run any commands
-u, --show-unbuilt List unbuilt projects and exit
-y, --yes Assume yes for all questions
-H ABOUT, --about ABOUT
Help on a topic("topics" for a list of topics)
Environment Specification
In the build script, there are three environment variables set by ZCBE:
ZCTOP
: full path to the root of the build. That is, wherezcbe
is invoked or where the-C
option points.ZCPREF
: full path to the installation prefix.ZCHOST
: GNU host triplet to cross compile for.
build.toml
Specification
Tables:
info
: required.
Keys:build_name
: name of this build environment. Required unless-m
command-line option is set.prefix
: installation prefix. Required unless-p
command-line option is set.hostname
: GNU triplet of the cross toolchain. Required unless-t
command-line option is set.mapping
: Override path tomapping.toml
. Optional. The default value is"mapping.toml"
.
env
: optional. Contains any number of environmental variables which will be set for all projects.deps
: optional.
Keys:build
: List of global build-time dependencies. Optional.
mapping.toml
Specification
Tables:
mapping
: required. Contains any number of key-value mappings from the project name to the project path, either absolute or relative to build root.
conf.toml
Specification
Tables:
package
: required.
Keys:name
: name of this project. Required.ver
: version of this project. Required.
env
: optional. Contains any number of environmental variables which will be set for only this projects.deps
: optional.
Keys:build
: List of build-time dependencies. Optional.req
: List of dependencies on other projects. Optional.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file zcbe-0.5.1.tar.gz
.
File metadata
- Download URL: zcbe-0.5.1.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
84601f01bc12f6d0b4aa90c345d69a1c785e7dad9d2f874b0278ca793f79c0d2
|
|
MD5 |
ea8e56ba778f70108743f0ee6273ab93
|
|
BLAKE2b-256 |
16cd0975f326f7c634cf204ec4b5bf45d165c36274ef8be3d4cc8248fa8e6a5a
|
File details
Details for the file zcbe-0.5.1-py3-none-any.whl
.
File metadata
- Download URL: zcbe-0.5.1-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
64072cd1712acf26534170d7c9b7a4e0e6d50a9532075ec728ff9e1b5c300841
|
|
MD5 |
abbe4975ea17bebf9106bd7d64156be1
|
|
BLAKE2b-256 |
497200330f6f42495508e50fdd5df1089ed9824373c8a0f3fdc03597d19684f6
|