https://github.com/iceshard-engine/ice-build-tools
Build system created around FastBuild and multi-platform support.
https://github.com/iceshard-engine/ice-build-tools
android build-tool conan github-actions iceshard moonscript webassembly
Last synced: about 2 months ago
JSON representation
Build system created around FastBuild and multi-platform support.
- Host: GitHub
- URL: https://github.com/iceshard-engine/ice-build-tools
- Owner: iceshard-engine
- Created: 2019-09-16T21:28:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-19T08:59:03.000Z (over 1 year ago)
- Last Synced: 2023-12-19T11:23:32.126Z (over 1 year ago)
- Topics: android, build-tool, conan, github-actions, iceshard, moonscript, webassembly
- Language: MoonScript
- Homepage:
- Size: 436 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSES/RXI_JSON_LUA_LICENSE
Awesome Lists containing this project
README
# 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](https://github.com/iceshard-engine/conan-config.git)
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](https://github.com/iceshard-engine/ice-build-tools/wiki/Project-Setup).
> 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**## 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](https://github.com/rxi/json.lua/) for json encoding and decoding.
License file: `LICENSES/RXI_JSON_LUA_LICENSE`
Source code: `source/rxi/json.lua`