Skip to content
webos21Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

22 Commits

Folders and files

Repository files navigation

CRT-CLI

CRT-CLI is a CRT-native development-environment manager for building C and C++ applications on Linux, Windows, and macOS. Its executable is crt-cli.

It aims to make CRT's Bionic-compatible runtime and staged SDKs easier to use: select an SDK, create a project, add libraries, and build/run/package an application without manually assembling startup objects, sysroots, special compiler flags, or runtime search paths.

Project Maturity

Local native bootstrap replays are recorded for Linux/x86_64, Linux/aarch64, macOS/arm64, Windows/x64 and Windows/arm64 at their exact source/SDK snapshots. The native C++ builder reads crt.json and invokes LLVM directly. new creates separate C/C++ files under src/main/ and src/test/, with headers in include/; bounded configure/build/test/run and bootstrap doctor are implemented. CMake, Python and shell are excluded from this app path. The SDK installer, dependency resolver, self-upgrade, complete current-source native matrix and public release remain pending. fetch can verify a detached RSA-PSS signature against an explicitly supplied public key. Official publisher keys and signed-release policy remain unassigned; the D1 audit records the measured scope and remaining gates.

See the build guide and implemented contract for actual entry points and limitations. Bootstrap doctor reports integrity as not verified and HTTPS as not run; it is not complete installation/project health acceptance.

Intended Experience

crt-cli sdk install --profile cxx
crt-cli doctor
crt-cli new hello --language cxx
cd hello
crt-cli add zlib
crt-cli build
crt-cli run
  • Choose an SDK: use the existing CRT stage appropriate for C, C++, graphics, media, UI, or Web applications rather than always downloading WebKit.
  • Use additional libraries: fetch reviewed upstream sources and build them locally through CRT port recipes; keep exact SDK and dependency locks.
  • Develop applications: use one workflow for project creation, build, run, test, and packaging, with structured diagnostics for CI and automation.
  • Keep environments separate: manage CRT host tools and runtime dependencies without silently replacing tools or changing the system PATH.

The CLI itself is intended to use CRT and ship as one executable per supported host, able to start before a development SDK is installed. Full three-host validation remains pending. The selected policy allows OS dependencies, data/cache/certificates, previous versions and temporary update helpers; no permanent auxiliary launcher is used. Planned upgrade updates the CLI itself; doctor distinguishes self, environment and project health. Projects pin their own SDK version/profile independently of CLI updates. SDK payloads use shared immutable storage with exact project references; first configure/build acquires a missing SDK, while new only creates sources. Automatic acquisition and shared-store installation remain planned; the current experiment selects a local SDK and separately hashed compiler policy explicitly. The default SDK store is $USER_HOME/.crt/sdks on all hosts. Native project targets distinguish executables, static libraries and shared libraries, with static/shared runtime linkage; the CLI's own one-executable goal does not restrict the applications it builds. JSON and SHA-2 are supplied by the Dev SDK. CRT Studio is a later, separate native IDE built on this CLI workflow.

Platforms and Requirements

Initial native validation targets are Windows/x64, Linux/x86_64, and macOS/arm64. These are design targets, not a completed support matrix. External LLVM and native build tools remain prerequisites; the CRT SDK owns the target compilation/linking contract. Windows build/source-stage hosts require Developer Mode and real filesystem symlinks. The CLI must diagnose missing prerequisites rather than change security settings automatically.

Learn More and Contribute

  • Documentation: design, development guidance, and acceptance.
  • Development guide: the current bootstrap process and what is not implemented yet.
  • TODO: active work and ordered plans.
  • HISTORY: dated completed work.
  • AGENTS.md: repository development rules.

Design and bootstrap contributions should preserve the SDK-only consumer boundary and avoid making the CRT runtime depend on CLI sources.

License

Unless otherwise noted, project-owned source code and documentation in this repository are licensed under the Apache License, Version 2.0 (SPDX identifier: Apache-2.0).

The CRT runtime and other third-party components retain their respective licenses. See dependency ownership and notices; the project license does not replace their license or notice requirements.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages