Before building the libraries and samples in this repository, you will need to install:
-
.NET 9.0 (.NET SDK 9.0 is currently required)
-
dotnet tool install -g cake.tool -
The
javacfrom your JDK 21 installation must be first in$PATH/%PATH%. -
The Android SDK, and the
ANDROID_SDK_ROOTenvironment variable set to the Android SDK location.API-29 should be installed.
If you have a dotnet/android build, then these should work:
# macOS export ANDROID_SDK_ROOT=$HOME/android-toolchain/sdk
rem Windows set ANDROID_SDK_ROOT=%HOMEDRIVE%%HOMEPATH%/android-toolchain/sdk
-
For API diffs install
api-toolsdotnet tool install -g api-tools
You can now build all the packages by running:
dotnet cakeIf you are going to make changes to the config.json, then you can run the packages target to re-generate all the necessary files:
dotnet cake --target=packagesSimple build (ci build done on CI Azure DevOps servers):
dotnet cake -t=ci
Clean ci build followed by nuget API diff and then several utility tqrgets:
On MacOSX (and Linux):
dotnet cake -t=clean && dotnet cake -t=ci && dotnet cake nuget-diff.cake && dotnet cake utilities.cake-
inject-variables -
check-tools -
tools-update -
javadocsPrepares javadocs for parameter names. -
binderateRuns
binderatoronconfig.jsondata. -
binderate-config-verifyVerifies versions in
config.json -
binderate-diffRuns
diffto see details of the update. -
binderate-fix -
binderate-nuget-check -
metadata-verify -
libsBuilds projects (assemblies - libraries - libs)
-
libs-nativeBuilds native maven projects with gradle.
-
nugetGenerates (packaging) NuGet packages for projects.
-
all-packages-testsRuns 'AllPackagesTests' test suite without first building packages.
-
build-run-all-packages-testsBuilds NuGet packages first and then runs 'AllPackagesTests' test suite.
-
api-diff -
diff -
cleanCleans folders and files.
-
packages -
full-run -
ciBuilds projects on CI (
libs,nuget,samples). -
update-configUpdates config.json to the latest versions found in Maven.
-
bump-configIncrements the NuGet patch version of all packages in config.json.
-
sort-configSorts config.json file using the canonical sort.
-
published-configShows which NuGet package versions in config.json have been published to NuGet.org.
-
generate-component-governanceGenerates Components Governance
cgmanifest.json -
mappings-artifact-nugetGenerates mapping maven artifacts to nuget packages.
-
list-artifactsGenerate list of the maven artifacts and its nuget package.
-
spell-checkSpell checks namespaces and nuget packages.
-
namespace-checkVerifies namespaces (names and casing)
-
binderate-diffRuns
diffto see details of the update. -
target-sdk-version-checkVerification of TFMs.
-
api-diff-markdown-info-prGenerates Markdown about update info for PRs (weekly stable updates)
-
api-diff-analysisGenerates Markdown about update info for PRs (weekly stable updates)
-
nuget-structure-analysisUnpacks nuget packages, so the structure can be verified.
-
read-analysis-filesOpens analysis files (API diff, spell checking, etc) VS Code required.
-
generate-markdown-publish-logGenerates MarkDown based on CI NuGet publish log.
-
dependenciesWIP: dependency trees generation (Maven and Nuget)
-
generate-namespace-file -
verify-namespace-file -
DefaultDefault target -
ci