This project aims to fill a quite weird gap of "glue-like" utility. Using various tools, it builds a simplified interface for them allowing to maintain projects easier.
At the core it uses 'Conan' for managing packages, including this tool itself. This is also the only dependency to get started.
There are so many great tools, and yet instead of sticking them together we create new ones.
Due to huge changes with Conan v2 IBT might not fully work untill all broken cases have been found and fixed!
- Conan Package Manager
- Iceshard Conan Config
- Because of changes in Conan v2 a hook is required to properly generate the custom FastBuildDeps generator
- See below for details
Ensure you have installed the required Conan v2 hook to handle custom generators. It can be found in this iceshard-engine/conan-config
The hook can also be installed using the conan config install
command pointing to the https://github.com/iceshard-engine/conan-config.git repo.
Please note that this will replace also your remotes file, so please make sure your config is backed-up or just copy the necessary files manually.
To install this utility for your project just follow the instructions on the wiki page.
It's recommended to always install the latest stable version of this tool, since it's still undergoing lots of development and features are added frequently.
Currently IBT supports building with FastBuild out of the box by hiding lots of boilerplate scripts behind the sceene.
This involves locating and generating files consumed by FastBuild scripts.
- Supported Compilers: MSVC, GCC, Clang
- Supported Platforms: Windows, Linux,
Mac(Not yet available) - Supported SDK's: Windows 10, Vulkan
- Supported C++ package managers: Conan
- Supported Build Tools: FastBuild
The project uses Moonscript and by extension Lua to glue everything together. Because of this, it's very easy to customize at any point, however it's recommended to use prepared extension points.
Currently you can define your own application, commands, settings, locators and much more.
In addition you can change the layout, conan profiles, configurations, platform, pipelines for your C++ setup.
TODO: Currently there is lots of work put into the wiki pages, which should address each specific feature by itself, but for now questions are apprciated.
This tool uses a slightly modified version of rix/json.lua for json encoding and decoding.
License file: LICENSES/RXI_JSON_LUA_LICENSE
Source code: source/rxi/json.lua