mirror of
https://github.com/overte-org/overte.git
synced 2025-04-06 12:32:54 +02:00
216 lines
7.2 KiB
Groovy
216 lines
7.2 KiB
Groovy
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
google()
|
|
}
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:3.0.1'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'de.undercouch.download' version '3.3.0'
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
jcenter()
|
|
google()
|
|
}
|
|
}
|
|
|
|
|
|
def baseFolder = new File(HIFI_ANDROID_PRECOMPILED)
|
|
def jniFolder = new File('app/src/main/jniLibs/arm64-v8a')
|
|
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
|
|
def baseUrl = 'https://hifi-public.s3.amazonaws.com/austin/android/'
|
|
def qtFile='qt-5.9.3_linux_armv8-libcpp.tgz'
|
|
def qtChecksum='547da3547d5690144e23d6504c6d6e91'
|
|
if (Os.isFamily(Os.FAMILY_MAC)) {
|
|
qtFile = 'qt-5.9.3_osx_armv8-libcpp.tgz'
|
|
qtChecksum='6fa3e068cfdee863fc909b294a3a0cc6'
|
|
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
qtFile = 'qt-5.9.3_win_armv8-libcpp.tgz'
|
|
qtChecksum='3a757378a7e9dbbfc662177e0eb46408'
|
|
}
|
|
|
|
def packages = [
|
|
qt: [
|
|
file: qtFile,
|
|
checksum: qtChecksum,
|
|
sharedLibFolder: '',
|
|
includeLibs: ['lib/*.so', 'plugins/*/*.so']
|
|
],
|
|
bullet: [
|
|
file: 'bullet-2.83_armv8-libcpp.tgz',
|
|
checksum: '2c558d604fce337f5eba3eb7ec1252fd'
|
|
],
|
|
draco: [
|
|
file: 'draco_armv8-libcpp.tgz',
|
|
checksum: '617a80d213a5ec69fbfa21a1f2f738cd'
|
|
],
|
|
gvr: [
|
|
file: 'gvrsdk_v1.101.0.tgz',
|
|
checksum: '57fd02baa069176ba18597a29b6b4fc7'
|
|
],
|
|
openssl: [
|
|
file: 'openssl-1.1.0g_armv8.tgz',
|
|
checksum: 'cabb681fbccd79594f65fcc266e02f32'
|
|
],
|
|
polyvox: [
|
|
file: 'polyvox_armv8-libcpp.tgz',
|
|
checksum: '5c918288741ee754c16aeb12bb46b9e1',
|
|
sharedLibFolder: 'lib',
|
|
includeLibs: ['Release/libPolyVoxCore.so', 'libPolyVoxUtil.so']
|
|
],
|
|
tbb: [
|
|
file: 'tbb-2018_U1_armv8_libcpp.tgz',
|
|
checksum: '20768f298f53b195e71b414b0ae240c4',
|
|
sharedLibFolder: 'lib/release',
|
|
includeLibs: ['libtbb.so', 'libtbbmalloc.so']
|
|
]
|
|
]
|
|
|
|
task downloadDependencies {
|
|
doLast {
|
|
packages.each { entry ->
|
|
def filename = entry.value['file'];
|
|
def url = baseUrl + filename;
|
|
download {
|
|
src url
|
|
dest new File(baseFolder, filename)
|
|
onlyIfNewer true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
import de.undercouch.gradle.tasks.download.Verify
|
|
|
|
task verifyQt(type: Verify) { def p = packages['qt']; src new File(baseFolder, p['file']); checksum p['checksum']; }
|
|
task verifyBullet(type: Verify) { def p = packages['bullet']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
task verifyDraco(type: Verify) { def p = packages['draco']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
task verifyGvr(type: Verify) { def p = packages['gvr']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
task verifyOpenSSL(type: Verify) { def p = packages['openssl']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
task verifyPolyvox(type: Verify) { def p = packages['polyvox']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
task verifyTBB(type: Verify) { def p = packages['tbb']; src new File(baseFolder, p['file']); checksum p['checksum'] }
|
|
|
|
task verifyDependencyDownloads(dependsOn: downloadDependencies) { }
|
|
verifyDependencyDownloads.dependsOn verifyQt
|
|
verifyDependencyDownloads.dependsOn verifyBullet
|
|
verifyDependencyDownloads.dependsOn verifyDraco
|
|
verifyDependencyDownloads.dependsOn verifyGvr
|
|
verifyDependencyDownloads.dependsOn verifyOpenSSL
|
|
verifyDependencyDownloads.dependsOn verifyPolyvox
|
|
verifyDependencyDownloads.dependsOn verifyTBB
|
|
|
|
task extractDependencies(dependsOn: verifyDependencyDownloads) {
|
|
doLast {
|
|
packages.each { entry ->
|
|
def folder = entry.key;
|
|
def filename = entry.value['file'];
|
|
def localFile = new File(HIFI_ANDROID_PRECOMPILED, filename)
|
|
def localFolder = new File(HIFI_ANDROID_PRECOMPILED, folder)
|
|
copy {
|
|
from tarTree(resources.gzip(localFile))
|
|
into localFolder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
task copyDependencies(dependsOn: extractDependencies) {
|
|
doLast {
|
|
packages.each { entry ->
|
|
def packageName = entry.key
|
|
def currentPackage = entry.value;
|
|
if (currentPackage.containsKey('sharedLibFolder')) {
|
|
def localFolder = new File(baseFolder, packageName + '/' + currentPackage['sharedLibFolder'])
|
|
def tree = fileTree(localFolder);
|
|
if (currentPackage.containsKey('includeLibs')) {
|
|
currentPackage['includeLibs'].each { includeSpec -> tree.include includeSpec }
|
|
}
|
|
tree.visit { element ->
|
|
if (!element.file.isDirectory()) {
|
|
copy { from element.file; into jniFolder }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def scribeFile='scribe_linux_x86_64'
|
|
def scribeLocalFile='scribe'
|
|
def scribeChecksum='c98678d9726bd8bbf1bab792acf3ff6c'
|
|
if (Os.isFamily(Os.FAMILY_MAC)) {
|
|
scribeFile = 'scribe_osx_x86_64'
|
|
scribeChecksum='a137ad62c1bf7cca739da219544a9a16'
|
|
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
scribeFile = 'scribe_win32_x86_64.exe'
|
|
scribeLocalFile = 'scribe.exe'
|
|
scribeChecksum='75c2ce9ed45d17de375e3988bfaba816'
|
|
|
|
}
|
|
|
|
import de.undercouch.gradle.tasks.download.Download
|
|
|
|
task downloadScribe(type: Download) {
|
|
src baseUrl + scribeFile
|
|
dest new File(baseFolder, scribeLocalFile)
|
|
onlyIfNewer true
|
|
}
|
|
|
|
task verifyScribe (type: Verify, dependsOn: downloadScribe) {
|
|
src new File(baseFolder, scribeLocalFile);
|
|
checksum scribeChecksum
|
|
}
|
|
|
|
task fixScribePermissions(type: Exec, dependsOn: verifyScribe) {
|
|
commandLine 'chmod', 'a+x', HIFI_ANDROID_PRECOMPILED + '/' + scribeLocalFile
|
|
}
|
|
|
|
task setupScribe(dependsOn: verifyScribe) { }
|
|
|
|
// On Windows, we don't need to set the executable bit, but on OSX and Unix we do
|
|
if (!Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
setupScribe.dependsOn fixScribePermissions
|
|
}
|
|
|
|
task extractGvrBinaries(dependsOn: extractDependencies) {
|
|
doLast {
|
|
def gvrLibFolder = new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries');
|
|
zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-audio-1.101.0.aar')).visit { element ->
|
|
def fileName = element.file.toString();
|
|
if (fileName.endsWith('libgvr_audio.so') && fileName.contains('arm64-v8a')) {
|
|
copy { from element.file; into gvrLibFolder }
|
|
}
|
|
}
|
|
zipTree(new File(HIFI_ANDROID_PRECOMPILED, 'gvr/gvr-android-sdk-1.101.0/libraries/sdk-base-1.101.0.aar')).visit { element ->
|
|
def fileName = element.file.toString();
|
|
if (fileName.endsWith('libgvr.so') && fileName.contains('arm64-v8a')) {
|
|
copy { from element.file; into gvrLibFolder }
|
|
}
|
|
}
|
|
fileTree(gvrLibFolder).visit { element ->
|
|
if (element.file.toString().endsWith('.so')) {
|
|
copy { from element.file; into jniFolder }
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
task setupDependencies(dependsOn: [setupScribe, copyDependencies, extractGvrBinaries]) {
|
|
}
|
|
|
|
task cleanDependencies(type: Delete) {
|
|
delete HIFI_ANDROID_PRECOMPILED
|
|
delete 'app/src/main/jniLibs/arm64-v8a'
|
|
}
|
|
|
|
task clean(type: Delete) {
|
|
delete rootProject.buildDir
|
|
}
|