scanner: also scan classpath

This commit is contained in:
linsui 2022-08-09 23:04:30 +08:00 committed by Hans-Christoph Steiner
parent 1a71f352cf
commit 832ed18fca
3 changed files with 171 additions and 3 deletions

View File

@ -101,6 +101,7 @@ def get_gradle_compile_commands(build):
'provided',
'apk',
'implementation',
'classpath',
'api',
'compileOnly',
'runtimeOnly']

View File

@ -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),
]

View File

@ -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
}