From 7731613f50eb45e5af9cd96e05fc7e43dc3643d1 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Thu, 26 Aug 2021 21:03:06 +0200 Subject: Remove Makefile and add minimalistic README. --- README.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..fea7c11 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# Introduction + +Have you ever wondered, if you want to compile a C++ program, why you always +need to learn another language to make it build properly with dependency +tracking and so on. + +Many good build-systems exists which all have their strengths and weeknesses +autotools, cmake, meson to name a few. + +`cppbuild` tries to make it possible to use all the cool features of the above +in a tool only using C++ (through the compiler). + +## Getting Started: 3 Simple Steps + +Step 1: Create a build configuration, in C++ + +A really simple example ('hello_config.cc'): +```c++ +#include "libcppbuild.h" + +namespace +{ +BuildConfigurations helloConfigs() +{ + return + { + { + .target = "hello", + .sources = { + "hello.cc", + }, + .cxxflags = { + "-Wall", + "-std=c++17", + } + }, + }; +} + +REG(helloConfigs); +} +``` + +Step 2: Bootstrap the system by compiling your build configuration along with +the libcppbuild.a static library: +```sh +g++ -std=c++17 hello_config.cc -pthread libcppbuild.a -o cppbuild +``` + +Step 3: Run cppbuild to build you application: + +```sh +./cppbuild +``` + +Any consecutive changes to the build configuration or any of the sources will +automagically trigger a rebuild of all (and only) affected sources the next time +cppbuild is executed. -- cgit v1.2.3