Build system created around FastBuild and multi-platform support.
  • MoonScript 89.7%
  • Python 4.2%
  • Lua 3.6%
  • Kotlin 1.4%
  • Batchfile 0.6%
  • Other 0.5%
Find a file
2026-05-28 01:59:15 +00:00
bootstrap v1.11 dev (#9) 2025-11-29 11:26:13 +09:00
LICENSES Fixing issues of 'license' and 'settings' commands 2023-02-14 17:42:58 +09:00
scripts Updated IBT to target latest gradle version for Android. 2026-02-03 20:15:26 +09:00
source Change the default output file name for 'compile_commands.json' 2026-05-28 00:39:39 +00:00
test_package Update for Conan v2 2023-04-15 15:01:12 +09:00
.gitattributes Create .gitattributes 2021-12-17 23:39:37 +01:00
.gitignore v1.11 dev (#9) 2025-11-29 11:26:13 +09:00
conanfile.py Created new 'link' command 2026-05-27 08:12:13 +09:00
README.md Update README.md 2026-05-28 01:59:15 +00:00

IceShard Build Tools

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.

Conan v2 Warning

Due to huge changes with Conan v2 IBT might not fully work untill all broken cases have been found and fixed!

Dependencies

  • 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

Installation

Conan v2 custom generator workaround

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.

Project setup

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.

Basic information

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
  • Supported CI Systems: TeamCity

Extensibility

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.

Licenses

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