From 7615b67224a22d7360c61a895873308bbb2d8d09 Mon Sep 17 00:00:00 2001 From: kodenamekrak Date: Thu, 10 Jul 2025 17:30:05 +0100 Subject: [PATCH] Add generation script --- .clang-format | 15 +++++++++++++++ generate.ps1 | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 .clang-format create mode 100755 generate.ps1 diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000000..b7768ef2f5 --- /dev/null +++ b/.clang-format @@ -0,0 +1,15 @@ +BasedOnStyle: LLVM + +#Stolen from scad +AllowShortBlocksOnASingleLine: false +AllowShortFunctionsOnASingleLine: Empty +AllowShortIfStatementsOnASingleLine: true +CommentPragmas: NOLINT:.* +DerivePointerAlignment: false +IncludeBlocks: Preserve +PointerAlignment: Left +UseTab: Never +Cpp11BracedListStyle: false +QualifierAlignment: Right +SortIncludes: Never +ColumnLimit: 200 diff --git a/generate.ps1 b/generate.ps1 new file mode 100755 index 0000000000..8f305ffd51 --- /dev/null +++ b/generate.ps1 @@ -0,0 +1,52 @@ +#! /usr/bin/pwsh + +Param( + [Parameter(Mandatory=$false)] + [String] $file="" +) + +if($file -eq "") { + Write-Output "Expected apk filename as input" + exit 1 +} + +# Reset files beforehand so nothing incorrect is commited +git reset --hard origin/main + +# Extract il2cpp files from apk +apktool d $file -f -o $PSScriptRoot/apk +Copy-Item apk/lib/arm64-v8a/libil2cpp.so $PSScriptRoot +Copy-Item apk/assets/bin/Data/Managed/Metadata/global-metadata.dat $PSScriptRoot + +cordl --metadata global-metadata.dat --libil2cpp libil2cpp.so cpp --format + +# Move generated headers +Remove-Item -Recurse -Force include +Move-Item codegen/include $PSScriptRoot +Remove-Item -Recurse -Force codegen + +# Generate types.json +cordl --metadata global-metadata.dat --libil2cpp libil2cpp.so single-json +Move-Item cordl.json types.json +if (Test-Path "types.json.zip" -ErrorAction SilentlyContinue) { + Remove-Item "types.json.zip" +} +Compress-Archive -Path types.json -DestinationPath types.json.zip +Remove-Item types.json -Force + +# Create version.txt +$content = Get-Content apk/apktool.yml +$versionline = $content -match 'versionName: [\.\d]+' +$version = $versionline.Trim().split(" ")[1] +Set-Content -NoNewline -Path "include/version.txt" -Value $version + +Remove-Item -Recurse -Force apk +Remove-Item -Force libil2cpp.so +Remove-Item -Force global-metadata.dat + +# Ensure generated headers are correct +qpm restore --update +qpm s build + +git add include qpm.json qpm.shared.json types.json.zip +git commit -m "Update for $version" \ No newline at end of file