BSMake 1.0.0

dotnet tool install --global BSMake --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local BSMake --version 1.0.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=BSMake&version=1.0.0
                    
nuke :add-package BSMake --version 1.0.0
                    

BurnSystems.Make (bsmake) Build Tool

Overview

BurnSystems Make (CLI name: bsmake) is a build tool designed to integrate project configuration and artifact generation into existing .NET solutions. It extends the capabilities of MSBuild by allowing developers to execute complex, non-standard build steps—such as running code generators, pre-compilation tasks, or specific build agents—directly within the standard build lifecycle.

Our primary goal is to enable developer teams to manage larger, multi-component projects where manual tools or dynamic processes are required before standard compilation can occur.

Key Features & Use Cases

  • Integrated Build Lifecycle: bsmake seamlessly integrates with MSBuild by running custom logic before building the solution or project.
  • Incremental Builds: The tool minimizes unnecessary work by checking the modification times of source files and generated artifacts, only executing expensive steps (like building an internal agent) when necessary.
  • Cross-Platform Support: Designed to operate effectively in both Windows and Linux environments.

Further information is available in Design Specification.

Getting Started

Installation (As a .NET Tool)

The most straightforward way to use BurnSystems Make is by installing it as a global .NET CLI tool:

dotnet tool install -g BSMake

Usage Commands

The core functionality revolves around simple, standardized verbs:

  • Build: Performs the complete build cycle for the current scope (solution or project).
    • bsmake build
  • Clean: Cleans up all generated artifacts and intermediary files from the local directory.
    • bsmake clean

Context-Specific Execution Details

The behavior of bsmake depends on where it is called:

Solution Context (Calling in a Directory containing .sln/.slnx)

When executing bsmake build in a solution root, the tool performs a multi-step orchestration process:

  1. Checks and builds any necessary "Build Agents" (e.g., external executables).
  2. Calls dotnet build on the entire solution file, allowing MSBuild to manage dependency order across all projects.
Project Context (Calling within a single project directory)

When executing bsmake build inside a specific project folder:

  1. Checks and builds any necessary "Build Agents" (e.g., external executables).

It is assumed that bsmake is called by MSBuild on project-level before targetting 'CoreCompile'. This can be achieved by adding the following target in .csproj or Directory.Build.targets file (more information in Design Specification).

<Target Name="RunBSMake" BeforeTargets="CoreCompile">
  <Exec Command="bsmake build $(MSBuildProjectDirectory)" />
</Target>
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.0 124 7/25/2026