plugins {
  id("com.android.application")
  id("org.jetbrains.kotlin.android")
}

android {
  // El .so nativo exporta Java_com_solarnethub_oasis_OasisActivity_startNodeWithArguments,
  // asi que la clase puente tiene que vivir en ese paquete para que el simbolo resuelva.
  // El applicationId si es propio: la app se instala junto a la oficial sin pisarla.
  namespace = "com.solarnethub.oasis"
  compileSdk = 35

  defaultConfig {
    applicationId = "net.laenre.oasis"
    minSdk = 24
    targetSdk = 35
    // el pipeline los pasa por entorno; a mano valen los de aqui
    versionCode = (System.getenv("OASIS_VERSION_CODE") ?: "1").toInt()
    versionName = System.getenv("OASIS_VERSION_NAME") ?: "0.9.5"
    ndk { abiFilters += listOf("arm64-v8a") }
  }

  signingConfigs {
    create("release") {
      val ks = System.getenv("OASIS_KEYSTORE")
      if (ks != null) {
        storeFile = file(ks)
        storePassword = System.getenv("OASIS_KEYSTORE_PASS")
        keyAlias = System.getenv("OASIS_KEY_ALIAS") ?: "oasis"
        keyPassword = System.getenv("OASIS_KEY_PASS") ?: System.getenv("OASIS_KEYSTORE_PASS")
      }
    }
  }

  buildTypes {
    release {
      isMinifyEnabled = false
      if (System.getenv("OASIS_KEYSTORE") != null) signingConfig = signingConfigs.getByName("release")
    }
  }

  buildFeatures { buildConfig = true }

  packaging {
    jniLibs {
      // libnode.so son 49 MB: sin comprimir se carga por mmap y arranca mas rapido
      useLegacyPackaging = false
    }
  }

  compileOptions {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
  }
  kotlinOptions { jvmTarget = "17" }
}

dependencies {
  implementation("androidx.appcompat:appcompat:1.7.0")
  implementation("androidx.core:core-ktx:1.13.1")
}
