Installed SDKs and build caches
Keep the installed CLI, JavaScript API, templates, and native libraries together. Runtime 0.2 builds applications using writable project staging without writing into read-only SDK inputs. Host SDKs, tools, and caches still need writable locations when installation or updates require them.
Locate toolchain configuration#
The npm launcher stores new first-run configuration outside the installed package:
| Override or host | Configuration location |
|---|---|
ORO_ENV_FILE |
Explicit file; relative values resolve against the invoking directory |
ORO_CONFIG_HOME |
Directory containing the user configuration |
| Linux default | $XDG_CONFIG_HOME/oro or ~/.config/oro |
| macOS default | ~/Library/Application Support/oro |
| Windows default | %LOCALAPPDATA%\oro or ~/AppData/Local/oro |
The filename defaults to .oro.env; ORO_ENV_FILENAME selects another name. An existing user file takes precedence over legacy SDK-local configuration. Without an explicit override or user file, an existing SDK-local file remains readable for compatibility and is not rewritten. --version and --help do not run setup or create configuration.
The native CLI fills unset values from the project's .oro.env, then the selected ORO_ENV_FILE, then legacy SDK defaults. Existing process environment values win. This toolchain configuration is separate from the application's oro.toml and .ororc.
If a compiled CLI/template or Android API/source fingerprint mismatch is reported, reinstall or rebuild the matching SDK. Do not bypass the mismatch by mixing files from unrelated installations. Unix Android setup can reuse complete installed-package metadata and required tools offline; it still provisions missing packages and cannot acquire missing Gradle dependencies offline.
Opt into build result caches#
oroc build --cache .
oroc build --platform=android --cache --no-android-configuration-cache .
Optional build result caches default to off. A project can opt in:
[build]
cache = true
[android]
configuration_cache = false
[ios]
cache = false
| Cache | Project settings | CLI override |
|---|---|---|
| Supported result caches | build.cache, platform cache |
--cache / --no-cache |
| Native object compilation | build.compiler_cache, platform compiler_cache |
--compiler-cache / --no-compiler-cache |
| Android cache family | android.cache |
--android-cache / --no-android-cache |
| Gradle task outputs | android.build_cache |
--android-build-cache / --no-android-build-cache |
| Gradle configuration | android.configuration_cache |
--android-configuration-cache / --no-android-configuration-cache |
CLI cache-specific flags override Android-family flags, which override general flags; supplying positive and negative forms of the same flag is an error. Platform-specific configuration overrides corresponding build defaults. Android emulator targets inherit Android settings; iOS Simulator inherits iOS settings. Desktop platform sections are linux, mac, and win.
Native compiler caching uses ccache, falling back to sccache; Windows prefers sccache. Without either tool, Oro reports the missing cache and compiles directly. A selected launcher/compiler failure still fails the build. Custom hooks receive ORO_BUILD_CACHE and ORO_COMPILER_CACHE as 1 or 0 and must configure their own tools. These options do not clear entries or control dependency downloads, runtime data caches, or source bootstrap.
Linux source-development SDKs#
For Runtime contributors, pnpm relink / npm run relink publishes a copied, verified Linux SDK under .local/share/oro-sdk/linux; ORO_LOCAL_SDK_HOME overrides that location. Immutable generations contain matched CLI/API/native inputs. Activation is atomic, active-command leases retain in-use generations, failed activation can roll back, and unused generations/interrupted staging are collected under the retention policy.
Editing a source checkout does not change an activated generation: rebuild and relink. This workflow is separate from npm publication and ordinary npm installation. See the source-build, retention, and cleanup reference.
Source repository · Edit this page · View Markdown