diff options
Diffstat (limited to 'platform_tools/android/apps/arcore/build.gradle')
-rw-r--r-- | platform_tools/android/apps/arcore/build.gradle | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/platform_tools/android/apps/arcore/build.gradle b/platform_tools/android/apps/arcore/build.gradle new file mode 100644 index 0000000000..0e82ab8831 --- /dev/null +++ b/platform_tools/android/apps/arcore/build.gradle @@ -0,0 +1,92 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +apply plugin: 'com.android.application' + +/* +The arcore aar library contains the native shared libraries. These are +extracted before building to a temporary directory. + */ +def arcore_libpath = "${buildDir}/arcore-native" + +// Create a configuration to mark which aars to extract .so files from +configurations { natives } + +android { + sourceSets.main.jni.srcDirs = [] //disable automatic ndk-build call + sourceSets.main.jniLibs.srcDir "src/main/libs" + productFlavors { arm64 {} } + + setupSkiaLibraryBuild(project, applicationVariants, "libarcore") + + compileSdkVersion 27 + defaultConfig { + applicationId "org.skia.viewer" + // 24 is the minimum since ARCore only works with 24 and higher. + minSdkVersion 24 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + + externalNativeBuild { + cmake { + cppFlags "-std=c++11", "-Wall" + arguments "-DANDROID_STL=c++_static", + "-DARCORE_LIBPATH=${arcore_libpath}/jni", + "-DARCORE_INCLUDE=${project.rootDir}/../../libraries/include", + "-DSKIA_INCLUDE_PATH=${project.rootDir}/../../../include" + } + } + ndk { + abiFilters "arm64-v8a" + } + } + flavorDimensions "base" + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + +} + +dependencies { + // ARCore library + implementation 'com.google.ar:core:1.2.0' + natives 'com.google.ar:core:1.2.0' + + implementation 'com.android.support:appcompat-v7:27.0.2' + implementation 'com.android.support:design:27.0.2' +} + +// Extracts the shared libraries from aars in the natives configuration. +// This is done so that NDK builds can access these libraries. +task extractNativeLibraries() { + doFirst { + configurations.natives.files.each { f -> + copy { + from zipTree(f) + into arcore_libpath + include "jni/**/*" + } + } + } +} + + +tasks.whenTaskAdded { + task-> if (task.name.contains("external") && !task.name.contains("Clean")) { + task.dependsOn(extractNativeLibraries) + + //make sure skia lib is built and copied in the correct directory before building arcore + tasks.whenTaskAdded { + t-> if (t.name.contains("CopySkiaLib")) { + task.dependsOn(t) + } + } + } +} + |