Files
recipe/tools/verify-ios-flags.sh
ulfrxdev aaa8042aee feat(01-01): add Phase 1 invariant verification scripts
Three executable bash scripts under tools/ that Wave 0 and every
subsequent Phase 1 plan's <automated> block rely on:

- verify-no-version-literals.sh (INFRA-01 SC#2 / D-09): no literal
  library/plugin version strings in any *.gradle.kts. Excludes
  build-logic/build.gradle.kts (needs asDependency() literals) and
  top-level project-version assignments ("^version = \"x.y.z\"")
  which are artifact metadata, not library pins.
- verify-shared-pure.sh (INFRA-06 / D-19): shared/commonMain must
  not import Ktor/Compose/SQLDelight. Returns OK if the directory
  does not exist yet (pre-scaffold tolerance for Plan 07).
- verify-ios-flags.sh (INFRA-03 / D-18): both K/N iOS binary flags
  present in gradle.properties.

All three use bash (#!/usr/bin/env bash + set -euo pipefail) and
are marked chmod +x. Scripts exit 0 against the current repo state.
2026-04-24 18:16:29 +02:00

7 lines
431 B
Bash
Executable File

#!/usr/bin/env bash
# Enforces INFRA-03 / D-18: iOS K/N flags present in gradle.properties.
set -euo pipefail
grep -q '^kotlin\.native\.binary\.gc=cms$' gradle.properties || { echo "MISSING: kotlin.native.binary.gc=cms" >&2; exit 1; }
grep -q '^kotlin\.native\.binary\.objcDisposeOnMain=false$' gradle.properties || { echo "MISSING: kotlin.native.binary.objcDisposeOnMain=false" >&2; exit 1; }
echo "OK: iOS binary flags present."