|
1 | 1 | import java.nio.file.Paths |
| 2 | +import org.gradle.api.file.RelativePath |
2 | 3 |
|
3 | 4 | buildscript { |
4 | 5 | repositories { |
@@ -127,25 +128,44 @@ dependencies { |
127 | 128 | implementation "com.facebook.react:react-native:+" |
128 | 129 |
|
129 | 130 | // Tensorflow Lite .aar (includes C API via prefabs) |
130 | | - implementation "com.google.ai.edge.litert:litert:1.0.1" |
131 | | - extractSO("com.google.ai.edge.litert:litert:1.0.1") |
132 | | - extractHeaders("com.google.ai.edge.litert:litert:1.0.1") |
| 131 | + implementation "com.google.ai.edge.litert:litert:1.4.0" |
| 132 | + extractSO("com.google.ai.edge.litert:litert:1.4.0") |
| 133 | + extractHeaders("com.google.ai.edge.litert:litert:1.4.0") |
133 | 134 |
|
134 | 135 | // Tensorflow Lite GPU delegate |
135 | | - implementation "com.google.ai.edge.litert:litert-gpu:1.0.1" |
136 | | - extractSO("com.google.ai.edge.litert:litert-gpu:1.0.1") |
137 | | - extractHeaders("com.google.ai.edge.litert:litert-gpu:1.0.1") |
| 136 | + implementation "com.google.ai.edge.litert:litert-gpu:1.4.0" |
| 137 | + extractSO("com.google.ai.edge.litert:litert-gpu:1.4.0") |
| 138 | + extractHeaders("com.google.ai.edge.litert:litert-gpu:1.4.0") |
| 139 | +} |
| 140 | + |
| 141 | +task cleanEmptyDirectories(type: Delete) { |
| 142 | + delete 'src/main/cpp/lib/headers' |
| 143 | + delete 'src/main/cpp/lib/res' |
138 | 144 | } |
139 | 145 |
|
140 | 146 | task extractAARHeaders { |
| 147 | + finalizedBy cleanEmptyDirectories |
141 | 148 | doLast { |
142 | | - configurations.extractHeaders.files.each { |
143 | | - def file = it.absoluteFile |
144 | | - def packageName = file.name.tokenize('-')[0] |
| 149 | + configurations.extractHeaders.files.each { aarFile -> |
| 150 | + def packageName = aarFile.name.tokenize('-')[0] |
145 | 151 | copy { |
146 | | - from zipTree(file) |
147 | | - into "src/main/cpp/lib/$packageName/" |
| 152 | + from zipTree(aarFile) |
| 153 | + into "src/main/cpp/lib/" |
148 | 154 | include "**/*.h" |
| 155 | + eachFile { fileCopyDetails -> |
| 156 | + if (fileCopyDetails.name.endsWith(".h")) { |
| 157 | + def originalRelativePath = fileCopyDetails.relativePath.toString() |
| 158 | + if (originalRelativePath.startsWith("headers/external/org_tensorflow/tensorflow/")) { |
| 159 | + def newRelativePath = packageName + "/headers/" + originalRelativePath.substring("headers/external/org_tensorflow/".length()) |
| 160 | + fileCopyDetails.relativePath = new RelativePath(true, newRelativePath.split('/')) |
| 161 | + } else { |
| 162 | + def newRelativePath = packageName + "/" + originalRelativePath |
| 163 | + fileCopyDetails.relativePath = new RelativePath(true, newRelativePath.split('/')) |
| 164 | + } |
| 165 | + } else { |
| 166 | + exclude fileCopyDetails.name |
| 167 | + } |
| 168 | + } |
149 | 169 | } |
150 | 170 | } |
151 | 171 | } |
|
0 commit comments