ffmpeg-kit/react-native/android/build.gradle

130 lines
3.1 KiB
Groovy
Raw Permalink Normal View History

2021-03-27 02:11:45 +02:00
buildscript {
repositories {
google()
2022-10-02 22:45:51 +03:00
mavenCentral()
2021-03-27 02:11:45 +02:00
}
dependencies {
2023-08-27 18:28:14 +03:00
classpath 'com.android.tools.build:gradle:8.1.0'
2021-03-27 02:11:45 +02:00
}
}
apply plugin: 'com.android.library'
static def safePackageName(String packageName) {
packageName.replace("-lts", "")
}
def safePackageVersion(String packageName) {
def version = project.properties['ffmpegKit.android.main.version']
def ltsVersion = project.properties['ffmpegKit.android.lts.version']
packageName.contains("-lts") ? ltsVersion + ".LTS" : version
}
def safeExtGet(String prop, String fallback) {
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
android {
2023-08-27 18:28:14 +03:00
if (project.android.hasProperty("namespace")) {
namespace 'com.arthenica.ffmpegkit.reactnative'
}
compileSdkVersion 33
2021-03-27 02:11:45 +02:00
defaultConfig {
minSdkVersion safeExtGet('ffmpegKitPackage', 'https').contains("-lts") ? 16 : 24
2023-08-27 18:28:14 +03:00
targetSdkVersion 33
2023-09-19 01:22:06 +03:00
versionCode 602
versionName "6.0.2"
2021-03-27 02:11:45 +02:00
}
buildTypes {
release {
minifyEnabled false
}
}
lintOptions {
disable 'GradleCompatible'
}
compileOptions {
2022-10-02 22:45:51 +03:00
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
2021-03-27 02:11:45 +02:00
}
}
repositories {
mavenCentral()
google()
def found = false
def defaultDir = null
def androidSourcesName = 'React Native sources'
if (rootProject.ext.has('reactNativeAndroidRoot')) {
defaultDir = rootProject.ext.get('reactNativeAndroidRoot')
} else {
defaultDir = new File(
projectDir,
'node_modules/react-native/android'
)
}
if (defaultDir.exists()) {
maven {
url defaultDir.toString()
name androidSourcesName
}
logger.info(":${project.name}:reactNativeAndroidRoot ${defaultDir.canonicalPath}")
found = true
} else {
def parentDir = rootProject.projectDir
1.upto(5, {
if (found) return true
parentDir = parentDir.parentFile
def androidSourcesDir = new File(
parentDir,
'node_modules/react-native'
)
def androidPrebuiltBinaryDir = new File(
parentDir,
'node_modules/react-native/android'
)
if (androidPrebuiltBinaryDir.exists()) {
maven {
url androidPrebuiltBinaryDir.toString()
name androidSourcesName
}
logger.info(":${project.name}:reactNativeAndroidRoot ${androidPrebuiltBinaryDir.canonicalPath}")
found = true
} else if (androidSourcesDir.exists()) {
maven {
url androidSourcesDir.toString()
name androidSourcesName
}
logger.info(":${project.name}:reactNativeAndroidRoot ${androidSourcesDir.canonicalPath}")
found = true
}
})
}
if (!found) {
throw new GradleException(
"${project.name}: unable to locate React Native android sources. " +
"Ensure you have you installed React Native as a dependency in your project and try again."
)
}
}
dependencies {
api 'com.facebook.react:react-native:+'
implementation 'com.arthenica:ffmpeg-kit-' + safePackageName(safeExtGet('ffmpegKitPackage', 'https')) + ':' + safePackageVersion(safeExtGet('ffmpegKitPackage', 'https'))
}