From 5e8ca9f4ae38027af37103ab170f76cb13a6e827 Mon Sep 17 00:00:00 2001 From: Taner Sener Date: Fri, 16 Sep 2022 18:45:43 +0100 Subject: [PATCH] upgrade agp to 7.3.0 --- android.sh | 4 +- android/build.gradle | 2 +- android/ffmpeg-kit-android-lib/build.gradle | 22 ++-- ...{proguard-rules.pro => consumer-rules.pro} | 7 -- .../src/main/AndroidManifest.xml | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- tools/{release => }/android/build.gradle | 22 ++-- tools/{release => }/android/build.lts.gradle | 22 ++-- tools/android/release.template.gradle | 114 ++++++++++++++++++ tools/release/android.lts.sh | 2 +- tools/release/android.sh | 2 +- tools/release/android/release.template.gradle | 99 --------------- tools/release/ios.lts.sh | 2 +- tools/release/ios.sh | 2 +- tools/release/macos.lts.sh | 2 +- tools/release/macos.sh | 2 +- tools/release/tvos.lts.sh | 2 +- tools/release/tvos.sh | 2 +- 18 files changed, 171 insertions(+), 143 deletions(-) rename android/ffmpeg-kit-android-lib/{proguard-rules.pro => consumer-rules.pro} (54%) rename tools/{release => }/android/build.gradle (68%) rename tools/{release => }/android/build.lts.gradle (68%) create mode 100644 tools/android/release.template.gradle delete mode 100644 tools/release/android/release.template.gradle diff --git a/android.sh b/android.sh index 2790616..73a9b77 100755 --- a/android.sh +++ b/android.sh @@ -36,13 +36,13 @@ BUILD_VERSION=$(git describe --tags --always 2>>"${BASEDIR}"/build.log) # PROCESS LTS BUILD OPTION FIRST AND SET BUILD TYPE: MAIN OR LTS rm -f "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 -cp "${BASEDIR}"/tools/release/android/build.gradle "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 +cp "${BASEDIR}"/tools/android/build.gradle "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 for argument in "$@"; do if [[ "$argument" == "-l" ]] || [[ "$argument" == "--lts" ]]; then enable_lts_build BUILD_TYPE_ID+="LTS " rm -f "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 - cp "${BASEDIR}"/tools/release/android/build.lts.gradle "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 + cp "${BASEDIR}"/tools/android/build.lts.gradle "${BASEDIR}"/android/ffmpeg-kit-android-lib/build.gradle 1>>"${BASEDIR}"/build.log 2>&1 fi done diff --git a/android/build.gradle b/android/build.gradle index 338aa18..d257e48 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,7 +4,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.2.2' + classpath 'com.android.tools.build:gradle:7.3.0' } } diff --git a/android/ffmpeg-kit-android-lib/build.gradle b/android/ffmpeg-kit-android-lib/build.gradle index 4e59559..b089d56 100644 --- a/android/ffmpeg-kit-android-lib/build.gradle +++ b/android/ffmpeg-kit-android-lib/build.gradle @@ -1,25 +1,31 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 31 + namespace 'com.arthenica.ffmpegkit' + compileSdk 31 ndkVersion "22.1.7171670" defaultConfig { - minSdkVersion 24 - targetSdkVersion 31 + minSdk 24 + targetSdk 31 versionCode 240510 versionName "5.1" project.archivesBaseName = "ffmpeg-kit" - consumerProguardFiles 'proguard-rules.pro' + consumerProguardFiles "consumer-rules.pro" } buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + sourceSets { main { jniLibs.srcDirs = ["../libs"] @@ -44,11 +50,11 @@ task javadoc(type: Javadoc) { } dependencies { - implementation 'com.arthenica:smart-exception-java:0.1.1' + implementation 'com.arthenica:smart-exception-java:0.2.1' testImplementation "androidx.test.ext:junit:1.1.3" - testImplementation "org.json:json:20201115" + testImplementation 'org.json:json:20220320' } if (System.properties.containsKey('releaseFFmpegKit')) { - apply from: "${rootProject.projectDir}/../tools/release/android/release.template.gradle" + apply from: "${rootProject.projectDir}/../tools/android/release.template.gradle" } diff --git a/android/ffmpeg-kit-android-lib/proguard-rules.pro b/android/ffmpeg-kit-android-lib/consumer-rules.pro similarity index 54% rename from android/ffmpeg-kit-android-lib/proguard-rules.pro rename to android/ffmpeg-kit-android-lib/consumer-rules.pro index e76a81a..ac4153e 100644 --- a/android/ffmpeg-kit-android-lib/proguard-rules.pro +++ b/android/ffmpeg-kit-android-lib/consumer-rules.pro @@ -1,10 +1,3 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -keep class com.arthenica.ffmpegkit.FFmpegKitConfig { native ; void log(long, int, byte[]); diff --git a/android/ffmpeg-kit-android-lib/src/main/AndroidManifest.xml b/android/ffmpeg-kit-android-lib/src/main/AndroidManifest.xml index a815d2d..74b7379 100644 --- a/android/ffmpeg-kit-android-lib/src/main/AndroidManifest.xml +++ b/android/ffmpeg-kit-android-lib/src/main/AndroidManifest.xml @@ -1 +1,3 @@ - + + + \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index da9702f..ae04661 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tools/release/android/build.gradle b/tools/android/build.gradle similarity index 68% rename from tools/release/android/build.gradle rename to tools/android/build.gradle index 4e59559..b089d56 100644 --- a/tools/release/android/build.gradle +++ b/tools/android/build.gradle @@ -1,25 +1,31 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 31 + namespace 'com.arthenica.ffmpegkit' + compileSdk 31 ndkVersion "22.1.7171670" defaultConfig { - minSdkVersion 24 - targetSdkVersion 31 + minSdk 24 + targetSdk 31 versionCode 240510 versionName "5.1" project.archivesBaseName = "ffmpeg-kit" - consumerProguardFiles 'proguard-rules.pro' + consumerProguardFiles "consumer-rules.pro" } buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + sourceSets { main { jniLibs.srcDirs = ["../libs"] @@ -44,11 +50,11 @@ task javadoc(type: Javadoc) { } dependencies { - implementation 'com.arthenica:smart-exception-java:0.1.1' + implementation 'com.arthenica:smart-exception-java:0.2.1' testImplementation "androidx.test.ext:junit:1.1.3" - testImplementation "org.json:json:20201115" + testImplementation 'org.json:json:20220320' } if (System.properties.containsKey('releaseFFmpegKit')) { - apply from: "${rootProject.projectDir}/../tools/release/android/release.template.gradle" + apply from: "${rootProject.projectDir}/../tools/android/release.template.gradle" } diff --git a/tools/release/android/build.lts.gradle b/tools/android/build.lts.gradle similarity index 68% rename from tools/release/android/build.lts.gradle rename to tools/android/build.lts.gradle index 5e6299b..ca4a5bf 100644 --- a/tools/release/android/build.lts.gradle +++ b/tools/android/build.lts.gradle @@ -1,25 +1,31 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 31 + namespace 'com.arthenica.ffmpegkit' + compileSdk 31 ndkVersion "22.1.7171670" defaultConfig { - minSdkVersion 16 - targetSdkVersion 31 + minSdk 16 + targetSdk 31 versionCode 160510 versionName "5.1.LTS" project.archivesBaseName = "ffmpeg-kit" - consumerProguardFiles 'proguard-rules.pro' + consumerProguardFiles "consumer-rules.pro" } buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + sourceSets { main { jniLibs.srcDirs = ["../libs"] @@ -44,11 +50,11 @@ task javadoc(type: Javadoc) { } dependencies { - implementation 'com.arthenica:smart-exception-java:0.1.1' + implementation 'com.arthenica:smart-exception-java:0.2.1' testImplementation "androidx.test.ext:junit:1.1.3" - testImplementation "org.json:json:20201115" + testImplementation 'org.json:json:20220320' } if (System.properties.containsKey('releaseFFmpegKit')) { - apply from: "${rootProject.projectDir}/../tools/release/android/release.template.gradle" + apply from: "${rootProject.projectDir}/../tools/android/release.template.gradle" } diff --git a/tools/android/release.template.gradle b/tools/android/release.template.gradle new file mode 100644 index 0000000..ed7d392 --- /dev/null +++ b/tools/android/release.template.gradle @@ -0,0 +1,114 @@ +task sourcesJar(type: Jar) { + archiveClassifier.set('sources') + from android.sourceSets.main.java.srcDirs +} + +task javadocJar(type: Jar, dependsOn: javadoc) { + archiveClassifier.set('javadoc') + from javadoc.destinationDir +} + +artifacts { + archives javadocJar + archives sourcesJar +} + +apply plugin: 'maven-publish' +apply plugin: 'signing' + +group = 'com.arthenica' +archivesBaseName = releaseProject +version = releaseVersionName + +File propertiesFile = project.rootProject.file('local.properties') +if (propertiesFile.exists()) { + Properties properties = new Properties() + properties.load(new FileInputStream(propertiesFile)) + properties.each { name, value -> + ext[name] = value + } +} + +ext { + publishedGroupId = group + artifact = releaseProject + libraryName = releaseProject + libraryVersion = version + libraryDescription = releaseProjectDescription + + siteUrl = 'https://github.com/tanersener/ffmpeg-kit' + gitUrl = 'https://github.com/tanersener/ffmpeg-kit.git' + + developerId = 'tanersener' + developerName = 'Taner Sener' + developerEmail = 'tanersener@gmail.com' + + if (Project.hasProperty('releaseGPL')) { + licenseName = 'GNU General Public License version 3' + licenseUrl = 'https://www.gnu.org/licenses/gpl-3.0.txt' + } else { + licenseName = 'GNU Lesser General Public License, Version 3' + licenseUrl = 'https://www.gnu.org/licenses/lgpl-3.0.txt' + } +} + +afterEvaluate { + publishing { + publications { + release(MavenPublication) { + + groupId group + artifactId = libraryName + version = version + + from components.release + + artifact sourcesJar + artifact javadocJar + + pom { + packaging 'aar' + name = libraryName + description = libraryDescription + url = siteUrl + + licenses { + license { + name = licenseName + url = licenseUrl + } + } + developers { + developer { + id = developerId + name = developerName + email = developerEmail + } + } + + scm { + connection = gitUrl + developerConnection = gitUrl + url = siteUrl + } + } + } + } + repositories { + maven { + var releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/" + var snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/" + url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl + credentials { + username ossrhUsername + password ossrhPassword + } + } + } + } +} + + +signing { + sign publishing.publications +} diff --git a/tools/release/android.lts.sh b/tools/release/android.lts.sh index 4e03eab..fb17713 100755 --- a/tools/release/android.lts.sh +++ b/tools/release/android.lts.sh @@ -29,7 +29,7 @@ export VERSION_CODE=${VERSION_CODE:0:6} if [[ "${ANDROID_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${ANDROID_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update ffmpegkit.h versions for both android and ios" echo "5. Update versions in Doxyfile" diff --git a/tools/release/android.sh b/tools/release/android.sh index df2581a..5a69835 100755 --- a/tools/release/android.sh +++ b/tools/release/android.sh @@ -29,7 +29,7 @@ export VERSION_CODE=${VERSION_CODE:0:6} if [[ "${ANDROID_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${ANDROID_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update ffmpegkit.h versions for both android and ios" echo "5. Update versions in Doxyfile" diff --git a/tools/release/android/release.template.gradle b/tools/release/android/release.template.gradle deleted file mode 100644 index f85ed0a..0000000 --- a/tools/release/android/release.template.gradle +++ /dev/null @@ -1,99 +0,0 @@ -task sourcesJar(type: Jar) { - archiveClassifier.set('sources') - from android.sourceSets.main.java.srcDirs -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - archiveClassifier.set('javadoc') - from javadoc.destinationDir -} - -artifacts { - archives javadocJar - archives sourcesJar -} - -apply plugin: 'maven' -apply plugin: 'signing' - -group = 'com.arthenica' -archivesBaseName = releaseProject -version = releaseVersionName - -File propertiesFile = project.rootProject.file('local.properties') -if (propertiesFile.exists()) { - Properties properties = new Properties() - properties.load(new FileInputStream(propertiesFile)) - properties.each { name, value -> - ext[name] = value - } -} - -ext { - publishedGroupId = group - artifact = releaseProject - libraryName = releaseProject - libraryVersion = version - libraryDescription = releaseProjectDescription - - siteUrl = 'https://github.com/tanersener/ffmpeg-kit' - gitUrl = 'https://github.com/tanersener/ffmpeg-kit.git' - - developerId = 'tanersener' - developerName = 'Taner Sener' - developerEmail = 'tanersener@gmail.com' - - if (Project.hasProperty('releaseGPL')) { - licenseName = 'GNU General Public License version 3' - licenseUrl = 'https://www.gnu.org/licenses/gpl-3.0.txt' - } else { - licenseName = 'GNU Lesser General Public License, Version 3' - licenseUrl = 'https://www.gnu.org/licenses/lgpl-3.0.txt' - } -} - -uploadArchives { - repositories { - mavenDeployer { - beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } - - repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { - authentication(userName: ossrhUsername, password: ossrhPassword) - } - - pom.project { - packaging 'aar' - name = libraryName - description = libraryDescription - url = siteUrl - - licenses { - license { - name = licenseName - url = licenseUrl - } - } - developers { - developer { - id developerId - name developerName - email developerEmail - } - } - scm { - connection gitUrl - developerConnection gitUrl - url siteUrl - } - } - } - } -} - -signing { - sign configurations.archives -} diff --git a/tools/release/ios.lts.sh b/tools/release/ios.lts.sh index c5ad8de..ae7e6bb 100755 --- a/tools/release/ios.lts.sh +++ b/tools/release/ios.lts.sh @@ -38,7 +38,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple" diff --git a/tools/release/ios.sh b/tools/release/ios.sh index 74db917..1afea4b 100755 --- a/tools/release/ios.sh +++ b/tools/release/ios.sh @@ -41,7 +41,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple" diff --git a/tools/release/macos.lts.sh b/tools/release/macos.lts.sh index 0b60ebe..33b0580 100755 --- a/tools/release/macos.lts.sh +++ b/tools/release/macos.lts.sh @@ -38,7 +38,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple" diff --git a/tools/release/macos.sh b/tools/release/macos.sh index 036266c..0e6f937 100755 --- a/tools/release/macos.sh +++ b/tools/release/macos.sh @@ -41,7 +41,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple" diff --git a/tools/release/tvos.lts.sh b/tools/release/tvos.lts.sh index c386f29..0e3b017 100755 --- a/tools/release/tvos.lts.sh +++ b/tools/release/tvos.lts.sh @@ -37,7 +37,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple" diff --git a/tools/release/tvos.sh b/tools/release/tvos.sh index 8f635a1..6b72a99 100755 --- a/tools/release/tvos.sh +++ b/tools/release/tvos.sh @@ -41,7 +41,7 @@ fi if [[ "${APPLE_FFMPEG_KIT_VERSION}" != "$1" ]]; then echo "Error: version mismatch. v$1 requested but v${APPLE_FFMPEG_KIT_VERSION} found. Please perform the following updates and try again." echo "1. Update docs" - echo "2. Update gradle files under the tools/release/android folder" + echo "2. Update gradle files under the tools/android folder" echo "3. Update the versions in tools/release/common.sh" echo "4. Update podspec links" echo "5. Update ffmpegkit.h versions for both android and apple"