mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-09-09 18:29:45 +02:00
Add OMEMO support
This commit adds the modules smack-omemo and smack-omemo-signal. smack-omemo is licensed under the Apache license like the rest of the smack project. smack-omemo-signal on the other hand is licensed under the GPLv3. Due to the fact, that smack-omemo is not of much use without smack-omemo-signal, the OMEMO feature can currently only be used by GPLv3 compatible software. This may change in the future, when a more permissively licensed module becomes available. Fixes SMACK-743.
This commit is contained in:
parent
ce36fb468c
commit
e86700b040
95 changed files with 11770 additions and 22 deletions
81
build.gradle
81
build.gradle
|
@ -40,7 +40,11 @@ allprojects {
|
|||
// build, causing unnecessary rebuilds.
|
||||
builtDate = (new java.text.SimpleDateFormat("yyyy-MM-dd")).format(new Date())
|
||||
oneLineDesc = 'An Open Source XMPP (Jabber) client library'
|
||||
javadocAllProjects = subprojects - project(':smack-integration-test')
|
||||
integrationTestProjects = [
|
||||
':smack-integration-test',
|
||||
':smack-omemo-signal-integration-test',
|
||||
].collect{ project(it) }
|
||||
javadocAllProjects = subprojects - integrationTestProjects
|
||||
// A dirty hack used for Gradle's jacoco plugin, since is not
|
||||
// hable to handle the case when a (sub)project has no unit
|
||||
// tests. :-(
|
||||
|
@ -56,6 +60,7 @@ allprojects {
|
|||
':smack-resolver-dnsjava',
|
||||
':smack-resolver-javax',
|
||||
':smack-resolver-minidns',
|
||||
':smack-omemo-signal-integration-test',
|
||||
].collect{ project(it) }
|
||||
projectsWithUnitTests = subprojects - projectsWithoutUnitTests
|
||||
androidProjects = [
|
||||
|
@ -67,11 +72,17 @@ allprojects {
|
|||
':smack-sasl-provided',
|
||||
':smack-extensions',
|
||||
':smack-experimental',
|
||||
':smack-omemo',
|
||||
':smack-omemo-signal',
|
||||
].collect{ project(it) }
|
||||
androidBootClasspathProjects = [
|
||||
':smack-android',
|
||||
':smack-android-extensions',
|
||||
].collect{ project(it) }
|
||||
gplLicensedProjects = [
|
||||
':smack-omemo-signal',
|
||||
':smack-omemo-signal-integration-test',
|
||||
].collect{ project(it) }
|
||||
androidBootClasspath = getAndroidRuntimeJar()
|
||||
androidJavadocOffline = getAndroidJavadocOffline()
|
||||
junitVersion = '4.11'
|
||||
|
@ -350,14 +361,6 @@ subprojects {
|
|||
developerConnection 'scm:git:https://github.com/igniterealtime/Smack.git'
|
||||
}
|
||||
|
||||
licenses {
|
||||
license {
|
||||
name 'The Apache Software License, Version 2.0'
|
||||
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
distribution 'repo'
|
||||
}
|
||||
}
|
||||
|
||||
developers {
|
||||
developer {
|
||||
id 'flow'
|
||||
|
@ -387,8 +390,17 @@ subprojects {
|
|||
}
|
||||
}
|
||||
|
||||
// No need to ever clirr smack-integration-test
|
||||
project(':smack-integration-test').clirr.enabled = false
|
||||
// There is no need to ever clirr integration test projects and the
|
||||
// smack-repl project.
|
||||
configure(integrationTestProjects + project(':smack-repl')) {
|
||||
clirr {
|
||||
enabled false
|
||||
}
|
||||
}
|
||||
|
||||
// Disable clirr on omemo modules
|
||||
project(':smack-omemo').clirr.enabled = false
|
||||
project(':smack-omemo-signal').clirr.enabled = false
|
||||
|
||||
subprojects*.jar {
|
||||
manifest {
|
||||
|
@ -396,6 +408,49 @@ subprojects*.jar {
|
|||
}
|
||||
}
|
||||
|
||||
configure(subprojects - gplLicensedProjects) {
|
||||
checkstyle {
|
||||
configProperties.checkstyleLicenseHeader = "header"
|
||||
}
|
||||
uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
pom.project {
|
||||
licenses {
|
||||
license {
|
||||
name 'The Apache Software License, Version 2.0'
|
||||
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
|
||||
distribution 'repo'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
configure(gplLicensedProjects) {
|
||||
checkstyle {
|
||||
configProperties.checkstyleLicenseHeader = "${project.name}-gplv3-license-header"
|
||||
}
|
||||
uploadArchives {
|
||||
repositories {
|
||||
mavenDeployer {
|
||||
pom.project {
|
||||
licenses {
|
||||
license {
|
||||
name 'GNU General Public License, version 3 or any later version'
|
||||
url 'https://www.gnu.org/licenses/gpl.txt'
|
||||
distribution 'repo'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
configure(androidBootClasspathProjects) {
|
||||
compileJava {
|
||||
options.bootClasspath = androidBootClasspath
|
||||
|
@ -436,6 +491,10 @@ task integrationTest {
|
|||
dependsOn project(':smack-integration-test').tasks.run
|
||||
}
|
||||
|
||||
task omemoSignalIntTest {
|
||||
dependsOn project(':smack-omemo-signal-integration-test').tasks.run
|
||||
}
|
||||
|
||||
def getGitCommit() {
|
||||
def dotGit = new File("$projectDir/.git")
|
||||
if (!dotGit.isDirectory()) return 'non-git build'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue