buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle-experimental:0.8.0' } } apply plugin: 'com.android.model.application' def demosDir = "../.." def smokeDir = "${demosDir}/smoke" def glmDir = "${demosDir}/../libs" def vulkanDir = "${demosDir}/../include" Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()) def ndkDir = properties.getProperty('ndk.dir') model { android { compileSdkVersion = 23 buildToolsVersion = "23.0.2" defaultConfig.with { applicationId = "com.example.Smoke" minSdkVersion.apiLevel = 22 targetSdkVersion.apiLevel = 22 versionCode = 1 versionName = "0.1" } } android.ndk { moduleName = "Smoke" toolchain = "clang" stl = "c++_static" cppFlags.addAll(["-std=c++11", "-fexceptions"]) cppFlags.addAll(["-Wall", "-Wextra", "-Wno-unused-parameter"]) cppFlags.addAll([ "-DVK_NO_PROTOTYPES", "-DVK_USE_PLATFORM_ANDROID_KHR", "-DGLM_FORCE_RADIANS", ]) cppFlags.addAll([ "-I${file("${ndkDir}/sources/android/native_app_glue")}".toString(), "-I${file("${vulkanDir}")}".toString(), "-I${file("${glmDir}")}".toString(), "-I${file("src/main/jni")}".toString(), ]) ldLibs.addAll(["android", "log", "dl"]) } android.sources { main { jni { source { srcDir "${ndkDir}/sources/android/native_app_glue" srcDir "${smokeDir}" exclude 'ShellXcb.cpp' exclude 'ShellWin32.cpp' exclude 'ShellWayland.cpp' } } } } android.buildTypes { release { ndk.with { debuggable = true } } } android.productFlavors { create ("fat") { ndk.abiFilters.add("arm64-v8a") ndk.abiFilters.add("armeabi-v7a") ndk.abiFilters.add("x86") } } }