diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index 27788435..c6cdf0cf 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -101,6 +101,7 @@ def get_gradle_compile_commands(build): 'provided', 'apk', 'implementation', + 'classpath', 'api', 'compileOnly', 'runtimeOnly'] diff --git a/tests/scanner.TestCase b/tests/scanner.TestCase index 7f04bb18..ac27d0b3 100755 --- a/tests/scanner.TestCase +++ b/tests/scanner.TestCase @@ -55,6 +55,7 @@ class ScannerTest(unittest.TestCase): 'com.jens.automation2': 2, 'com.github.shadowsocks': 6, 'org.tasks': 1, + 'OtakuWorld': 2, } for d in glob.glob(os.path.join(source_files, '*')): build = fdroidserver.metadata.Build() @@ -66,15 +67,15 @@ class ScannerTest(unittest.TestCase): def test_get_gradle_compile_commands(self): test_files = [ - ('source-files/fdroid/fdroidclient/build.gradle', 'yes', 17), - ('source-files/com.nextcloud.client/build.gradle', 'generic', 24), + ('source-files/fdroid/fdroidclient/build.gradle', 'yes', 18), + ('source-files/com.nextcloud.client/build.gradle', 'generic', 28), ('source-files/com.kunzisoft.testcase/build.gradle', 'libre', 4), ('source-files/cn.wildfirechat.chat/chat/build.gradle', 'yes', 33), ('source-files/org.tasks/app/build.gradle.kts', 'generic', 39), ('source-files/at.bitfire.davdroid/build.gradle', 'standard', 16), ('source-files/se.manyver/android/app/build.gradle', 'indie', 29), ('source-files/osmandapp/osmand/build.gradle', 'free', 5), - ('source-files/eu.siacs.conversations/build.gradle', 'free', 23), + ('source-files/eu.siacs.conversations/build.gradle', 'free', 24), ('source-files/org.mozilla.rocket/app/build.gradle', 'focus', 42), ('source-files/com.jens.automation2/app/build.gradle', 'fdroidFlavor', 8), ] diff --git a/tests/source-files/OtakuWorld/build.gradle b/tests/source-files/OtakuWorld/build.gradle new file mode 100644 index 00000000..cfbc1450 --- /dev/null +++ b/tests/source-files/OtakuWorld/build.gradle @@ -0,0 +1,166 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + ext.kotlin_version = "1.6.21" + ext.latestAboutLibsRelease = "10.3.0" + + ext.coroutinesVersion = "1.6.2" + + ext.coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion" + ext.coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion" + ext.coroutinesRX = "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$coroutinesVersion" + + ext.gson = 'com.google.code.gson:gson:2.9.0' + + ext.glideVersion = "4.13.1" + ext.glide = "com.github.bumptech.glide:glide:$glideVersion" + ext.glideCompiler = "com.github.bumptech.glide:compiler:$glideVersion" + + ext.paging_version = "3.1.1" + + ext.rxkotlin = "io.reactivex.rxjava2:rxkotlin:2.4.0" + ext.rxandroid = "io.reactivex.rxjava2:rxandroid:2.1.1" + ext.rxbinding = 'com.jakewharton.rxbinding2:rxbinding:2.2.0' + ext.rxbindingKotlin = 'com.jakewharton.rxbinding2:rxbinding-kotlin:2.2.0' + + ext.androidCore = 'androidx.core:core-ktx:1.8.0' + ext.appCompat = 'androidx.appcompat:appcompat:1.4.2' + ext.material = 'com.google.android.material:material:1.6.0-beta01' + + ext.preference = "androidx.preference:preference-ktx:1.2.0" + + ext.recyclerview = 'androidx.recyclerview:recyclerview:1.2.1' + ext.constraintlayout = 'androidx.constraintlayout:constraintlayout:2.1.4' + ext.swiperefresh = 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' + + ext.jsoup = 'org.jsoup:jsoup:1.15.1' + + ext.crashlytics = 'com.google.firebase:firebase-crashlytics:18.2.8' + ext.analytics = 'com.google.firebase:firebase-analytics:20.1.0' + ext.play_services = 'com.google.android.gms:play-services-auth:20.1.0' + + ext.exoplayer_version = "2.16.1" + ext.room_version = "2.4.2" + + ext.nav_version = "2.4.2" + + def koin_version = "3.0.2" + + // Koin main features for Android (Scope,ViewModel ...) + ext.koinAndroid = "io.insert-koin:koin-android:$koin_version" + // Koin Android - experimental builder extensions + ext.koinAndroidExt = "io.insert-koin:koin-android-ext:$koin_version" + + ext.lottieVersion = "4.2.2" + + ext.coil = "2.1.0" + + ext.jetpack = "1.2.0-rc01" + + ext.accompanist = "0.24.11-rc" + + ext.composeUi = "androidx.compose.ui:ui:$jetpack" + // Tooling support (Previews, etc.) + ext.composeUiTooling = "androidx.compose.ui:ui-tooling:$jetpack" + // Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.) + ext.composeFoundation = "androidx.compose.foundation:foundation:$jetpack" + // Material Design + ext.composeMaterial = "androidx.compose.material:material:$jetpack" + ext.materialYou = "androidx.compose.material3:material3:1.0.0-alpha13" + // Material design icons + ext.composeMaterialIconsCore = "androidx.compose.material:material-icons-core:$jetpack" + ext.composeMaterialIconsExtended = "androidx.compose.material:material-icons-extended:$jetpack" + // Integration with activities + ext.composeActivity = 'androidx.activity:activity-compose:1.4.0' + // Integration with ViewModels + ext.composeLifecycle = 'androidx.lifecycle:lifecycle-viewmodel-compose:2.4.1' + // Integration with observables + ext.composeRuntimeLivedata = "androidx.compose.runtime:runtime-livedata:$jetpack" + ext.composeRuntimeRxjava2 = "androidx.compose.runtime:runtime-rxjava2:$jetpack" + ext.composeMaterialThemeAdapter = "com.google.android.material:compose-theme-adapter:1.1.11" + ext.composeMaterial3ThemeAdapter = "com.google.android.material:compose-theme-adapter-3:1.0.11" + ext.landscapistGlide = "com.github.skydoves:landscapist-glide:1.5.2" + ext.composeConstraintLayout = "androidx.constraintlayout:constraintlayout-compose:1.0.1" + ext.composeAnimation = "androidx.compose.animation:animation:$jetpack" + ext.materialPlaceholder = "com.google.accompanist:accompanist-placeholder-material:$accompanist" + ext.drawablePainter = "com.google.accompanist:accompanist-drawablepainter:$accompanist" + ext.permissions = "com.google.accompanist:accompanist-permissions:$accompanist" + ext.uiUtil = "androidx.compose.ui:ui-util:$jetpack" + ext.coilCompose = "io.coil-kt:coil-compose:$coil" + ext.navCompose = "androidx.navigation:navigation-compose:$nav_version" + ext.navMaterial = "com.google.accompanist:accompanist-navigation-material:$accompanist" + ext.navAnimation = "com.google.accompanist:accompanist-navigation-animation:$accompanist" + + ext.swipeRefresh = "com.google.accompanist:accompanist-swiperefresh:$accompanist" + ext.systemUiController = "com.google.accompanist:accompanist-systemuicontroller:$accompanist" + + ext.inset = "com.google.accompanist:accompanist-insets:$accompanist" + // If using insets-ui + ext.insetUi = "com.google.accompanist:accompanist-insets-ui:$accompanist" + + ext.datastore = "androidx.datastore:datastore:1.0.0" + ext.datastorePref = "androidx.datastore:datastore-preferences:1.0.0" + + ext { + jakepurple13Tools = [ + helpfultools: [ + Deps.gsonutils, + Deps.helpfulutils, + Deps.loggingutils, + Deps.dragswipe, + Deps.funutils, + Deps.rxutils + ] + ] + room = [ + room: [ + "androidx.room:room-runtime:$room_version", + "androidx.room:room-ktx:$room_version", + "androidx.room:room-rxjava2:$room_version" + ] + ] + + koin = [koin: [koinAndroid, koinAndroidExt]] + + compose = [ + compose: [ + composeUi, composeUiTooling, composeFoundation, composeMaterial, + composeMaterialIconsCore, composeMaterialIconsExtended, + composeActivity, composeLifecycle, + composeRuntimeLivedata, composeRuntimeRxjava2, + composeMaterialThemeAdapter, composeMaterial3ThemeAdapter, + landscapistGlide, coilCompose, + composeConstraintLayout, permissions, + materialPlaceholder, drawablePainter, uiUtil, + materialYou, + inset, insetUi, + navCompose, navMaterial, navAnimation, + swipeRefresh, systemUiController + ] + ] + + firebaseCrash = [ crash: [crashlytics, analytics] ] + + datastore = [ datastore: [datastore, datastorePref] ] + } + + repositories { + google() + gradlePluginPortal() + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + classpath 'com.google.gms:google-services:4.3.10' + classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1' + classpath "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:10.3.0" + classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +}