feat: Add Windows support and stabilize SDK installation (v1.0.0-rc1)
Complete Windows compatibility overhaul with robust cross-platform SDK management. This release candidate establishes feature freeze for the 1.0.0 release. Key improvements: - Fixed Android SDK installation on Windows * Use cmd.exe wrapper for sdkmanager.bat with piped stdin * Properly reorganize cmdline-tools directory structure * Write license acceptances synchronously to avoid hangs - Fixed FTC SDK configuration * Auto-generate local.properties with Android SDK path * Escape backslashes in Kotlin build.gradle.kts strings * Support both new installs and upgrades via ensure_local_properties() - Enhanced Windows console output * Enable ANSI color support via enable_ansi_support crate * Maintain color compatibility across Windows versions - Improved error handling and debugging * Added comprehensive logging throughout SDK installation * Better context messages for troubleshooting failures Cross-platform testing verified on: - Windows 11 with Eclipse Adoptium JDK 21 - Linux (existing support maintained) Breaking changes: None This RC introduces feature freeze - subsequent 1.0.x releases will be bug fixes only. New features deferred to 1.1.0. Closes Windows compatibility milestone.
This commit is contained in:
@@ -87,7 +87,6 @@ impl ProjectBuilder {
|
||||
FTC Robot Project generated by Weevil v1.0.0
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Test your code (runs on PC, no robot needed)
|
||||
./gradlew test
|
||||
@@ -124,6 +123,9 @@ deploy.bat
|
||||
fs::write(project_path.join(".weevil-version"), "1.0.0")?;
|
||||
|
||||
// build.gradle.kts - Pure Java with deployToSDK task
|
||||
// Escape backslashes for Windows paths in Kotlin strings
|
||||
let sdk_path = sdk_config.ftc_sdk_path.display().to_string().replace("\\", "\\\\");
|
||||
|
||||
let build_gradle = format!(r#"plugins {{
|
||||
java
|
||||
}}
|
||||
@@ -192,7 +194,7 @@ tasks.register<Exec>("buildApk") {{
|
||||
println("✓ APK built successfully")
|
||||
}}
|
||||
}}
|
||||
"#, sdk_config.ftc_sdk_path.display(), sdk_config.ftc_sdk_path.display());
|
||||
"#, sdk_path, sdk_path);
|
||||
fs::write(project_path.join("build.gradle.kts"), build_gradle)?;
|
||||
|
||||
// settings.gradle.kts
|
||||
|
||||
Reference in New Issue
Block a user