Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


This is the new CCP4M and will be the edition which I will work on.

Build Status Codacy Badge


There is a shell script to build the project on your system if there is no release binary for your system or you want the latest git commit version.

You will be required to install the dependencies manually, which are: yaml-cpp, and libcurl/curl.

Once generates the binary, it can be copied over to /usr/local/bin to run the program directly from any directory.

For Arch users

The software is available on the AUR under the name ccp4m.


For Debian based distros, install the dependencies using the following command:

sudo apt-get install libboost-all-dev libyaml-cpp-dev libcurl3 libcurl4-openssl-dev curl

If you have Ubuntu 18.04, use the following command ( just replaces libcurl3 with libcurl4 ):

sudo apt-get install libboost-all-dev libyaml-cpp-dev libcurl4 libcurl4-openssl-dev curl

For Arch based distros, if you want to build from source, install the curl and yaml-cpp package. That should be enough.


Note: All the flag based parameters ( ones starting with '--' ) in any command are optional.

Creating a new project

To create a new project, the following command is used.

ccp4m project new test --lang c++ --version 0.1 --std 14 YourName TestBuild --build.type bin --dir test


Building a project

To build a project, the following command is used. Optionally, the build name can be provided to build a specific target. If not provided, it will build all the targets.

ccp4m project build < optional: target build >


Executing a project

To run a project, the following command is used. You need to give a build target as a parameter so that it knows what to run.

ccp4m project run < target build > < arguments for the executable binary >


Setting/Changing options in configuration

To change a configuration, the following command is used.

ccp4m project set < parameter > < value >

The parameter can be one of the following for now ( give me suggestions for more please ):

name - Project Name
version - Project Version
license - Project License
std - Project Standard
compile_flags - Project Compile Flags


Cleaning directories

Cleaning project directories

The project directory is purged of the buildfiles, lib, and bin directories using the following command.

ccp4m project clean


Cleaning CCP4M directories

The ~/.ccp4m directory can be cleared of logs and downloaded license files using the following command.

ccp4m clean < optional: log / license >


Adding additional things

Additional items ( libraries, build targets, includes, and source files ) can be added.


ccp4m project add inc < include file name >

Include file name can contain directory as well ( but should not contain extension ).



ccp4m project add src < source file name > < optional: target build >

Target build, if provided, will be the one for which the source file is valid ( depending on regex used for other sources in a build ).



ccp4m project add build < build name > --type < bin/lib > --main_src < main source for this build > --exclude < comma separated list of sources to exclude > --srcs < comma separated list of sources to include ( other than main source ) >

Note that if main source is not provided, it will be taken as src/main.c(pp) by default. Also, if the type is lib, an extra parameter --build_type may be provided whose value is either statc or dynamic, by default it is static.



ccp4m project add lib < library name > --version < version > --inc_flags < include flags ( space separated ) > --lib_flags < library flags ( space separated ) >

By default, version is 0, include flags and library flags are empty.


For another example of ccp4m.yaml, check out: Electrux/AsyncLoggingEngine


This is the new CCP4M and is the edition on which I work







No packages published