d3b6026bfd
- Filled empty libs/hbb_common/ submodule (cloned from rustdesk/hbb_common) - Patched Flutter 3.44 / Dart 3.12 compatibility: * flutter/lib/generated_bridge.dart: asTypedList with cast<>, DartPort=Int64 * flutter/lib/common.dart: DialogTheme->DialogThemeData, TabBarTheme->TabBarThemeData * flutter/pubspec.yaml: extended_text 14.0.0->15.0.2, google_fonts override 5.0.0 * flutter/macos/Runner/Configs/Release.xcconfig: EXCLUDED_ARCHS=x86_64 - Build verified: cargo check + cargo build --features flutter + cargo build --release --features flutter - Verified flutter build macos --debug and --release both produce working .app - Verified .dmg installer (27MB arm64) created via hdiutil - Build deps: Xcode 26.5, CocoaPods 1.16.2, Flutter 3.44, VCPKG arm64-osx
138 lines
4.0 KiB
Groovy
138 lines
4.0 KiB
Groovy
import com.google.protobuf.gradle.*
|
|
import groovy.json.JsonSlurper
|
|
|
|
plugins {
|
|
id "com.google.protobuf" version "0.9.4"
|
|
id "com.android.application"
|
|
id "kotlin-android"
|
|
id "dev.flutter.flutter-gradle-plugin"
|
|
}
|
|
|
|
def keystoreProperties = new Properties()
|
|
def keystorePropertiesFile = rootProject.file('key.properties')
|
|
if (keystorePropertiesFile.exists()) {
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
}
|
|
|
|
def localProperties = new Properties()
|
|
def localPropertiesFile = rootProject.file('local.properties')
|
|
if (localPropertiesFile.exists()) {
|
|
localPropertiesFile.withReader('UTF-8') { reader ->
|
|
localProperties.load(reader)
|
|
}
|
|
}
|
|
|
|
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
|
if (flutterVersionCode == null) {
|
|
flutterVersionCode = '1'
|
|
}
|
|
|
|
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
|
if (flutterVersionName == null) {
|
|
flutterVersionName = '1.0'
|
|
}
|
|
|
|
// Add rustls-platform-verifier Android support
|
|
String findRustlsPlatformVerifierMavenDir() {
|
|
def dependencyText = providers.exec {
|
|
it.workingDir = new File("../..")
|
|
commandLine("cargo", "metadata", "--format-version", "1")
|
|
}.standardOutput.asText.get()
|
|
|
|
def dependencyJson = new JsonSlurper().parseText(dependencyText)
|
|
def pkg = dependencyJson.packages.find { it.name == "rustls-platform-verifier-android" }
|
|
|
|
if (pkg == null) {
|
|
throw new GradleException("rustls-platform-verifier-android package not found in cargo metadata!")
|
|
}
|
|
|
|
def manifestPath = file(pkg.manifest_path)
|
|
def mavenDir = new File(manifestPath.parentFile, "maven")
|
|
|
|
if (!mavenDir.exists()) {
|
|
throw new GradleException("Maven directory not found at: ${mavenDir.path}")
|
|
}
|
|
|
|
println("✓ Found rustls-platform-verifier maven repo at: ${mavenDir.path}")
|
|
return mavenDir.path
|
|
}
|
|
|
|
|
|
repositories {
|
|
maven {
|
|
url = findRustlsPlatformVerifierMavenDir()
|
|
metadataSources.artifact()
|
|
}
|
|
}
|
|
|
|
protobuf {
|
|
protoc {
|
|
artifact = 'com.google.protobuf:protoc:3.20.1'
|
|
}
|
|
|
|
generateProtoTasks {
|
|
all().configureEach { task ->
|
|
task.builtins {
|
|
java {
|
|
option "lite"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 34
|
|
sourceSets {
|
|
main.java.srcDirs += 'src/main/kotlin'
|
|
|
|
main.proto.srcDirs += '../../../libs/hbb_common/protos'
|
|
main.proto.includes += "message.proto"
|
|
}
|
|
|
|
compileOptions {
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
defaultConfig {
|
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
|
applicationId "com.carriez.flutter_hbb"
|
|
minSdkVersion 22
|
|
targetSdkVersion 33
|
|
versionCode flutterVersionCode.toInteger()
|
|
versionName flutterVersionName
|
|
}
|
|
|
|
signingConfigs {
|
|
release {
|
|
keyAlias keystoreProperties['keyAlias']
|
|
keyPassword keystoreProperties['keyPassword']
|
|
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
|
storePassword keystoreProperties['storePassword']
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
// TODO: Add your own signing config for the release build.
|
|
// Signing with the debug keys for now, so `flutter run --release` works.
|
|
signingConfig signingConfigs.release
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules'
|
|
}
|
|
}
|
|
}
|
|
|
|
flutter {
|
|
source '../..'
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'com.google.protobuf:protobuf-javalite:3.20.1'
|
|
implementation "androidx.media:media:1.6.0"
|
|
implementation 'com.github.getActivity:XXPermissions:18.5'
|
|
implementation("org.jetbrains.kotlin:kotlin-stdlib") { version { strictly("1.9.10") } }
|
|
implementation 'com.caverock:androidsvg-aar:1.4'
|
|
implementation "rustls:rustls-platform-verifier:0.1.1"
|
|
}
|