Initial scaffold for LibreMail, a free and open-source (GPL-3.0) Android email client. This increment delivers a buildable, runnable, themed app shell on top of the full architecture skeleton; account sign-in, IMAP/SMTP sync and sending arrive in later increments. - Gradle 9.6 + AGP 9.2 + Kotlin 2.4.0 (AGP built-in Kotlin via the buildscript classpath; KSP, no KAPT); version catalog; minSdk 33, target/compile SDK 37 - Jetpack Compose + Material 3 with Material You dynamic color, light/dark and edge-to-edge; adaptive, themed launcher icon - Navigation across Inbox, Reader, Compose, Settings (with an Advanced Settings group) and Account Setup - Hilt DI, Room cache (entities/DAOs/database), domain models, and a MailRepository as single source of truth with a sample-data fallback - Unit tests (repository + sample data) and a Compose smoke test - GPL-3.0 LICENSE, SPDX headers, README with build and Gmail OAuth setup steps Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
83 lines
2.7 KiB
Batchfile
83 lines
2.7 KiB
Batchfile
@rem
|
|
@rem Copyright 2015 the original author or authors.
|
|
@rem
|
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
|
@rem you may not use this file except in compliance with the License.
|
|
@rem You may obtain a copy of the License at
|
|
@rem
|
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
|
@rem
|
|
@rem Unless required by applicable law or agreed to in writing, software
|
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
@rem See the License for the specific language governing permissions and
|
|
@rem limitations under the License.
|
|
@rem
|
|
@rem SPDX-License-Identifier: Apache-2.0
|
|
@rem
|
|
|
|
@if "%DEBUG%"=="" @echo off
|
|
@rem ##########################################################################
|
|
@rem
|
|
@rem gradlew startup script for Windows
|
|
@rem
|
|
@rem ##########################################################################
|
|
|
|
@rem Set local scope for the variables, and ensure extensions are enabled
|
|
setlocal EnableExtensions
|
|
|
|
set DIRNAME=%~dp0
|
|
if "%DIRNAME%"=="" set DIRNAME=.
|
|
@rem This is normally unused
|
|
set APP_BASE_NAME=%~n0
|
|
set APP_HOME=%DIRNAME%
|
|
|
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
|
|
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
|
|
|
@rem Find java.exe
|
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
|
|
|
set JAVA_EXE=java.exe
|
|
%JAVA_EXE% -version >NUL 2>&1
|
|
if %ERRORLEVEL% equ 0 goto execute
|
|
|
|
echo. 1>&2
|
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
|
echo. 1>&2
|
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
echo location of your Java installation. 1>&2
|
|
|
|
"%COMSPEC%" /c exit 1
|
|
|
|
:findJavaFromJavaHome
|
|
set JAVA_HOME=%JAVA_HOME:"=%
|
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
|
|
|
if exist "%JAVA_EXE%" goto execute
|
|
|
|
echo. 1>&2
|
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
|
echo. 1>&2
|
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
|
echo location of your Java installation. 1>&2
|
|
|
|
"%COMSPEC%" /c exit 1
|
|
|
|
:execute
|
|
@rem Setup the command line
|
|
|
|
|
|
|
|
@rem Execute gradlew
|
|
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
|
|
@rem which allows us to clear the local environment before executing the java command
|
|
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
|
|
|
|
:exitWithErrorLevel
|
|
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
|
|
"%COMSPEC%" /c exit %ERRORLEVEL%
|