TedToolkit.CppBindings.Cgal.Generator 2026.9.15

dotnet add package TedToolkit.CppBindings.Cgal.Generator --version 2026.9.15
                    
NuGet\Install-Package TedToolkit.CppBindings.Cgal.Generator -Version 2026.9.15
                    
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="TedToolkit.CppBindings.Cgal.Generator" Version="2026.9.15" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TedToolkit.CppBindings.Cgal.Generator" Version="2026.9.15" />
                    
Directory.Packages.props
<PackageReference Include="TedToolkit.CppBindings.Cgal.Generator" />
                    
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 TedToolkit.CppBindings.Cgal.Generator --version 2026.9.15
                    
#r "nuget: TedToolkit.CppBindings.Cgal.Generator, 2026.9.15"
                    
#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 TedToolkit.CppBindings.Cgal.Generator@2026.9.15
                    
#: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=TedToolkit.CppBindings.Cgal.Generator&version=2026.9.15
                    
Install as a Cake Addin
#tool nuget:?package=TedToolkit.CppBindings.Cgal.Generator&version=2026.9.15
                    
Install as a Cake Tool

TedToolkit.CppBindings.Cgal.Generator

This package supplies configurable finite CGAL generation through the provider-neutral Shared pipeline. The default epick-windows-v2 profile targets CGAL 6.2 from vcpkg x64-windows and emits matched managed/native sources plus deterministic coverage inventories.

var options = new CgalGenerationOptions
{
    VcpkgRoot = new DirectoryInfo(@"C:\vcpkg"),
    CSharpFolder = new DirectoryInfo("generated/csharp"),
    CppFolder = new DirectoryInfo("generated/cpp"),
    CSharpNamespace = "TedToolkit.CppBindings.Cgal",
    NativeLibraryBaseName = "ted_toolkit_cpp_bindings_cgal",
    CppVersion = 20,
    NativeLibraryVersion = new Version(6, 2),
};

builder.AddCgalGenerators(options);

The Generator discovers public headers directly from the selected vcpkg include tree. By default, it also compares that tree with vcpkg's installed CGAL package list so missing, added, or manually changed package files fail closed. Set RequireLockedHeaderInventory = false only when the selected vcpkg installation does not provide package-list metadata. The default separately verifies installed CGAL/GMP/MPFR versions and vcpkg ABIs plus the pinned CMake and MSVC versions. NativeLibraryVersion is optional. When set, it must match both the selected finite profile and the installed CGAL version, and generated CMake uses find_package(CGAL 6.2 EXACT ...). When omitted, the prior unversioned find_package(CGAL CONFIG REQUIRED) line is retained.

Pass ProfileManifestFile and the matching ProfileId to select another explicit version-1 finite profile. Its selected headers, closed signatures, source evidence, roots, and declaration dependencies are snapshotted before generation. The bundled profiles/epick-windows-v2 vcpkg manifest and registry configuration reproduce the default package inputs.

Generated inventory files distinguish all installed public headers and compiler-observed source declarations from the finite candidate set. The Generator recursively closes real #include <CGAL/...> dependencies from the maintained roots, reports other headers as not-reachable-from-finite-profile, and uses Clang to enumerate every public declaration originating in that closure. Direct non-template declarations enter the finite candidate set and receive a narrow unsupported reason until a provider projection exists. Open templates and their dependent declarations remain visible in source-declaration-inventory.json but are not candidates. Clang compiles the profile's kernel alias, layouts, closed constructors, operations, and return-reference categories before a supported closed entry can be admitted.

Admitted declarations become a nonempty Shared semantic graph, and Shared derives their managed/native files and function-table exports from that one model. Per-declaration artifact inventories name the actual emitted file and symbol on both sides. Value transports keep ABI storage private. Native const T& accessors are emitted as ref readonly T; each returned reference is borrowed from the receiver and remains subject to that receiver's lifetime and invalidation rules. CGAL continues to own its finite adapter and tagged intersection alternatives; it submits CMake dependency and target facts to Shared instead of rendering generic native-project boilerplate.

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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.9.15 0 9/15/2026
2026.9.14 44 9/14/2026