102 lines
3.1 KiB
Kotlin
102 lines
3.1 KiB
Kotlin
import java.util.Properties
|
|
|
|
plugins {
|
|
id("com.android.application")
|
|
id("org.jetbrains.kotlin.android")
|
|
id("com.chaquo.python")
|
|
}
|
|
|
|
// El programa es el mismo que en el resto de versiones: se copia tal cual desde programa/cartera
|
|
// (sin la carpeta de entidades concretas, que no se publica) antes de empaquetar.
|
|
val programa = rootProject.projectDir.resolve("../../programa/cartera")
|
|
val copiaDelPrograma = layout.buildDirectory.dir("caudal-python")
|
|
val traerCaudal = tasks.register<Sync>("traerCaudal") {
|
|
from(programa) {
|
|
exclude("extras/**", "**/__pycache__/**")
|
|
into("cartera")
|
|
}
|
|
into(copiaDelPrograma)
|
|
}
|
|
|
|
// La firma de las versiones: un fichero firma.properties junto a este, que NO se versiona
|
|
// (storeFile, storePassword, keyAlias, keyPassword). Sin él solo se puede construir la de pruebas.
|
|
val firma = Properties().apply {
|
|
val f = rootProject.file("firma.properties")
|
|
if (f.isFile) f.inputStream().use { load(it) }
|
|
}
|
|
|
|
android {
|
|
namespace = "com.huveme.caudal"
|
|
compileSdk = 35
|
|
|
|
defaultConfig {
|
|
applicationId = "com.huveme.caudal"
|
|
minSdk = 26
|
|
targetSdk = 35
|
|
versionCode = 306
|
|
versionName = "0.3.6"
|
|
ndk {
|
|
abiFilters += listOf("arm64-v8a", "x86_64") // teléfonos de hoy y el emulador
|
|
}
|
|
}
|
|
|
|
signingConfigs {
|
|
if (firma.containsKey("storeFile")) {
|
|
create("version") {
|
|
storeFile = rootProject.file(firma.getProperty("storeFile"))
|
|
storePassword = firma.getProperty("storePassword")
|
|
keyAlias = firma.getProperty("keyAlias")
|
|
keyPassword = firma.getProperty("keyPassword")
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = false
|
|
signingConfig = signingConfigs.findByName("version")
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = "17"
|
|
}
|
|
}
|
|
|
|
chaquopy {
|
|
defaultConfig {
|
|
version = "3.12"
|
|
pip {
|
|
// Las mismas dependencias que el resto de versiones (programa/requirements.txt)
|
|
install("requests>=2.31")
|
|
install("beautifulsoup4>=4.12")
|
|
install("lxml>=4.9")
|
|
install("openpyxl>=3.1")
|
|
install("cryptography>=38")
|
|
install("certifi>=2026.10.19")
|
|
}
|
|
}
|
|
sourceSets {
|
|
getByName("main") {
|
|
srcDir("src/main/python")
|
|
srcDir(copiaDelPrograma)
|
|
}
|
|
}
|
|
}
|
|
|
|
// Que el programa esté copiado antes de que Chaquopy lo recoja
|
|
tasks.matching { it.name.startsWith("merge") && it.name.endsWith("PythonSources") }.configureEach {
|
|
dependsOn(traerCaudal)
|
|
}
|
|
|
|
dependencies {
|
|
implementation("androidx.core:core-ktx:1.15.0")
|
|
implementation("androidx.appcompat:appcompat:1.7.0")
|
|
implementation("androidx.biometric:biometric:1.1.0")
|
|
implementation("androidx.webkit:webkit:1.12.1")
|
|
implementation("com.journeyapps:zxing-android-embedded:4.3.0") // leer el QR de enlace (sin servicios de Google)
|
|
}
|