CCGO¶
A modern C++ cross-platform build system and project generator that simplifies building native libraries for Android, iOS, macOS, Windows, Linux, OpenHarmony, and Kotlin Multiplatform.
Features¶
- Universal Cross-Platform: Build for 8+ platforms from a single codebase
- Zero Configuration: Works out-of-box with sensible defaults
- Docker-Based Builds: Build any platform on any OS without local toolchain setup
- Unified Publishing: Publish to Maven, CocoaPods, SPM, OHPM, and Conan with one command
- Smart Dependency Management: Git, path, and registry-based dependencies with lockfile support
- Template-Driven: Generate new projects with modern C++ best practices
- Git Integration: Automatic versioning and commit management
- CMake Integration: Leverage CMake's power with simplified configuration
Supported Platforms¶
| Platform | Architectures | Output Formats |
|---|---|---|
| Android | armeabi-v7a, arm64-v8a, x86, x86_64 | AAR, Static/Shared libs |
| iOS | armv7, arm64, x86_64, arm64-simulator | Framework, XCFramework |
| macOS | x86_64, arm64 (Apple Silicon) | Framework, XCFramework |
| Windows | x86, x86_64 | DLL, Static libs (MSVC/MinGW) |
| Linux | x86_64, aarch64 | Shared/Static libs |
| OpenHarmony | armeabi-v7a, arm64-v8a, x86_64 | HAR packages |
| watchOS | armv7k, arm64_32, x86_64 | Framework, XCFramework |
| tvOS | arm64, x86_64 | Framework, XCFramework |
Quick Links¶
- Installation - Get CCGO installed
- Quick Start - Create your first project in 5 minutes
- Configuration - Configure CCGO for your project
- Platforms - Platform-specific build guides
- CLI Reference - Complete command-line reference
Example Usage¶
# Create a new project
ccgo new myproject
# Build for Android
cd myproject/myproject
ccgo build android --arch arm64-v8a,armeabi-v7a
# Build for iOS (requires macOS)
ccgo build ios
# Build for Windows using Docker (works on any OS)
ccgo build windows --docker
# Run tests
ccgo test
# Publish to Maven Local
ccgo publish android --registry local
Why CCGO?¶
- Simplicity: One tool, one config file (CCGO.toml), all platforms
- Speed: Parallel builds, incremental compilation, Docker caching
- Flexibility: Support both Python-based and CMake-only workflows
- Modern: Built with Rust for reliability and performance
- Universal: Docker builds enable any-to-any cross-compilation
- Team-Friendly: Lockfile ensures reproducible builds across team members
Architecture¶
CCGO consists of four main components:
- ccgo: Python/Rust CLI tool that orchestrates builds and manages projects
- ccgo-template: Copier-based template for generating new C++ projects
- ccgo-gradle-plugins: Gradle convention plugins for Android/KMP builds
- ccgo-now: Example project demonstrating CCGO capabilities
Community¶
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - Questions and community support
- Roadmap - See what's coming next
License¶
CCGO is licensed under the MIT License. See LICENSE for details.