1 | def safeExtGet(prop, fallback) {
|
2 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
3 | }
|
4 |
|
5 | buildscript {
|
6 | if (project == rootProject) {
|
7 |
|
8 |
|
9 |
|
10 | repositories {
|
11 | google()
|
12 | jcenter()
|
13 | }
|
14 | dependencies {
|
15 | classpath 'com.android.tools.build:gradle:3.5.2'
|
16 | }
|
17 | }
|
18 | }
|
19 |
|
20 | apply plugin: 'com.android.library'
|
21 | apply plugin: 'maven'
|
22 |
|
23 | android {
|
24 | compileSdkVersion safeExtGet('compileSdkVersion', 28)
|
25 | buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
|
26 | defaultConfig {
|
27 | minSdkVersion safeExtGet('minSdkVersion', 16)
|
28 | targetSdkVersion safeExtGet('targetSdkVersion', 28)
|
29 | versionCode 1
|
30 | versionName "1.0"
|
31 | }
|
32 | lintOptions {
|
33 | abortOnError false
|
34 | }
|
35 | }
|
36 |
|
37 | repositories {
|
38 | mavenLocal()
|
39 | maven {
|
40 |
|
41 | url "$rootDir/../node_modules/react-native/android"
|
42 | }
|
43 | maven {
|
44 |
|
45 | url "$rootDir/../node_modules/jsc-android/dist"
|
46 | }
|
47 | google()
|
48 | jcenter()
|
49 | }
|
50 |
|
51 | dependencies {
|
52 |
|
53 | implementation 'com.facebook.react:react-native:+'
|
54 | implementation "androidx.transition:transition:1.1.0"
|
55 | }
|
56 |
|
57 | def configureReactNativePom(def pom) {
|
58 | def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
|
59 |
|
60 | pom.project {
|
61 | name packageJson.title
|
62 | artifactId packageJson.name
|
63 | version = packageJson.version
|
64 | group = "com.swmansion.reanimated"
|
65 | description packageJson.description
|
66 | url packageJson.repository.baseUrl
|
67 |
|
68 | licenses {
|
69 | license {
|
70 | name packageJson.license
|
71 | url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
|
72 | distribution 'repo'
|
73 | }
|
74 | }
|
75 |
|
76 | developers {
|
77 | developer {
|
78 | id packageJson.author.username
|
79 | name packageJson.author.name
|
80 | }
|
81 | }
|
82 | }
|
83 | }
|
84 |
|
85 | afterEvaluate { project ->
|
86 |
|
87 | task androidJavadoc(type: Javadoc) {
|
88 | source = android.sourceSets.main.java.srcDirs
|
89 | classpath += files(android.bootClasspath)
|
90 | classpath += files(project.getConfigurations().getByName('compile').asList())
|
91 | include '**/*.java'
|
92 | }
|
93 |
|
94 | task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
|
95 | classifier = 'javadoc'
|
96 | from androidJavadoc.destinationDir
|
97 | }
|
98 |
|
99 | task androidSourcesJar(type: Jar) {
|
100 | classifier = 'sources'
|
101 | from android.sourceSets.main.java.srcDirs
|
102 | include '**/*.java'
|
103 | }
|
104 |
|
105 | android.libraryVariants.all { variant ->
|
106 | def compileTask
|
107 | if (variant.hasProperty('javaCompileProvider')){
|
108 | compileTask = variant.javaCompileProvider.get()
|
109 | }else{
|
110 | compileTask = variant.javaCompile
|
111 | }
|
112 |
|
113 | def name = variant.name.capitalize()
|
114 | task "jar${name}"(type: Jar, dependsOn: compileTask) {
|
115 | from compileTask.destinationDir
|
116 | }
|
117 | }
|
118 |
|
119 | artifacts {
|
120 | archives androidSourcesJar
|
121 | archives androidJavadocJar
|
122 | }
|
123 |
|
124 | task installArchives(type: Upload) {
|
125 | configuration = configurations.archives
|
126 | repositories.mavenDeployer {
|
127 |
|
128 | repository url: "file://${projectDir}/../android/maven"
|
129 |
|
130 | configureReactNativePom pom
|
131 | }
|
132 | }
|
133 | }
|