Home

Awesome

PRs Welcome Language Standard Build status

bscxx

bscxx (for bootstrap CXX project) is a very light utility software, written in C++ 17, to help you starting quickly a new C++ project using cmake. Its end goal is to be a package manager, to easily include C++ modules to your project, deeply inspired by npm (node.js), composer (php) and cargo (rust).

Prerequisite

To be able to build this project, you need a compiler which supports the last C++ 17 features, such as "filesystem". So you'll need Visual Studio 17 or GCC 8 for example, at least, to be able to build this project from source.

Installing / Getting started

<blockquote> <p><g-emoji class="g-emoji" alias="bulb" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4a1.png" ios-version="6.0"><img class="emoji" alt="bulb" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4a1.png"></g-emoji> [Warning] bscxx generates CMake build files, so you need to install CMake to be able to compile your C++ code with whatever compiler you want. </p> </blockquote>

You have three choices to install bscxx.

  1. You can download the released version (for now, it's just available on Windows 64 bits system), and add it to your environment path.

  1. You can easily install bscxx with the help of scoop, a windows package manager for portable apps. Start by installing scoop (on Windows only) with this PowerShell command (you need PowerShell 3 at least):
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

Now, open a new cmd and type this command to add this git repository as a scoop bucket:

scoop bucket add bscxx https://github.com/Elkantor/bscxx.git

Finally, install bscxx with this command:

scoop install bscxx

Now, you should be ready to use bscxx. You can test if it has correctly been installed by typing the following command for example:

bscxx -h

  1. Or you can build bscxx yourself by cloning this repository:
git clone https://github.com/Elkantor/bscxx
cd bscxx

Create a build folder:

mkdir build
cd build

Run this cmake command to create the build system files. You can use whatever build system you want like Make, MSVS/Cl... I personnaly prefer using Ninja when I can. If you don't have Ninja and want to use it, install it first (you can easily install it with scoop or chocolatey).

cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE:STRING=Release && cmake --build .

And finally, launch the app to test it if everything compiled fine:

../build/src/bin/Release/bscxx -h

Documentation

<blockquote> <p><g-emoji class="g-emoji" alias="bulb" fallback-src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4a1.png" ios-version="6.0"><img class="emoji" alt="bulb" height="20" width="20" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f4a1.png"></g-emoji> [Warning] bscxx is a young WIP project, so the documentation is not fully available for now, but will be released as soon as possible. </p> </blockquote>

Developing

Built and developed with

Rules / Coding Standard

This project follow some rules, to be as consistent and comprehensible as possible.

Licencing

MIT License

Copyright (c) 2018 Victor Gallet

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.