OBT (Orkid Build Tool)
Build environment orchestrator for complex multi-language projects
What is OBT?
OBT manages build environments for complex software projects with extensive dependency trees. Unlike package managers that install system-wide, OBT creates isolated staging environments where all your project dependencies coexist without polluting your system.
Key Features
- 🔧 100+ Pre-configured Dependencies - Boost, Qt5, OpenCV, LLVM, and more
- 🎯 Project Composition - Combine multiple projects with
--projectarguments - 🌍 Cross-Platform - Identical commands on Linux, macOS, and WSL2
- 🏗️ Multi-Language - C++, Python, Rust, JavaScript, and more
- 📦 Isolated Environments - No system pollution, everything in staging directories
- 🎨 Extensible - Add custom dependencies and modules per project
Quick Start
# Install OBT
pip3 install ork.build
# Create environment
obt.env.create.py --stagedir ~/.obt-staging
# Launch with projects
obt.env.launch.py --stagedir ~/.obt-staging --numcores 16 \
--project ~/projects/myproject \
--project ~/projects/shared
# Build dependencies
obt.dep.build.py boost
obt.dep.build.py opencv
Documentation
Getting Started
- 📚 Quick Start Guide - Get up and running in minutes
- 🎯 Examples - Real-world usage patterns
Reference
- 📖 Technical Design Document - Architecture, concepts, and FAQ
- 🏗️ Project Composition - How projects integrate
Advanced Topics
- 🐳 Docker Support - Containerized development environments
- 🔮 Subspaces - Isolated execution environments
- ⚡ FPGA/Vivado - Hardware development support
Requirements
- Python 3.10+
- Virtual environment (PEP-668 compliance)
- Clean base shell environment (why?)
Platform-Specific
macOS: Xcode, Homebrew
Linux: Build essentials, sudo access
Windows: WSL2 with Ubuntu
Project Composition
Make any project OBT-aware by adding:
myproject/
├── obt.project/
│ ├── obt.manifest # {"name": "myproject", "autoexec": "scripts/init_env.py"}
│ └── scripts/
│ └── init_env.py # Environment setup script
Then compose multiple projects:
obt.env.launch.py --project project1 --project project2 --project project3
Philosophy
OBT doesn't replace package managers or build systems - it orchestrates them. When you need a library, you need it. OBT ensures you get it with the right version, in the right place, without breaking anything else.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
License
BSD 3-Clause License - See LICENSE and license.rst for details.
Copyright (c) 2010-2024, Michael T. Mayers. All rights reserved.
Metadata
Release files for ork.build 0.0.317
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ork_build-0.0.317.tar.gz | 635.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ork_build-0.0.317-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / ork_build-0.0.317.tar.gz
| Download URL | ork_build-0.0.317.tar.gz |
|---|---|
| Size | 635.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8252aebd80c99948b3bc004268065da358bd3aedb58ac272fd089b7c8c38a26c
|
|
BLAKE2b-256 checksum How to use checksums |
8d2d51e2f2aa3a55d023d0444e93dbcf3adba9ff020c8f9b9e87a862d5bb4d98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / ork_build-0.0.317-py3-none-any.whl
| Download URL | ork_build-0.0.317-py3-none-any.whl |
|---|---|
| Size | 923.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8039a32a9f80297ebfc04e18ffc271b03cb05f4070cdf0fa9e211f21e55046e
|
|
BLAKE2b-256 checksum How to use checksums |
f3984dbee0331320367aa1d2849d8005f0207328e8f3d44c11284bf92c0f2556
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|