mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-29 06:50:59 +00:00
94 lines
3.2 KiB
Text
94 lines
3.2 KiB
Text
|
import java.text.SimpleDateFormat
|
||
|
import java.util.Date
|
||
|
|
||
|
plugins {
|
||
|
alias(libs.plugins.android.application)
|
||
|
alias(libs.plugins.jetbrains.kotlin.android)
|
||
|
alias(libs.plugins.androidx.navigation.safeargs)
|
||
|
kotlin("plugin.serialization") version "1.9.22"
|
||
|
}
|
||
|
|
||
|
android {
|
||
|
namespace = "org.freedesktop.gstreamer.examples.webrtcsrc"
|
||
|
compileSdk = 34
|
||
|
ndkVersion = "25.2.9519653"
|
||
|
|
||
|
defaultConfig {
|
||
|
applicationId = "org.freedesktop.gstreamer.examples.WebRTCSrc"
|
||
|
minSdk = 28
|
||
|
targetSdk = 34
|
||
|
versionCode = 1
|
||
|
versionName = "0.1.0"
|
||
|
|
||
|
externalNativeBuild {
|
||
|
ndkBuild {
|
||
|
var gstRoot: String?
|
||
|
if (project.hasProperty("gstAndroidRoot"))
|
||
|
gstRoot = project.property("gstAndroidRoot").toString()
|
||
|
else
|
||
|
gstRoot = System.getenv("GSTREAMER_ROOT_ANDROID")
|
||
|
if (gstRoot == null)
|
||
|
throw GradleException("GSTREAMER_ROOT_ANDROID must be set, or 'gstAndroidRoot' must be defined in your gradle.properties in the top level directory of the unpacked universal GStreamer Android binaries")
|
||
|
|
||
|
arguments("NDK_APPLICATION_MK=src/main/cpp/Application.mk", "GSTREAMER_JAVA_SRC_DIR=src/main/java", "GSTREAMER_ROOT_ANDROID=$gstRoot", "V=1")
|
||
|
|
||
|
targets("gstreamer_webrtcsrc")
|
||
|
|
||
|
// All archs except MIPS and MIPS64 are supported
|
||
|
//abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
||
|
// FIXME for some reasons x86 generation fails (observed with gstreamer-1.0-android-universal-1.24.3)
|
||
|
abiFilters("armeabi-v7a", "arm64-v8a", "x86_64")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
buildTypes {
|
||
|
release {
|
||
|
isMinifyEnabled = false
|
||
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
applicationVariants.all {
|
||
|
val variant = this
|
||
|
variant.outputs
|
||
|
.map { it as com.android.build.gradle.internal.api.BaseVariantOutputImpl }
|
||
|
.forEach { output ->
|
||
|
val date = SimpleDateFormat("YYYYMMdd").format(Date())
|
||
|
val outputFileName = "GstExamples.WebRTCSrc-${variant.baseName}-${variant.versionName}-${date}.apk"
|
||
|
output.outputFileName = outputFileName
|
||
|
}
|
||
|
}
|
||
|
|
||
|
compileOptions {
|
||
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
||
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||
|
}
|
||
|
kotlinOptions {
|
||
|
jvmTarget = "1.8"
|
||
|
}
|
||
|
buildFeatures {
|
||
|
viewBinding = true
|
||
|
}
|
||
|
externalNativeBuild {
|
||
|
ndkBuild {
|
||
|
path = file("src/main/cpp/Android.mk")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
dependencies {
|
||
|
implementation(libs.androidx.appcompat)
|
||
|
implementation(libs.androidx.constraintlayout)
|
||
|
implementation(libs.androidx.core.ktx)
|
||
|
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||
|
implementation(libs.androidx.navigation.fragment.ktx)
|
||
|
implementation(libs.androidx.navigation.ui.ktx)
|
||
|
implementation(libs.androidx.preference)
|
||
|
implementation(libs.androidx.recyclerview)
|
||
|
implementation(libs.androidx.work.runtime.ktx)
|
||
|
implementation(libs.kotlinx.serialization.json)
|
||
|
implementation(libs.ktor.client.okhttp)
|
||
|
implementation(libs.material)
|
||
|
}
|