Reuse Android compiler outputs and remove old build artifacts
Sync changed files to Google Drive / sync (push) Successful in 2m27s

This commit is contained in:
admin_d committed 2026-10-10 02:05:20 +05:00
1 parent 29df541ea1
commit d6676896d4
70 files changed
+224 -2827

No files matched your search

+124
View File
@@ -0,0 +1,124 @@
# Изменения при попытках собрать APK
Этот отчёт описывает изменения после завершения первой волны Task 15 (коммит `29df541`), сделанные во время попыток сборки, и последующую правку для повторного использования результатов компиляции. Изменения самой волны Task 15 сюда не включены.
## 1. Ручные исправления исходников во время попыток сборки
### `code/GameDiagnosticsGraphics_Mobile.pas`
- Добавлена повторная секция `private` после вложенного блока `type`, перед полями класса. Это исправляет разбор объявления класса компилятором FPC.
- В `uses` раздела `implementation` добавлен `KM_CommonTypes`, чтобы используемые типы были доступны непосредственно этому модулю.
- Переменная `Stage: TGraphicsVisibleDrawDiagnosticStageId` перенесена из внешнего блока переменных во вложенную процедуру `AdvanceVisiblePhase`. Это исправляет использование счётчика цикла во вложенной процедуре для FPC.
### `code/GameDiagnosticsView.pas`
- Добавлена повторная секция `private` после вложенного объявления `TGraphicsRequest`, перед полями класса, для корректного разбора FPC.
### `port-source/kam_remake/src/render/KM_Render.pas`
- Из интерфейсного `uses` удалены `Windows`, `LCLIntf`, `LCLType`, `OpenGLContext`, `dglOpenGL`.
- Из `uses` реализации удалены `KromOGLUtils`, `KromUtils`, `KM_Defaults`, `KM_IoPNG`, `KM_CommonClasses`.
- Цель: убрать ненужные зависимости мобильного адаптера от настольных модулей, которые мешали Android-компиляции. Тела методов этим изменением не переписывались.
### `port-source/kam_remake/src/res/KM_ResSprites.pas`
- В объявлении и реализации `OverloadRXDataFromFolder` тип параметра `aOnProgress` выбирается условно: `TUnicodeStringEvent` для FPC, прежний `TProc<string>` для остальных компиляторов.
- Объявления и реализации `GetSoftenShadowType` и `SoftenShadowsList` заключены в `{$IFDEF WDC}`.
- Подключение `KM_Resource` заключено в `{$IFDEF WDC}`.
- Вложенная процедура `AppendFolder` внутри `OverloadGeneratedFromFolder` также заключена в `{$IFDEF WDC}`.
- Цель: устранить несовместимый с FPC тип callback и ограничить зависимости от настольного владельца ресурсов. Это не устранило все настольные зависимости проекта: последняя сборка остановилась на `Graphics` в `KM_ResFonts`.
### Временная правка, которая была отменена
Во время разбора зависимостей менялся `port-source/kam_remake/src/res/KM_Resource.pas`. Эти правки полностью отменены; в текущем diff изменений этого файла нет.
## 2. Ресурс, добавленный во время сборки
### `private-assets/data/Sprites/Tileset.rxx`
- Создана копия существующего `private-assets/data/sprites/Tileset.rxx` в каталог `Sprites` с заглавной буквой.
- Причина: различие регистра пути на Linux. Использована копия, поскольку подготовка ресурсов запрещает символьные ссылки.
- Это игнорируемый Git ресурс, поэтому обычный `git diff` его не показывает. Исходный файл в `sprites` не заменялся.
## 3. Автоматические изменения сборочного скрипта
### `out/current/build.json`
- Метаданные прежней успешной сборки заменены результатом последней попытки: `20261009T204819Z-d5b17e32`.
- Итоговый статус: `FAIL`; компиляция завершилась с кодом `1`; упаковка APK не запускалась (`NOT_RUN`).
- Количество подготовленных ресурсов изменилось с `1` на `8`.
- Записана ошибка:
```text
/work/vendor/kam_remake/src/res/KM_ResFonts.pas(5,13) Fatal: Can't find unit Graphics used by KM_ResFonts
```
### `out/current/kam-mobile.apk` и `out/current/package.json`
- Прежние файлы удалены автоматически существующим обработчиком неуспешной сборки, чтобы старый APK не выдавался за результат текущей попытки.
- Новый APK при этих попытках не создан.
### `build-evidence/<build_id>/`
Созданы каталоги с логами и итоговыми `build.json` для попыток:
- `20261009T200852Z-e01492c5`
- `20261009T201018Z-293f32ce`
- `20261009T201542Z-734c8b9e`
- `20261009T201938Z-0d29dc09`
- `20261009T202407Z-e1fdcdb0`
- `20261009T202805Z-effd8544`
- `20261009T203305Z-0d62cff2`
- `20261009T203736Z-692bf342`
- `20261009T204411Z-618edf61`
- `20261009T204819Z-d5b17e32`
Рабочие каталоги этих попыток также создавались в игнорируемом Git каталоге `build/<build_id>/`. Это сгенерированные файлы компиляции, подготовки ресурсов и упаковки, а не ручные правки исходников.
## 4. Последующая правка инкрементальной сборки
Эти изменения сделаны отдельно, после остановки попыток сборки, по просьбе сохранять логи и повторно использовать скомпилированные модули.
### `app/CastleEngineManifest.xml`
- Удалена опция FPC `-B`, которая принудительно пересобирала все модули.
- Остальные опции компилятора оставлены.
### `tools/generate.py`
- `-B` удалён и из списка разрешённых `COMPILER_OPTIONS`, чтобы проверка постоянного манифеста соответствовала изменению.
- `materialize_application_project` теперь обновляет существующий проект вместо требования всегда создавать новую папку.
- Неизменившийся сгенерированный манифест не перезаписывается, чтобы сохранить его время изменения.
- Каталог данных может существовать; проектные Android services обновляются копированием после проверки.
- Добавлены проверки символьных ссылок для повторно используемых каталога проекта, каталога данных и манифеста.
### `tools/build_cache.py` — новый файл
- Выбирает постоянный проект `build/work/<cpu>/application`.
- Записывает параметры совместимости в `build/work/<cpu>/inputs.json`.
- Сравнивает CPU, upstream commit, манифест, контракт выбора исходников, пути поиска, состав файлов исходников и параметры инструментария.
- Для контейнерной сборки учитывает digest Docker image; для локальной — хеши исполняемых файлов `castle-engine` и `fpc`.
- При несовместимости удаляет сгенерированный проект; при совпадении сохраняет его для повторного использования `.ppu` и `.o`.
- Пишет сведения об использовании кэша в лог каждой попытки `compiler-cache.json`.
### `tools/runner.py`
- Подключает `cached_project` и использует постоянную папку проекта вместо `build/<build_id>/application`.
- Отдельные логи каждой попытки остаются в `build/<build_id>/logs`; копирование в `build-evidence` сохранено.
- Перед компиляцией удаляет прежние итоговые библиотеки `lib<name>_android_<cpu>.so` и APK внутри проекта; промежуточные `.ppu` и `.o` сохраняет.
- Передаёт digest образа внутрь контейнера через `KAM_TOOLCHAIN_IMAGE` для проверки совместимости кэша.
- Сериализует обычные запуски через `build/runner.lock`, чтобы они не меняли общий кэш одновременно. Внутренний запуск контейнера повторно эту блокировку не берёт.
### `README.md`
- Описаны постоянная папка компиляции, отдельные логи, автоматический сброс кэша и ручная очистка удалением `build/work/`.
- Обновлено описание назначения каталога `build/`.
## 5. Состояние на момент отчёта
- После правки инкрементальной сборки сборка и тесты не запускались. Ускорение пока не измерено.
- Первый запуск нового механизма заполнит новый кэш; старые папки попыток автоматически в него не переносятся.
- Ошибка отсутствующего модуля `Graphics` остаётся нерешённой; правка кэша её не исправляет.
- Перечисленные изменения после `29df541` не закоммичены и не отправлены в Git.
- Настройки агентов и TOML-файлы этой правкой не редактировались.
- Этот отчёт сохранён в `BUILD_ATTEMPTS_CHANGES.md`.
+4 -2
View File
@@ -19,7 +19,9 @@ Supported options are `--local`, `--cpu {aarch64,arm,x86_64}`, `--no-fetch`, and
Each build is one permanent Castle application transaction. Read `out/current/build.json` for its finalized state. On `PASS`, the current package is described by `out/current/package.json` and is at `out/current/kam-mobile.apk`.
`build/<build_id>/` is transient working state. Its useful logs are `build/<build_id>/logs/compile.log`, `build/<build_id>/logs/package.log`, and, when apksigner is available and invoked, `build/<build_id>/logs/signature.log`.
`build/work/<cpu>/application/` is the persistent compiler workspace. FPC reuses its compiled units without `-B`; source edits trigger incremental compilation. Changes to the manifest, source selection, or toolchain reset this workspace. Delete `build/work/` to force a clean build. Concurrent runner invocations are serialized.
Each attempt keeps separate logs under `build/<build_id>/logs/`: `compile.log`, `package.log`, `compiler-cache.json` (cache reuse/reset details), and, when apksigner is available and invoked, `signature.log`.
After every completed build, the compact logs and final `build.json` are copied to the tracked `build-evidence/<build_id>/` directory. It never contains the temporary application, compiler cache, or APK.
## Source and resources
@@ -55,7 +57,7 @@ config/ source and runtime-resource owners
tools/ build, source-resolution, resource-staging, and device tools
private-assets/ private runtime-resource contents
vendor/ pinned vendor source
build/ generated transient working state
build/ persistent compiler workspace and per-attempt logs
out/ generated current finalized state
reports/ frozen Task-1 history
dist/ frozen Task-1 history
+1 -1
View File
@@ -4,7 +4,7 @@
<compiler_options>
<search_paths />
<defines><define>DBG_SKIP_SECURE_AUTH</define></defines>
<custom_options><option>-B</option><option>-CX-</option><option>-XX-</option><option>-k--no-undefined</option><option>-k--no-gc-sections</option></custom_options>
<custom_options><option>-CX-</option><option>-XX-</option><option>-k--no-undefined</option><option>-k--no-gc-sections</option></custom_options>
<library_paths />
</compiler_options>
<android>
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T055353Z-8d974085",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/vendor/kam_remake/src/settings/KM_GameSettings.pas(6,15) Fatal: Can't find unit Forms used by KM_GameSettings"
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T055353Z-8d974085/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/services/diagnostic_report_export
status: staged
@@ -1,38 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/settings/KM_GameSettings.pas(6,15) Fatal: Can't find unit Forms used by KM_GameSettings
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.067,
"command": [
"java",
"-version"
],
"log": "build/20260915T055353Z-8d974085/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.004,
"command": [
"adb",
"version"
],
"log": "build/20260915T055353Z-8d974085/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
"locked_at": "20260908T161942Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T073140Z-ae91dd89",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/vendor/kam_remake/src/utils/io/KM_IoXML.pas(11,5) Fatal: Can't find unit laz2_DOM used by KM_IoXML"
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T073140Z-ae91dd89/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/services/diagnostic_report_export
status: staged
@@ -1,40 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/io/KM_IoXML.pas(11,5) Fatal: Can't find unit laz2_DOM used by KM_IoXML
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.065,
"command": [
"java",
"-version"
],
"log": "build/20260915T073140Z-ae91dd89/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.004,
"command": [
"adb",
"version"
],
"log": "build/20260915T073140Z-ae91dd89/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
"locked_at": "20260908T161942Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T110811Z-290b89d0",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/vendor/kam_remake/src/utils/KromUtils.pas(7,18) Fatal: Can't find unit LCLType used by KromUtils"
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T110811Z-290b89d0/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/services/diagnostic_report_export
status: staged
@@ -1,51 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(88,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(110,63) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(113,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(124,25) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(134,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(138,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(150,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(154,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(158,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(166,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(170,21) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/utils/KromUtils.pas(7,18) Fatal: Can't find unit LCLType used by KromUtils
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.065,
"command": [
"java",
"-version"
],
"log": "build/20260915T110811Z-290b89d0/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.004,
"command": [
"adb",
"version"
],
"log": "build/20260915T110811Z-290b89d0/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
"locked_at": "20260908T161942Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T121913Z-742d6bc6",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/port-source/kam_remake/src/utils/KromUtils.pas(253,24) Error: Identifier not found \"MAXBYTE\""
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T121913Z-742d6bc6/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/services/diagnostic_report_export
status: staged
@@ -1,52 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(88,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(110,63) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(113,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(124,25) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(134,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(138,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(150,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(154,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(158,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(166,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(170,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/KromUtils.pas(253,24) Error: Identifier not found "MAXBYTE"
KromUtils.pas(553) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.066,
"command": [
"java",
"-version"
],
"log": "build/20260915T121913Z-742d6bc6/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.005,
"command": [
"adb",
"version"
],
"log": "build/20260915T121913Z-742d6bc6/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
"locked_at": "20260908T161942Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T123819Z-ec4e0310",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/code/GameDiagnosticsView.pas(61,3) Error: Wrong number of parameters specified for call to \"GetControls\""
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T123819Z-ec4e0310/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/services/diagnostic_report_export
status: staged
@@ -1,124 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(88,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(110,63) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(113,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(124,25) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(134,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(138,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(150,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(154,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(158,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(166,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(170,21) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(22,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,69) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,67) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(24,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(48,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,57) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(204,17) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,24) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(351,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(366,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(428,98) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(526,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(529,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(537,41) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(541,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(542,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(550,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(633,63) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(704,81) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(717,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(718,60) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(727,68) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(731,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(732,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(740,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(301,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(347,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(469,71) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(490,3) Note: Local variable "freq" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(491,3) Note: Local variable "newTime" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(492,3) Note: Local variable "factor" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(605,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(611,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,34) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1218,55) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1224,13) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1250,39) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1257,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1264,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1343,16) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1386,160) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1575,24) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1576,51) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1599,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1973,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1978,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1996,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2001,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2019,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2024,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2042,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2047,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/code/GameDiagnosticsView.pas(61,3) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(66,30) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(74,20) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(77,20) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(78,20) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(79,20) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(82,20) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
/work/code/GameDiagnosticsView.pas(83,94) Error: Wrong number of parameters specified for call to "GetControls"
/usr/local/castle-engine/src/ui/castleuicontrols_userinterface.inc(1916,31) Error: Found declaration: GetControls(const LongInt):TCastleUserInterface;
GameDiagnosticsView.pas(183) Fatal: There were 16 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.073,
"command": [
"java",
"-version"
],
"log": "build/20260915T123819Z-ec4e0310/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.004,
"command": [
"adb",
"version"
],
"log": "build/20260915T123819Z-ec4e0310/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"image_id": "sha256:1a67fad233fe7a2e81ed5f750b548c9ef136ed7d36ec061ff96b2e5eb6eaa218",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-unstable",
"locked_at": "20260908T161942Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T160622Z-57fe7216",
"status": "BLOCKED",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": null,
"compile": {
"status": "NOT_RUN",
"exit_code": null
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "Cannot stage project-owned Android services: Castle service root is missing: /usr/local/castle-engine/tools/build-tool/data/android/services"
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.069,
"command": [
"java",
"-version"
],
"log": "build/20260915T160622Z-57fe7216/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.004,
"command": [
"adb",
"version"
],
"log": "build/20260915T160622Z-57fe7216/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
"locked_at": "20260915T160525Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T162652Z-5ec2a30a",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": null,
"error": "/work/code/GameSelectedMap.pas(19,36) Error: Identifier not found \"UrlEncode\""
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T162652Z-5ec2a30a/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/integrated-services/diagnostic_report_export
status: staged
@@ -1,11 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/code/GameSelectedMap.pas(19,36) Error: Identifier not found "UrlEncode"
GameSelectedMap.pas(23) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/fpclazarus/3.2.2/fpc/bin/ppcrossa64 returned an error exitcode
Exception "Exception":
Failed to compile
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.118,
"command": [
"java",
"-version"
],
"log": "build/20260915T162652Z-5ec2a30a/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.006,
"command": [
"adb",
"version"
],
"log": "build/20260915T162652Z-5ec2a30a/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
"locked_at": "20260915T160525Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T163238Z-af3f6743",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "PASS",
"exit_code": 0
},
"package": {
"status": "FAIL",
"exit_code": 0
},
"package_metadata": null,
"error": "APK native library path does not match selected ABI and libkam_mobile.so"
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T163238Z-af3f6743/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/integrated-services/diagnostic_report_export
status: staged
@@ -1,104 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(88,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(110,63) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(113,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(124,25) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(134,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(138,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(150,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(154,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(158,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(166,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(170,21) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(22,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,69) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,67) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(24,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(48,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,57) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(204,17) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,24) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(351,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(366,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(428,98) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(526,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(529,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(537,41) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(541,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(542,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(550,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(633,63) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(704,81) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(717,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(718,60) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(727,68) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(731,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(732,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(740,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(301,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(347,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(469,71) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(490,3) Note: Local variable "freq" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(491,3) Note: Local variable "newTime" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(492,3) Note: Local variable "factor" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(605,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(611,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,34) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1218,55) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1224,13) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1250,39) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1257,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1264,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1343,16) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1386,160) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1575,24) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1576,51) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1599,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1973,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1978,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1996,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2001,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2019,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2024,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2042,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2047,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
Compiled library for Android in castle-engine-output/android/libkam_mobile_android_aarch64.so
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug --assume-compiled --package-format=android-apk package
Packaging project "kam_mobile" for OS / CPU "android / aarch64" (platform: Android).
Format: android-apk.
Generated CastleDataInformation.xml.
Project data contains 5 directories, 2 files, total (uncompressed) size 10.34 KB.
Castle Game Engine Internal: ProcessID: 300
Downloading https://services.gradle.org/distributions/gradle-8.7-bin.zip
............10%.............20%.............30%.............40%............50%.............60%.............70%.............80%.............90%............100%
Checking the license for package NDK (Side by side) 25.1.8937393 in /usr/local/android/android-sdk/licenses
License for package NDK (Side by side) 25.1.8937393 accepted.
Preparing "Install NDK (Side by side) 25.1.8937393 v.25.1.8937393".
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" ready.
Installing NDK (Side by side) 25.1.8937393 in /usr/local/android/android-sdk/ndk/25.1.8937393
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" complete.
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" finished.
Checking the license for package Android SDK Build-Tools 33.0.1 in /usr/local/android/android-sdk/licenses
License for package Android SDK Build-Tools 33.0.1 accepted.
Preparing "Install Android SDK Build-Tools 33.0.1 v.33.0.1".
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" ready.
Installing Android SDK Build-Tools 33.0.1 in /usr/local/android/android-sdk/build-tools/33.0.1
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" complete.
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" finished.
Checking the license for package Android SDK Platform 34 in /usr/local/android/android-sdk/licenses
License for package Android SDK Platform 34 accepted.
Preparing "Install Android SDK Platform 34 (revision 3)".
"Install Android SDK Platform 34 (revision 3)" ready.
Installing Android SDK Platform 34 in /usr/local/android/android-sdk/platforms/android-34
"Install Android SDK Platform 34 (revision 3)" complete.
"Install Android SDK Platform 34 (revision 3)" finished.
Checking the license for package CMake 3.22.1 in /usr/local/android/android-sdk/licenses
License for package CMake 3.22.1 accepted.
Preparing "Install CMake 3.22.1 v.3.22.1".
"Install CMake 3.22.1 v.3.22.1" ready.
Installing CMake 3.22.1 in /usr/local/android/android-sdk/cmake/3.22.1
"Install CMake 3.22.1 v.3.22.1" complete.
"Install CMake 3.22.1 v.3.22.1" finished.
Build kam_mobile-0.4.0-android-debug.apk
castle-engine: Warning: Icon: No icon in a format readable by our engine (for example, png or jpg) is specified in CastleEngineManifest.xml. Using default icon.
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.169,
"command": [
"java",
"-version"
],
"log": "build/20260915T163238Z-af3f6743/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.009,
"command": [
"adb",
"version"
],
"log": "build/20260915T163238Z-af3f6743/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
"locked_at": "20260915T160525Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
@@ -1,27 +0,0 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T172055Z-ac0dea37",
"status": "PASS",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
"name": "kam_mobile",
"caption": "KaM Remake Mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30,
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"compile": {
"status": "PASS",
"exit_code": 0
},
"package": {
"status": "PASS",
"exit_code": 0
},
"package_metadata": "out/current/package.json",
"error": null
}
@@ -1,5 +0,0 @@
$ adb version
Android Debug Bridge version 1.0.41
Version 35.0.0-11411520
Installed as /usr/lib/android-sdk/platform-tools/adb
Running on Linux 6.8.0-139-generic (x86_64)
@@ -1,4 +0,0 @@
project service: diagnostic_report_export
source: /work/build/20260915T172055Z-ac0dea37/application/android_services/diagnostic_report_export
castle destination: /usr/local/castle-engine/tools/build-tool/data/android/integrated-services/diagnostic_report_export
status: staged
@@ -1,104 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug compile
Compiling project "kam_mobile" for OS / CPU "android / aarch64" in mode "debug".
FPC executing...
Free Pascal Compiler version 3.2.2 [2026/08/04] for aarch64
Copyright (c) 1993-2021 by Florian Klaempfl and others
/work/vendor/kam_remake/src/common/KM_CommonTypes.pas(79,57) Note: Values in enumeration types have to be ascending
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(601,3) Note: Local variable "Encoding" not used
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1519,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1528,42) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1654,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1680,33) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/common/KM_CommonClasses.pas(1690,18) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(81,30) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(131,32) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(403,3) Note: Local variable "ErrorStr" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(447,46) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(461,49) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(462,73) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(463,52) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(527,3) Note: Local variable "sl" not used
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(556,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(564,10) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_FileIO.pas(594,10) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/KM_Log.pas(146,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "RawByteString"
/work/vendor/kam_remake/src/KM_Log.pas(148,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,45) Warning: Implicit string type conversion from "RawByteString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(151,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(305,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(305,76) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(358,3) Note: Local variable "txt" is assigned but never used
/work/vendor/kam_remake/src/KM_Log.pas(480,27) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/KM_Log.pas(480,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/KM_Log.pas(602,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(87,46) Warning: Implicit string type conversion with potential data loss from "WideString" to "AnsiString"
/work/vendor/kam_remake/src/common/KM_Lists.pas(105,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(88,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(110,63) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(113,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(124,25) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(134,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(138,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(150,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(154,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(158,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(166,21) Warning: Function result does not seem to be set
/work/port-source/kam_remake/src/utils/io/KM_IoXML.pas(170,21) Warning: Function result does not seem to be set
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(22,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,35) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,69) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(23,67) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(24,30) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/mission/KM_MapUtils.pas(48,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,57) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,50) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(192,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(204,17) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,24) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/KM_GameParams.pas(206,22) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(351,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(366,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(428,98) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(526,38) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(529,37) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(537,41) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(541,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(542,45) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(550,44) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(633,63) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(704,81) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(717,64) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(718,60) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(727,68) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(731,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(732,69) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/port-source/kam_remake/src/settings/KM_GameSettings.pas(740,66) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(301,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/game/misc/KM_RandomChecks.pas(347,85) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(469,71) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(490,3) Note: Local variable "freq" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(491,3) Note: Local variable "newTime" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(492,3) Note: Local variable "factor" not used
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(605,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(611,22) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,34) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(695,13) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1218,55) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1224,13) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1250,39) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1257,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1264,54) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1343,16) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1386,160) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1575,24) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1576,51) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1599,42) Warning: Implicit string type conversion with potential data loss from "UnicodeString" to "AnsiString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1973,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1978,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(1996,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2001,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2019,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2024,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2042,20) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
/work/vendor/kam_remake/src/utils/KM_CommonUtils.pas(2047,16) Warning: Implicit string type conversion from "AnsiString" to "UnicodeString"
Compiled library for Android in castle-engine-output/android/libkam_mobile_android_aarch64.so
@@ -1,4 +0,0 @@
$ java -version
openjdk version "21.0.12" 2026-07-21
OpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)
@@ -1,38 +0,0 @@
$ castle-engine --os=android --cpu=aarch64 --compiler=fpc --mode=debug --assume-compiled --package-format=android-apk package
Packaging project "kam_mobile" for OS / CPU "android / aarch64" (platform: Android).
Format: android-apk.
Generated CastleDataInformation.xml.
Project data contains 5 directories, 2 files, total (uncompressed) size 10.34 KB.
Castle Game Engine Internal: ProcessID: 300
Downloading https://services.gradle.org/distributions/gradle-8.7-bin.zip
............10%.............20%.............30%.............40%............50%.............60%.............70%.............80%.............90%............100%
Checking the license for package NDK (Side by side) 25.1.8937393 in /usr/local/android/android-sdk/licenses
License for package NDK (Side by side) 25.1.8937393 accepted.
Preparing "Install NDK (Side by side) 25.1.8937393 v.25.1.8937393".
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" ready.
Installing NDK (Side by side) 25.1.8937393 in /usr/local/android/android-sdk/ndk/25.1.8937393
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" complete.
"Install NDK (Side by side) 25.1.8937393 v.25.1.8937393" finished.
Checking the license for package Android SDK Build-Tools 33.0.1 in /usr/local/android/android-sdk/licenses
License for package Android SDK Build-Tools 33.0.1 accepted.
Preparing "Install Android SDK Build-Tools 33.0.1 v.33.0.1".
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" ready.
Installing Android SDK Build-Tools 33.0.1 in /usr/local/android/android-sdk/build-tools/33.0.1
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" complete.
"Install Android SDK Build-Tools 33.0.1 v.33.0.1" finished.
Checking the license for package Android SDK Platform 34 in /usr/local/android/android-sdk/licenses
License for package Android SDK Platform 34 accepted.
Preparing "Install Android SDK Platform 34 (revision 3)".
"Install Android SDK Platform 34 (revision 3)" ready.
Installing Android SDK Platform 34 in /usr/local/android/android-sdk/platforms/android-34
"Install Android SDK Platform 34 (revision 3)" complete.
"Install Android SDK Platform 34 (revision 3)" finished.
Checking the license for package CMake 3.22.1 in /usr/local/android/android-sdk/licenses
License for package CMake 3.22.1 accepted.
Preparing "Install CMake 3.22.1 v.3.22.1".
"Install CMake 3.22.1 v.3.22.1" ready.
Installing CMake 3.22.1 in /usr/local/android/android-sdk/cmake/3.22.1
"Install CMake 3.22.1 v.3.22.1" complete.
"Install CMake 3.22.1 v.3.22.1" finished.
Build kam_mobile-0.4.0-android-debug.apk
castle-engine: Warning: Icon: No icon in a format readable by our engine (for example, png or jpg) is specified in CastleEngineManifest.xml. Using default icon.
@@ -1,7 +0,0 @@
serial: emulator-5554
android: 11/30
ro_product_cpu_abi: x86_64
ro_product_cpu_abilist: x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
launcher_activity: org.kammobile.kamremake/io.castleengine.MainActivity
pid_after_startup_wait: 4139
runtime_result: RUNTIME PASS
File diff suppressed because it is too large. Load diff
@@ -1,20 +0,0 @@
$ /usr/local/android/android-sdk/build-tools/34.0.0/apksigner verify --verbose /work/build/20260915T172055Z-ac0dea37/application/kam_mobile-0.4.0-android-debug.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Verified using v3.1 scheme (APK Signature Scheme v3.1): false
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
WARNING: META-INF/com/android/build/gradle/app-metadata.properties not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.activity_activity.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.annotation_annotation-experimental.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.arch.core_core-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.core_core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-livedata-core.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-runtime.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel-savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.lifecycle_lifecycle-viewmodel.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.savedstate_savedstate.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
WARNING: META-INF/androidx.versionedparcelable_versionedparcelable.version not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
@@ -1,38 +0,0 @@
{
"castle": {
"status": "NOT_INSTALLED"
},
"fpc": {
"status": "NOT_INSTALLED"
},
"java": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.065,
"command": [
"java",
"-version"
],
"log": "build/20260915T172055Z-ac0dea37/logs/java-version.log",
"output": "$ java -version\nopenjdk version \"21.0.12\" 2026-07-21\nOpenJDK Runtime Environment (build 21.0.12+8-1-24.04-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12+8-1-24.04-Ubuntu, mixed mode, sharing)\n"
},
"adb": {
"status": "PASS",
"exit_code": 0,
"seconds": 0.005,
"command": [
"adb",
"version"
],
"log": "build/20260915T172055Z-ac0dea37/logs/adb-version.log",
"output": "$ adb version\nAndroid Debug Bridge version 1.0.41\nVersion 35.0.0-11411520\nInstalled as /usr/lib/android-sdk/platform-tools/adb\nRunning on Linux 6.8.0-139-generic (x86_64)\n"
},
"paths": {},
"docker_image_lock": {
"image": "kambi/castle-engine-cloud-builds-tools@sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"image_id": "sha256:765b6da37a24b2f156886d70e4499f837a0563a2695d41a9e9cab9a9940b54a3",
"resolved_from": "kambi/castle-engine-cloud-builds-tools:cge-stable",
"locked_at": "20260915T160525Z",
"note": "Subsequent runs use this digest, never silently advance the tag."
}
}
+4 -2
View File
@@ -15,6 +15,7 @@ type
TGraphicsDiagnosticExecutionState = (gesIdle, gesPending, gesActive);
TVisibleDrawPhase = (vdpNotStarted, vdpBase, vdpBrightness);
private
FContainer: TCastleContainer;
FRenderer: TKMRender;
FPhysicalWidth, FPhysicalHeight: Integer;
@@ -63,7 +64,7 @@ type
implementation
uses
SysUtils, KM_GameApp_Mobile;
SysUtils, KM_GameApp_Mobile, KM_CommonTypes;
constructor TGraphicsDiagnosticSession.Create(const AContainer: TCastleContainer);
begin
@@ -333,7 +334,6 @@ var
V1, V2, V3: array[0..5] of TKMSampledVertex;
W, H: Single;
AttemptedStage: TGraphicsVisibleDrawDiagnosticStageId;
Stage: TGraphicsVisibleDrawDiagnosticStageId;
ErrorValue: TDiagnosticError;
Ready: Boolean;
AllStagesPass: Boolean;
@@ -622,6 +622,8 @@ var
end;
procedure AdvanceVisiblePhase;
var
Stage: TGraphicsVisibleDrawDiagnosticStageId;
begin
Inc(FVisibleFramesCompletedInPhase);
if FVisiblePhase = vdpBase then
+1
View File
@@ -15,6 +15,7 @@ type
type
TGraphicsRequest = (grReadiness, grTextureLifecycle, grVisibleDraw);
private
FActionRegion: TCastleUserInterface;
FScroll: TCastleScrollView;
FContent: TCastleVerticalGroup;
+9 -9
View File
@@ -1,7 +1,7 @@
{
"schema": "kam-android-build/2",
"build_id": "20260915T172055Z-ac0dea37",
"status": "PASS",
"build_id": "20261009T204819Z-d5b17e32",
"status": "FAIL",
"cpu": "aarch64",
"abi": "arm64-v8a",
"application": {
@@ -13,15 +13,15 @@
"game_unit": "GameInitialize"
},
"upstream_commit": "962fb850324b79bbe5480e1c2087d98f83a60917",
"resource_count": 1,
"resource_count": 8,
"compile": {
"status": "PASS",
"exit_code": 0
"status": "FAIL",
"exit_code": 1
},
"package": {
"status": "PASS",
"exit_code": 0
"status": "NOT_RUN",
"exit_code": null
},
"package_metadata": "out/current/package.json",
"error": null
"package_metadata": null,
"error": "/work/vendor/kam_remake/src/res/KM_ResFonts.pas(5,13) Fatal: Can't find unit Graphics used by KM_ResFonts"
}
Binary file not shown.
-18
View File
@@ -1,18 +0,0 @@
{
"schema": "kam-android-package/1",
"build_id": "20260915T172055Z-ac0dea37",
"application": {
"name": "kam_mobile",
"package": "org.kammobile.kamremake",
"version": "0.4.0",
"version_code": 30
},
"cpu": "aarch64",
"abi": "arm64-v8a",
"apk": {
"file": "out/current/kam-mobile.apk",
"sha256": "6a01498078f8d6bbf90fd715852c03da2e3ddb5d0fe9203b2b45f3f7f38b5a24",
"size": 7751854,
"native_library_path_in_apk": "lib/arm64-v8a/libkam_mobile_android.so"
}
}
@@ -2,9 +2,6 @@ unit KM_Render;
{$I KaM_Remake.inc}
interface
uses
{$IFDEF WDC} Windows, {$ENDIF}
{$IFDEF Unix} LCLIntf, LCLType, OpenGLContext, {$ENDIF}
dglOpenGL,
KM_RenderTypes, KM_CommonTypes;
@@ -60,8 +57,6 @@ implementation
uses
SysUtils, Math,
CastleRenderContext, CastleRenderOptions,
KromOGLUtils, KromUtils,
KM_Defaults, KM_IoPNG, KM_CommonClasses,
KM_Render_Mobile;
{ TKMRender }
@@ -92,11 +92,12 @@ type
procedure LoadFromRXXFile(const aFileName: string; aStartingIndex: Integer = 1);
procedure LoadFromRXXStream(aStream: TStream; aStartingIndex: Integer; aAllocateGFXData: Boolean);
procedure OverloadRXDataFromFolder(const aFolder: string; aOnProgress: TProc<string>; aSoftenShadows: Boolean = True);
procedure OverloadRXDataFromFolder(const aFolder: string; aOnProgress: {$IFDEF FPC}TUnicodeStringEvent{$ELSE}TProc<string>{$ENDIF}; aSoftenShadows: Boolean = True);
{$IFDEF WDC}
function GetSoftenShadowType(aID: Integer): TKMSpriteSoftening;
procedure SoftenShadowsList(aIdList: TList<Integer>);
{$ENDIF}
procedure SoftenShadowsRange(aFrom, aTo: Integer; aOnlyShadows: Boolean = True);
procedure DetermineImagesObjectSizeAll;
@@ -225,7 +226,8 @@ uses
StrUtils,
{$ENDIF}
KromUtils,
KM_SoftShadows, KM_Resource, KM_ResUnits,
KM_SoftShadows, KM_ResUnits,
{$IFDEF WDC} KM_Resource, {$ENDIF}
KM_Render,
TypInfo,
KM_Log, KM_CommonClasses,
@@ -292,6 +294,7 @@ begin
end;
{$IFDEF WDC}
function TKMSpritePack.GetSoftenShadowType(aID: Integer): TKMSpriteSoftening;
var
step, spriteID: Integer;
@@ -366,6 +369,8 @@ begin
end;
{$ENDIF}
// Make old style KaM checkerboard shadows smooth and transparent
procedure TKMSpritePack.SoftenShadowsRange(aFrom, aTo: Integer; aOnlyShadows: Boolean = True);
var
@@ -955,6 +960,7 @@ end;
procedure TKMSpritePack.OverloadGeneratedFromFolder(aAlphaShadows: Boolean; const aFolder: string; aSoftenShadows: Boolean = True;
aOnCheckTerminated: TBooleanFuncSimple = nil);
{$IFDEF WDC}
// Append all PNGs including the subfolders
// Pattern is X_nnnn.png, where nnnn is dynamic (1..n chars) for modders convenience
procedure AppendFolder(idList: TList<Integer>);
@@ -989,6 +995,7 @@ procedure TKMSpritePack.OverloadGeneratedFromFolder(aAlphaShadows: Boolean; cons
fileList.Free;
end;
end;
{$ENDIF}
var
idList: TList<Integer>;
@@ -1012,7 +1019,7 @@ end;
// Parse all valid files in Sprites folder:
// - append or replace original sprites with new ones
// - exclude original sprites if necessary as well
procedure TKMSpritePack.OverloadRXDataFromFolder(const aFolder: string; aOnProgress: TProc<string>; aSoftenShadows: Boolean = True);
procedure TKMSpritePack.OverloadRXDataFromFolder(const aFolder: string; aOnProgress: {$IFDEF FPC}TUnicodeStringEvent{$ELSE}TProc<string>{$ENDIF}; aSoftenShadows: Boolean = True);
{$IFDEF WDC}
// Append all PNGs including the subfolders
// Pattern is X_nnnn.png, where nnnn is dynamic (1..n chars) for modders convenience
+40
View File
@@ -0,0 +1,40 @@
"""Keep compiler outputs while their source selection and toolchain stay compatible."""
from __future__ import annotations
import json, os, shutil
from pathlib import Path
from common import ROOT, COMMIT, CPUS, ProbeError, sha256, write_json
def cached_project(cpu: str, resolution: dict, logs: Path) -> Path:
if cpu not in CPUS:raise ProbeError('Unsupported Android CPU')
cache=ROOT/'build/work'/cpu
for directory in (ROOT/'build',ROOT/'build/work',cache):
if directory.is_symlink():raise ProbeError('Build cache must not be a symlink: '+str(directory))
cache.mkdir(parents=True,exist_ok=True)
project=cache/'application'
if project.is_symlink():raise ProbeError('Cached project must not be a symlink')
inputs={
'schema':1,'cpu':cpu,'upstream_commit':COMMIT,
'manifest':sha256(ROOT/'app/CastleEngineManifest.xml'),
'source_contract':sha256(ROOT/'config/extra-paths.json'),
'paths':{key:[str(path) for path in resolution[key]]
for key in ('compiler_source_paths','library_paths')},
'environment':{key:os.environ.get(key) for key in
('KAM_TOOLCHAIN_IMAGE','CASTLE_ENGINE_PATH','FPCDIR','ANDROID_NDK_ROOT',
'ANDROID_HOME','ANDROID_SDK_ROOT','JAVA_HOME')},
# Removing or adding a unit can change compiler precedence even at the same paths.
'source_files':sorted({str(path) for directory in resolution['compiler_source_paths']
for path in directory.iterdir() if path.suffix.lower() in ('.pas','.pp','.inc') and path.is_file()}),
}
if not os.environ.get('KAM_TOOLCHAIN_IMAGE'):
inputs['tools']={}
for name in ('castle-engine','fpc'):
executable=shutil.which(name)
inputs['tools'][name]=None if executable is None else sha256(Path(executable).resolve())
marker=cache/'inputs.json'
try:previous=json.loads(marker.read_text())
except (FileNotFoundError,ValueError):previous=None
reused=project.is_dir() and previous==inputs
if project.exists() and not reused:shutil.rmtree(project)
write_json(marker,inputs)
write_json(logs/'compiler-cache.json',{'project':str(project),'reused':reused,'inputs':inputs})
return project
+17 -8
View File
@@ -1,11 +1,11 @@
"""Generate isolated Android CGE targets. No KaM stubs or rewritten game loaders."""
from __future__ import annotations
import hashlib, os, re, shutil, xml.etree.ElementTree as ET
import hashlib, io, os, re, shutil, xml.etree.ElementTree as ET
from pathlib import Path
from common import ROOT, ProbeError
UPSTREAM_DEFINES=['DBG_SKIP_SECURE_AUTH'] # Existing upstream switch; private multiplayer authentication is out of scope.
COMPILER_OPTIONS=['-B','-CX-','-XX-','-k--no-undefined','-k--no-gc-sections']
COMPILER_OPTIONS=['-CX-','-XX-','-k--no-undefined','-k--no-gc-sections']
_ANDROID_SERVICE_NAME=re.compile(r'[A-Za-z][A-Za-z0-9_]*\Z')
_PROJECT_ATTRIBUTES={
@@ -89,27 +89,36 @@ def android_service_roots(root: Path) -> tuple[Path,...]:
raise ProbeError(f'Cannot inspect Android services: {error}') from error
def materialize_application_project(project: Path, source_resolution: dict) -> dict:
"""Create one fresh Castle project from the permanent manifest and RP01 paths."""
if project.exists():raise ProbeError('Target directory must be fresh: '+str(project))
"""Refresh project inputs while preserving compatible compiler outputs."""
if project.is_symlink():raise ProbeError('Target directory must not be a symlink: '+str(project))
try:
compiler_paths=tuple(source_resolution['compiler_source_paths'])
library_paths=tuple(source_resolution['library_paths'])
except (KeyError, TypeError) as error:
raise ProbeError(f'Invalid source resolution: {error}') from error
tree,root=_permanent_manifest()
project.mkdir(parents=True)
data_root=project/'data';data_root.mkdir()
project.mkdir(parents=True,exist_ok=True)
data_root=project/'data'
if data_root.is_symlink():raise ProbeError('Project data must not be a symlink')
data_root.mkdir(exist_ok=True)
options=_one_child(root,'compiler_options')
for tag,paths,kind in (('search_paths',compiler_paths,'Source'),('library_paths',library_paths,'Native library')):
slot=_one_child(options,tag)
for child in list(slot):slot.remove(child)
for path in paths:ET.SubElement(slot,'path',value=_manifest_path(path,project,kind))
ET.indent(tree)
tree.write(project/'CastleEngineManifest.xml',encoding='utf-8',xml_declaration=True)
rendered=io.BytesIO()
tree.write(rendered,encoding='utf-8',xml_declaration=True)
manifest=project/'CastleEngineManifest.xml'
if manifest.is_symlink():raise ProbeError('Generated manifest must not be a symlink')
if not manifest.exists() or manifest.read_bytes()!=rendered.getvalue():
manifest.write_bytes(rendered.getvalue())
source_services=ROOT/'app/android_services'
services=android_service_roots(source_services)
if services:
destination_root=project/'android_services'
android_service_roots(destination_root)
if destination_root.exists():shutil.rmtree(destination_root)
if services:
destination_root.mkdir()
for service in services:
destination=destination_root/service.name
+13 -3
View File
@@ -1,6 +1,6 @@
"""One-command Android-only compile, full native link, APK and evidence pipeline."""
from __future__ import annotations
import argparse, json, os, re, shutil, subprocess, sys, uuid, zipfile
import argparse, fcntl, json, os, re, shutil, subprocess, sys, uuid, zipfile
from pathlib import Path
from common import (ROOT, COMMIT, CPUS, ProbeError, stamp, sha256, write_json, run_command,
first_errors, CURRENT_OUTPUT_DIR, CURRENT_BUILD_METADATA,
@@ -12,6 +12,7 @@ from source_resolution import load_source_contract, validate_source_contract, bu
from generate import android_service_roots, materialize_application_project
from artifacts import inspect_elf, inspect_apk
from resource_staging import stage_runtime_resources
from build_cache import cached_project
IMAGE_TAG='kambi/castle-engine-cloud-builds-tools:cge-stable'
BUILD_EVIDENCE_DIR=ROOT/'build-evidence'
@@ -152,9 +153,11 @@ def build_local(a:argparse.Namespace,build_id:str)->int:
audited=inventory(vendor_root)
validated=validate_source_contract(load_source_contract(),vendor_root,receipt,audited)
resolution=build_source_resolution(validated,vendor_root,ROOT/'code')
descriptor=materialize_application_project(work/'application',resolution);app=_application(descriptor)
descriptor=materialize_application_project(cached_project(a.cpu,resolution,logs),resolution);app=_application(descriptor)
resources=stage_runtime_resources(descriptor['data_root'])
stage_android_services(descriptor['project_dir'],logs)
for pattern in (f"lib{descriptor['name']}_android_{a.cpu}.so",'*.apk'):
for output in descriptor['project_dir'].rglob(pattern):output.unlink()
except (ProbeError,OSError,ValueError,KeyError) as error:
return _finish(_record(build_id,a.cpu,'BLOCKED',app,None,compile,package,error=str(error)))
if not shutil.which('castle-engine'):
@@ -219,7 +222,8 @@ def docker_build(a:argparse.Namespace,build_id:str)->int:
if image is None:raise ProbeError('Image has no immutable RepoDigest')
write_json(lock,{'image':image,'image_id':info['Id'],'resolved_from':IMAGE_TAG,'locked_at':stamp(),'note':'Subsequent runs use this digest, never silently advance the tag.'})
cmd=['docker','run','--rm','--platform=linux/amd64','--user','0:0','-e','HOME=/work/.cache/home',
'-e','KAM_BUILD_ID='+build_id,'-e','KAM_CONTAINER_BUILD=1','-v',str(ROOT)+':/work','-w','/work']
'-e','KAM_BUILD_ID='+build_id,'-e','KAM_CONTAINER_BUILD=1',
'-e','KAM_TOOLCHAIN_IMAGE='+image,'-v',str(ROOT)+':/work','-w','/work']
if os.environ.get('GITHUB_TOKEN'):cmd+=['-e','GITHUB_TOKEN']
cmd+=['--entrypoint','python3',image,'tools/runner.py','--local','--cpu',a.cpu,'--timeout',str(a.timeout)]
if a.no_fetch:cmd+=['--no-fetch']
@@ -242,6 +246,12 @@ def main()->int:
inherited=os.environ.get('KAM_BUILD_ID')
if inherited and not re.fullmatch(r'\d{8}T\d{6}Z-[0-9a-f]{8}',inherited):ap.error('Invalid KAM_BUILD_ID')
build_id=inherited or stamp()+'-'+uuid.uuid4().hex[:8]
if os.environ.get('KAM_CONTAINER_BUILD')=='1':
result=build_local(a,build_id) if a.local else docker_build(a,build_id)
else:
(ROOT/'build').mkdir(exist_ok=True)
with (ROOT/'build/runner.lock').open('a') as lock:
fcntl.flock(lock,fcntl.LOCK_EX)
result=build_local(a,build_id) if a.local else docker_build(a,build_id)
if result==0 and os.environ.get('KAM_CONTAINER_BUILD')!='1':
subprocess.run([sys.executable,str(ROOT/'tools/device.py')],cwd=ROOT,check=False)