Install
Table of Contents
Benefits
Setup
-
Install
- Configure
Gradle Plugin Installation
units-of-measure is distributed as a Gradle plugin.
Latest version:
Generated Code Module
Creating a separate Gradle module for units-of-measure’s generated code is highly recommended.
uoms/build.gradle
see full example on GitHubplugins { id 'info.kunalsheth.units' version 'VERSION' id 'org.jetbrains.kotlin.multiplatform' } repositories.jcenter() kotlin { jvm() // js() // linuxX64() sourceSets { commonMain { kotlin.srcDir(generateUnitsOfMeasure.generatedSrcDir) dependencies { implementation kotlin('stdlib-common') } } jvm { dependencies { implementation kotlin('stdlib-jdk8') } } // js { dependencies { implementation kotlin('stdlib-js') } } all { languageSettings.enableLanguageFeature('InlineClasses') } } targets.all { compilations.all { compileKotlinTask.dependsOn(generateUnitsOfMeasure) } } } apply from: 'units-of-measure.gradle'
uoms/units-of-measure.gradle
see full example on GitHubgenerateUnitsOfMeasure { // see advanced configuration // relationships += ... // quantities += ... // unitsOfMeasure += ... }
User Application Dependency
myapp/build.gradle
see full example on GitHub// ... dependencies { api project(':uoms') // ... } // ...
units-of-measure comes ready to use with common SI units and quantities.
For the following customizations, please edit the uoms/units-of-measure.gradle
configuration:
- using imperial or non-SI units (e.g. Mile, Degree, Gallon, etc.)
- using uncommon quantities (e.g. Absement, VoltageSlewRate, etc.)
- shrinking size of compiled binary by fine-tuning which definitions are generated
‹ Benefit: Safe Flexibility Basic Usage ›› Advanced Configuration ›