diff --git a/README.md b/README.md index 54cffd0..a5d14cb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,62 @@ # cpp-build-system +A cross-platform C++ project template and lightweight package manager built on **CMake**, **Docker**, and **Jenkins CI**. + + +Designed to produce **single-binary, statically linked executables** on Linux using **musl-libc**, and **MinGW64** builds that are **as static as possible** โ€” all reproducibly built inside **Alpine Linux containers**. + + +Supports **embedding Flutter UIs** directly within native C++ applications. + + +All builds are orchestrated through project scripts โ€” **direct CMake invocation is not supported.** + +--- + +## โœจ Features + +- ๐Ÿงฑ **Static Linux builds** using **musl-libc** inside **Alpine containers** +- ๐ŸชŸ **MinGW64 cross-builds** from Alpine (static except core Win32 runtime) +- ๐Ÿงฉ **MSYS2 builds** as fallback or for testing +- ๐Ÿณ **Alpine-based Docker environments** for reproducible builds +- ๐Ÿค– **Single Jenkins pipeline** orchestrating Win64 + Linux x64 + Linux aarch64 +- ๐Ÿค– **Single Jenkins pipeline** orchestrating macOS x86-64 + macOS aarch64 +- ๐Ÿ’  **Flutter embedding support** for modern native UIs +- ๐Ÿงฐ **Root-level project generator** (`create_project.sh` / `.cmd`) +- ๐Ÿงผ Ready for `clang-format`, `clang-tidy`, and CI automation + +--- + +## ๐Ÿš€ Getting Started + +### 1๏ธโƒฃ Clone the Build System +```bash +git clone https://git.fifthgrid.com/sgraves/cpp-build-system.git +git clone https://github.com/sgraves76/cpp-build-system.git +cd cpp-build-system +``` + +--- + +### 2๏ธโƒฃ Create a New Project +Run the root-level `create_project.sh` with: +1. The **project name** +2. The **parent directory** where the new project should live + +Example: +```bash +./create_project.sh MyApp ~/dev +``` +This creates: +``` +~/dev/MyApp/ +``` + +The new directory contains: +- A preconfigured cross-platform C++ project structure +- A `scripts/` folder for building and packaging +- Default toolchains, configs, and dependency layout + +> ๐Ÿงฉ After creation, you'll work entirely within your new project โ€” **cpp-build-system** remains the master template. + +> โš ๏ธ Do **not** run `cmake` directly โ€” always use the provided scripts.