VEBuild.Cpp 1.0.3

dotnet add package VEBuild.Cpp --version 1.0.3
                    
NuGet\Install-Package VEBuild.Cpp -Version 1.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VEBuild.Cpp" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VEBuild.Cpp" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="VEBuild.Cpp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VEBuild.Cpp --version 1.0.3
                    
#r "nuget: VEBuild.Cpp, 1.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VEBuild.Cpp@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VEBuild.Cpp&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=VEBuild.Cpp&version=1.0.3
                    
Install as a Cake Tool

ve.build.cpp

🚀 STATUS: v1.0.0 RC. Part of the VEBuild ecosystem.

ve.build.cpp provides the C++ language abstractions, configuration API, and source management logic for the VEBuild system.

It acts as the C++ Frontend: it knows what a C++ project looks like (sources, headers, modules, defines, optimization settings) but delegates the actual execution to a specific Toolchain provider.

⚠️ Important

This package does not contain a compiler. To build projects, you must install a Toolchain implementation package alongside this one:

  • Windows (MSVC): Install ve.build.msvc
  • Cross-Platform (Clang): (Coming soon)

📦 Installation

dotnet add package ve.build.cpp

⚡ Usage

This package extends the ProjectBuilder with methods to define C++ artifacts and compilation rules.

Basic Setup

using ve.build.core;
using ve.build.cpp.cpp; // Import extensions

return await new HostBuilder()
    .project("my_library", p => p
        // Define source directory (recursive scan)
        .Sources("src") 
        // Add Preprocessor Definitions
        .Define("MY_LIB_EXPORTS")
        .Define("VERSION", "1.0.0")
    )
    .useMsvcToolchain() // Required toolchain (from ve.build.msvc)
    .build()
    .run(args);

Advanced Compiler Configuration

You can fine-tune compilation options via the configuration lambda in .Sources(). This API is strongly typed and toolchain-agnostic.

.project("game_engine", p => p
    .Sources("src", config => config
        // Optimization & Code Gen
        .optimization(OptimizationLevel.SPEED)
        .favorOptimization(FavorOptimization.SPEED)
        .inlineLevel(InlineLevel.FORCE)
        .linkTimeCodeGeneration(true)
        
        // Language Standard
        .languageStandard(LanguageStandard.CppLatest) // C++20/23
        .rtti(false) // Disable RTTI
        .exceptionHandling(ExceptionHandling.NONE) // Disable Exceptions
        
        // Security & Debugging
        .addressSanitizer(true) // Enable ASan
        .securityCheckers(true) // /GS
        .stackCheck(true)
        
        // Concurrency
        .openMP(false)
        
        // Math
        .floatModel(FloatModel.FAST)
        .fastTranscendentals(true)
    )
)

📂 Supported File Types

The package automatically scans and categorizes files based on extensions:

  • C++ Source: .cpp, .cxx, .cc, .c, .c++
  • C++ Modules (C++20): .ixx, .mxx (Automatically scanned for dependencies)
  • Headers: .h, .hpp, .hxx, .hh, .inl

🔗 Architecture

This package provides the following core components:

  1. ClExtension: Extends the build graph to handle scanning, compiling, and dependency tracking for C++ files.
  2. IClConfigurator: A fluent interface for configuring compiler flags abstractly.
  3. Dependency Scanner: Logic to parse C++20 import/export statements and #include directives to build a precise DAG (Directed Acyclic Graph).

License

© 2025 VassalStudio. All rights reserved.

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.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on VEBuild.Cpp:

Package Downloads
VEBuild.Cpp.Msvc

VEBuild is a modular .NET build system that composes projects via declarative tasks, extensions, and platforms. This repo contains the core abstractions and a sandbox used to validate the architecture.

VEBuild.VcxprojGenerator

VEBuild is a modular .NET build system that composes projects via declarative tasks, extensions, and platforms. This repo contains the core abstractions and a sandbox used to validate the architecture.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 133 5/29/2026
1.0.2.3 140 5/22/2026
1.0.2.2 150 5/22/2026
1.0.2.1 125 5/22/2026
1.0.2 129 5/22/2026
1.0.1.2 148 3/6/2026
1.0.1.1 143 3/6/2026
1.0.1 146 3/3/2026
1.0.0.7-rc 143 3/2/2026
1.0.0.6-rc 139 2/26/2026
1.0.0.5-rc 195 2/25/2026
1.0.0.4-rc 181 2/17/2026
1.0.0.3-rc 191 12/26/2025
1.0.0.1-rc 222 12/25/2025
1.0.0-rc 225 11/27/2025