cxon 0.1.1

C++ builder configured with JSON
# cxon -- C++ builder configured with JSON


> [!IMPORTANT]
>
> - cxon is still in development, and the configrantion field is not stable yet.
> - cxon is not only a build system, but also a configuration tool for build systems.

## Features(Order by priority)


- [x] Build project with compiler and linker by cxon.json immediately.(only GNU)
- [ ] Build cache and mult-thread.
- [ ] Submodule support.
- [ ] Multiple compile targets.
- [ ] Platform-specific configuration.
- [ ] Build for cmake.

## What is the goal for cxon?


We want to provide a build system that is easy to use and config for C++ beginners or who are not the programming prefessors, which can help them focus on their project and code instrendad of dealing with the build system configration.  
We only require a small number of essential fields for cxon.json and make the build system configration as simple as possible.

## cxon.json Example

```json5
{
    "project": "HelloWorld",    // project name
    "target_name": "HelloWorld",// the final compiled product name
    "build_dir": "build",       // the directory storing intermediate compiled product
    "output_dir": "bin",        // the directory storing final compiled product

    "toolchain": "gnu",         // unsuport currently but required

    "flags": [                  // parameters for c and c++ compiler
        "-Wall",
        "-Wextra"
    ],

    "cflags": [                 // parameters for c compiler

    ],

    "cxxflags": [               // parameters for c++ compiler

    ],

    "include": [                // directories where the header files are
        
    ],

    "defines": [                // defination for compiler

    ],

    "sources": [                // source files which will be compiled
        "./main.cpp",
        "./func.cpp"
    ],

    "link": [                   // directories storing required libraries

    ],

    "libs": [                   // required libaries

    ]
}
```