mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-09-03 21:15:37 +02:00
We use a patched version of greenDAO's DaoGenerator with a bugfix and additional support for - composite primary keys - WITHOUT_ROWID We used to use jitpack for including our own greendao dependency into Gadgetbridge. Since jitpack does not know how to build a real greenDAO release, it will simply include all artifacts, including ftl templates etc. which we do not need at runtime at all. We could fix this by patching greenDAO build, but we actually don't need to do that, since we can simply use the pristine greenDAO runtime dependency. It will happily use our custom DAOGenerator-generated entities.
153 lines
4.6 KiB
Groovy
153 lines
4.6 KiB
Groovy
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'findbugs'
|
|
apply plugin: 'pmd'
|
|
|
|
def ABORT_ON_CHECK_FAILURE=false
|
|
|
|
tasks.withType(Test) {
|
|
systemProperty 'MiFirmwareDir', System.getProperty('MiFirmwareDir', null)
|
|
systemProperty 'logback.configurationFile', System.getProperty('user.dir', null) + '/app/src/main/assets/logback.xml'
|
|
systemProperty 'GB_LOGFILES_DIR', java.nio.file.Files.createTempDirectory('gblog').toString();
|
|
}
|
|
|
|
android {
|
|
compileOptions {
|
|
// for KitKat
|
|
sourceCompatibility JavaVersion.VERSION_1_7
|
|
targetCompatibility JavaVersion.VERSION_1_7
|
|
}
|
|
compileSdkVersion 25
|
|
buildToolsVersion '25.0.2'
|
|
|
|
defaultConfig {
|
|
applicationId "nodomain.freeyourgadget.gadgetbridge"
|
|
minSdkVersion 19
|
|
targetSdkVersion 25
|
|
|
|
// note: always bump BOTH versionCode and versionName!
|
|
versionName "0.18.5"
|
|
versionCode 92
|
|
vectorDrawables.useSupportLibrary = true
|
|
}
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
|
|
lintOptions {
|
|
abortOnError ABORT_ON_CHECK_FAILURE
|
|
lintConfig file("${project.rootDir}/config/lint/lint.xml")
|
|
|
|
// if true, generate an HTML report (with issue explanations, sourcecode, etc)
|
|
htmlReport true
|
|
// optional path to report (default will be lint-results.html in the builddir)
|
|
htmlOutput file("$project.buildDir/reports/lint/lint.html")
|
|
}
|
|
|
|
testOptions {
|
|
unitTests.returnDefaultValues = true
|
|
}
|
|
}
|
|
|
|
pmd {
|
|
toolVersion = '5.5.5'
|
|
}
|
|
|
|
dependencies {
|
|
// testCompile 'ch.qos.logback:logback-classic:1.1.3'
|
|
// testCompile 'ch.qos.logback:logback-core:1.1.3'
|
|
testCompile 'junit:junit:4.12'
|
|
testCompile "org.mockito:mockito-core:1.9.5"
|
|
testCompile "org.robolectric:robolectric:3.3.2"
|
|
|
|
compile fileTree(dir: 'libs', include: ['*.jar'])
|
|
compile 'com.android.support:appcompat-v7:25.3.1'
|
|
compile 'com.android.support:cardview-v7:25.3.1'
|
|
compile 'com.android.support:recyclerview-v7:25.3.1'
|
|
compile 'com.android.support:support-v4:25.3.1'
|
|
compile 'com.android.support:design:25.3.1'
|
|
compile 'com.github.tony19:logback-android-classic:1.1.1-6'
|
|
compile 'org.slf4j:slf4j-api:1.7.7'
|
|
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
|
|
compile 'com.github.pfichtner:durationformatter:0.1.1'
|
|
compile 'de.cketti.library.changelog:ckchangelog:1.2.2'
|
|
compile 'net.e175.klaus:solarpositioning:0.0.9'
|
|
// use pristine greendao instead of our custom version, since our custom jitpack-packaged
|
|
// version contains way too much and our custom patches are in the generator only.
|
|
compile 'org.greenrobot:greendao:2.2.1'
|
|
compile 'org.apache.commons:commons-lang3:3.5'
|
|
|
|
// compile project(":DaoCore")
|
|
}
|
|
|
|
preBuild.dependsOn(":GBDaoGenerator:genSources")
|
|
gradle.beforeProject {
|
|
preBuild.dependsOn(":GBDaoGenerator:genSources")
|
|
}
|
|
|
|
check.dependsOn 'findbugs', 'pmd', 'lint'
|
|
|
|
task pmd(type: Pmd) {
|
|
ruleSetFiles = files("${project.rootDir}/config/pmd/pmd-ruleset.xml")
|
|
ignoreFailures = !ABORT_ON_CHECK_FAILURE
|
|
ruleSets = [
|
|
'java-android',
|
|
'java-basic',
|
|
'java-braces',
|
|
'java-clone',
|
|
'java-codesize',
|
|
'java-controversial',
|
|
'java-coupling',
|
|
'java-design',
|
|
'java-empty',
|
|
'java-finalizers',
|
|
'java-imports',
|
|
'java-junit',
|
|
'java-optimizations',
|
|
'java-strictexception',
|
|
'java-strings',
|
|
'java-sunsecure',
|
|
'java-typeresolution',
|
|
'java-unnecessary',
|
|
'java-unusedcode'
|
|
]
|
|
|
|
source 'src'
|
|
include '**/*.java'
|
|
exclude '**/gen/**'
|
|
|
|
reports {
|
|
xml.enabled = false
|
|
html.enabled = true
|
|
xml {
|
|
destination "$project.buildDir/reports/pmd/pmd.xml"
|
|
}
|
|
html {
|
|
destination "$project.buildDir/reports/pmd/pmd.html"
|
|
}
|
|
}
|
|
}
|
|
|
|
task findbugs(type: FindBugs) {
|
|
ignoreFailures = !ABORT_ON_CHECK_FAILURE
|
|
effort = "default"
|
|
reportLevel = "medium"
|
|
excludeFilter = new File("${project.rootDir}/config/findbugs/findbugs-filter.xml")
|
|
classes = files("${project.rootDir}/app/build/intermediates/classes")
|
|
source = fileTree('src/main/java/')
|
|
classpath = files()
|
|
reports {
|
|
xml.enabled = false
|
|
html.enabled = true
|
|
xml {
|
|
destination "$project.buildDir/reports/findbugs/findbugs-output.xml"
|
|
}
|
|
html {
|
|
destination "$project.buildDir/reports/findbugs/findbugs-output.html"
|
|
}
|
|
}
|
|
}
|