| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 | 
							- // Top-level build file where you can add configuration options common to all
 - // sub-projects/modules.
 - 
 - buildscript {
 -     repositories {
 -         google()
 -         jcenter()
 -     }
 -     dependencies {
 -         classpath 'com.android.tools.build:gradle:3.0.1'
 - 
 -         // NOTE: Do not place your application dependencies here; they belong
 -         // in the individual module build.gradle files.
 -     }
 - }
 - 
 - allprojects {
 -     repositories {
 -         google()
 -         jcenter()
 -         // React Native (JS, Obj-C sources, Android binaries) is installed from
 -         // npm.
 -         maven { url "$rootDir/../node_modules/react-native/android" }
 -     }
 - 
 -     // Make sure we use the react-native version in node_modules and not the one
 -     // published in jcenter / elsewhere.
 -     configurations.all {
 -         resolutionStrategy {
 -             eachDependency { DependencyResolveDetails details ->
 -                 if (details.requested.group == 'com.facebook.react'
 -                         && details.requested.name == 'react-native') {
 -                     def file = new File("$rootDir/../node_modules/react-native/package.json")
 -                     def version = new groovy.json.JsonSlurper().parseText(file.text).version
 -                     details.useVersion version
 -                 }
 -             }
 -         }
 -     }
 - 
 -     // Third-party react-native modules which Jitsi Meet SDK for Android depends
 -     // on and which are not available in third-party Maven repositories need to
 -     // be deployed in a Maven repository of ours.
 -     //
 - 
 -     if (project.name.startsWith('react-native-')) {
 -         apply plugin: 'maven-publish'
 -         publishing {
 -             publications {}
 -             repositories {
 -                 maven { url "file:${rootProject.projectDir}/../../../jitsi/jitsi-maven-repository/releases" }
 -             }
 -         }
 -     }
 - 
 -     afterEvaluate { project ->
 -         if (project.name.startsWith('react-native-')) {
 -             def npmManifest = project.file('../package.json')
 -             def json = new groovy.json.JsonSlurper().parseText(npmManifest.text)
 - 
 -             // React Native modules have an npm peer dependency on react-native,
 -             // they do not have an npm dependency on it. Further below though we
 -             // choose a react-native version (range) when we represent them as
 -             // Maven artifacts. Effectively, we are forking the projects by not
 -             // complying with the full range of their npm peer dependency and,
 -             // consequently, we should qualify their version.
 -             def versionQualifier = '-jitsi-1'
 -             if ('react-native-webrtc'.equals(project.name))
 -                 versionQualifier = '-jitsi-1'
 - 
 -             project.version = "${json.version}${versionQualifier}"
 - 
 -             project.android {
 -                 compileSdkVersion rootProject.ext.compileSdkVersion
 -                 if (rootProject.ext.has('buildToolsVersion')) {
 -                     buildToolsVersion rootProject.ext.buildToolsVersion
 -                 }
 -                 defaultConfig {
 -                     minSdkVersion rootProject.ext.minSdkVersion
 -                     targetSdkVersion rootProject.ext.targetSdkVersion
 -                 }
 -             }
 - 
 -             task androidJavadocs(type: Javadoc) {
 -                 source = android.sourceSets.main.java.source
 -                 classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
 -                 failOnError false
 -             }
 -             task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
 -                 classifier = 'javadoc'
 -                 from androidJavadocs.destinationDir
 -             }
 -             task androidSourcesJar(type: Jar) {
 -                 classifier = 'sources'
 -                 from android.sourceSets.main.java.source
 -             }
 - 
 -             publishing.publications {
 -                 aarArchive(MavenPublication) {
 -                     groupId rootProject.ext.moduleGroupId
 -                     artifactId project.name
 -                     version project.version
 - 
 -                     artifact("${project.buildDir}/outputs/aar/${project.name}-release.aar") {
 -                         extension "aar"
 -                     }
 -                     artifact(androidSourcesJar)
 -                     artifact(androidJavadocsJar)
 -                     pom.withXml {
 -                         def pomXml = asNode()
 -                         pomXml.appendNode('name', project.name)
 -                         pomXml.appendNode('description', json.description)
 -                         pomXml.appendNode('url', json.homepage)
 -                         if (json.license) {
 -                             def license = pomXml.appendNode('licenses').appendNode('license')
 -                             license.appendNode('name', json.license)
 -                             license.appendNode('distribution', 'repo')
 -                         }
 - 
 -                         def dependencies = pomXml.appendNode('dependencies')
 -                         configurations.getByName('releaseCompileClasspath').getResolvedConfiguration().getFirstLevelModuleDependencies().each {
 -                             def artifactId = it.moduleName
 -                             def version = it.moduleVersion
 -                             // React Native signals breaking changes by
 -                             // increasing the minor version number. So the
 -                             // (third-party) React Native modules we utilize can
 -                             // depend not on a specific react-native release but
 -                             // a wider range.
 -                             if (artifactId.equals('react-native')) {
 -                                 def versionNumber = VersionNumber.parse(version)
 -                                 version = "${versionNumber.major}.${versionNumber.minor}"
 -                             }
 - 
 -                             def dependency = dependencies.appendNode('dependency')
 -                             dependency.appendNode('groupId', it.moduleGroup)
 -                             dependency.appendNode('artifactId', artifactId)
 -                             dependency.appendNode('version', version)
 -                         }
 -                     }
 -                 }
 -             }
 -         }
 -     }
 - }
 - 
 - ext {
 -     buildToolsVersion = "26.0.2"
 -     compileSdkVersion = 26
 -     minSdkVersion    = 16
 -     targetSdkVersion = 26
 - 
 -     // The Maven artifact groupdId of the third-party react-native modules which
 -     // Jitsi Meet SDK for Android depends on and which are not available in
 -     // third-party Maven repositories so we have to deploy to a Maven repository
 -     // of ours.
 -     moduleGroupId = 'com.facebook.react'
 - }
 - 
 - // Force the version of the Android build tools we have chosen on all
 - // subprojects. The forcing was introduced for react-native and the third-party
 - // modules that we utilize such as react-native-background-timer.
 - subprojects { subproject ->
 -     afterEvaluate{
 -         if ((subproject.plugins.hasPlugin('android')
 -                     || subproject.plugins.hasPlugin('android-library'))
 -                 && rootProject.ext.has('buildToolsVersion')) {
 -             android {
 -                 buildToolsVersion rootProject.ext.buildToolsVersion
 -             }
 -         }
 -     }
 - }
 
 
  |