Mangh.Metrology.UnitGenerator
2.0.2
dotnet tool install --global Mangh.Metrology.UnitGenerator --version 2.0.2
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local Mangh.Metrology.UnitGenerator --version 2.0.2
#tool dotnet:?package=Mangh.Metrology.UnitGenerator&version=2.0.2
nuke :add-package Mangh.Metrology.UnitGenerator --version 2.0.2
Unit Generator for C# and C++
Description
- Standalone dotnet tool for generating unit of measurement structures for C# or C++ languages from the console.
Installation
Install the tool as a "global tool":
dotnet tool install --global Mangh.Metrology.UnitGenerator
The tool is user-specific, not global to the machine (as you might think). It is only available to the user that installed the tool.
NOTE: You can also install the tool as a "global tool in a custom location" or as a "local tool". If you do it, please amend the Usage instruction (below) accordingly. For details, see article "How to manage .NET tools". Don't forget to amend your scripts (e.g. CMakeLists.txt files) that make use of the tool.
Usage
Use the command line with the following syntax to run the tool:
UnitGenerator targetLanguage targetNamespace templateFolder targetFolder [--with-models]
where:
targetLanguage : CS | CPP. targetNamespace : namespace string, e.g. "Demo.Metrology" for CS language, "Demo::Metrology" for CPP language, templateFolder : path to the folder containing definitions and templates, targetFolder : path to the target folder for generated units and scales, --with-models : request to save models in files (in the targetFolder)
Example use for C#:
UnitGenerator CS "Demo.UnitsOfMeasurement" .\UnitsOfMeasurement\Templates .\UnitsOfMeasurement\Units
Example use for C++:
UnitGenerator CPP "CALINE3::Metrology" Metrology/Templates Metrology/Units
The tool requires the following templates in the
templateFolder
directory:C# C++ purpose Definitions.txt definitions.txt units and scales definitions Unit.xslt unit.xslt unit template Scale.xslt scale.xslt scale template n/a
math-constants.xslt math constants n/a
replace-string.xslt replace function Catalog.xslt n/a
catalog template Aliases.xslt n/a
aliases template Report.xslt report.xslt report template Sample templates can be found on the project website.
Replaces
- The package replaces the
XsltGeneratorApp
console application available in the source code of Mangh.Metrology version 1.x.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
This package has no dependencies.
Version 2.0.2
* fixed "(expr)" encoding bug: some C++ units could be generated with an invalid conversion factor, detected as an invalid expression during compilation. C# units were free of this bug.
Version 2.0.1
* no functional changes, but all projects target .NET 8 (to improve performance).
Version 2.x
* C++ support (new),
* source code heavily restructured,
* packages renamed.
Version 1.x (XsltGeneratorApp console application)
* deprecated.