VEBuild.Link
1.0.3
dotnet add package VEBuild.Link --version 1.0.3
NuGet\Install-Package VEBuild.Link -Version 1.0.3
<PackageReference Include="VEBuild.Link" Version="1.0.3" />
<PackageVersion Include="VEBuild.Link" Version="1.0.3" />
<PackageReference Include="VEBuild.Link" />
paket add VEBuild.Link --version 1.0.3
#r "nuget: VEBuild.Link, 1.0.3"
#:package VEBuild.Link@1.0.3
#addin nuget:?package=VEBuild.Link&version=1.0.3
#tool nuget:?package=VEBuild.Link&version=1.0.3
ve.build.link
🚀 STATUS v1.0.0 RC. Linker Abstraction Layer for VEBuild.
ve.build.link provides the linker and librarian abstractions for the VEBuild system.
It acts as the Linker Frontend, defining how projects are linked (executable vs shared library vs static library) and managing the dependency graph for the linking stage. It abstracts away the differences between link.exe (MSVC), ld (GCC), and lld (LLVM).
⚠️ Important
This package does not contain a linker implementation. To actually link binaries, you must install a Toolchain implementation package alongside this one
Windows (MSVC) Install ve.build.link.msvc
Cross-Platform (Coming soon)
📦 Installation
dotnet add package ve.build.link
⚡ Usage
This package extends the ProjectBuilder with methods to define the Project Type and Dependencies.
Defining Artifacts
Use the .Type() extension method to specify what this project produces.
using ve.build.core;
using ve.build.link.link; Import extensions
return await new HostBuilder()
1. Static Library (.lib .a)
.project(my_static_lib, p = p
.Type(ProjectType.StaticLib) Uses the Librarian (lib.exe ar)
.Sources(src)
)
2. Dynamic Library (.dll .so)
.project(my_shared_lib, p = p
.Type(ProjectType.DLL) Uses the Linker (link.exe ld)
.Sources(src)
)
3. Executable (.exe elf)
.project(my_game, p = p
.Type(ProjectType.EXE) Uses the Linker
.Sources(src)
)
.useMsvcToolchain()
.build()
.run(args);
Managing Dependencies
Use the .dependsOf() method to link against other projects.
This handles the Transitive Propagation of
Link Inputs Automatically passes .lib files to the linker.
Build Order Ensures libraries are built before the executable.
!-- end list --
.project(game_client, p = p
.Type(ProjectType.EXE)
.Sources(src)
Link against local projects
.dependsOf(ve.core)
.dependsOf(ve.render)
Configure Linker flags (Abstract API)
.Link(config = config
.subsystem(Subsystem.WINDOWS)
.incremental(true)
.libraryPath(libsexternal)
.library(user32.lib)
)
)
🔗 Architecture
This package introduces the following core concepts
1. ProjectType Enum
Determines the build pipeline for the project
EXE Compiles sources - Links Object Files - Generates Executable.
DLL Compiles sources - Links Object Files - Generates Shared Library (+ Import Library).
StaticLib Compiles sources - Archives Object Files - Generates Static Library.
2. ILinkTool Interface
The contract that toolchains must implement. It has two main modes
link() For EXEDLL. Configured via ILinkConfigurator.
lib() For StaticLib. Configured via ILibConfigurator.
3. Dependency System
The .dependsOf() extension integrates with the VEBuild DAG (Directed Acyclic Graph) to ensure correct topological sort execution order.
License
© 2025 VassalStudio. All rights reserved.
| Product | Versions 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. |
-
net10.0
- VEBuild.Core (>= 1.0.3)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on VEBuild.Link:
| Package | Downloads |
|---|---|
|
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. |
|
|
VEBuild.link.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. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.3 | 127 | 5/29/2026 |
| 1.0.2.2 | 152 | 5/22/2026 |
| 1.0.2.1 | 122 | 5/22/2026 |
| 1.0.2 | 124 | 5/22/2026 |
| 1.0.1.2 | 123 | 3/6/2026 |
| 1.0.1.1 | 125 | 3/6/2026 |
| 1.0.1 | 129 | 3/3/2026 |
| 1.0.0.7-rc | 126 | 3/2/2026 |
| 1.0.0.6-rc | 125 | 2/26/2026 |
| 1.0.0.5-rc | 153 | 2/25/2026 |
| 1.0.0.4-rc | 136 | 2/17/2026 |
| 1.0.0.3-rc | 125 | 2/17/2026 |
| 1.0.0.2-rc | 157 | 12/26/2025 |
| 1.0.0.1-rc | 204 | 12/25/2025 |
| 1.0.0-rc | 213 | 11/27/2025 |