apply plugin: 'com.android.library' android { compileSdkVersion 28 // a default can be used, but it is good practice to explicitly select build tools buildToolsVersion '28.0.3' defaultConfig { // applicationId 'xyz.nc.android.wc' minSdkVersion 23 targetSdkVersion 28 versionCode 1 versionName '1.0' externalNativeBuild { cmake { arguments '-DANDROID_PLATFORM=android-23', '-DANDROID_TOOLCHAIN=clang' // Sets optional flags for the C compiler. // cFlags \ // '-D_POSIX_THREADS', '-DNDEBUG', // '-DPERSIST_SESSION_CACHE', '-DPERSIST_CERT_CACHE', '-DATOMIC_USER', // '-DHAVE_PK_CALLBACKS', '-DNO_DSA', // '-DNO_MD4', '-DNO_HC128', '-DNO_RABBIT', // '-DHAVE_OCSP', '-DHAVE_CRL', '-DWOLFSSL_JNI', '-DHAVE_DH', // '-Wall' // explicitly build libs //targets 'wolfssl' } } } // buildTypes { // release { // minifyEnabled false // proguardFiles getDefaultProguardFile('proguard-android.txt'), // 'proguard-rules.pro' // } // } externalNativeBuild { cmake { path 'CMakeLists.txt' } } } // Copies files to the dist/ folder, adds a timestamp // instead of using a bash script I ventured out to try this file copy in Groovy (Gradle) // ...and yay, I was successful =) task copyLibs(type: Copy) { def thisDate = new Date().format('yyyyMMdd_HHmmssSSS') from('build/intermediates/cmake/debug/obj/') { include '**/*.so' into 'debug' } from('build/intermediates/cmake/release/obj/') { include '**/*.so' into 'release' } into "dist/wolfssl-jni_${thisDate}/" } dependencies { // compile fileTree(dir: 'libs', include: ['*.jar']) // implementation fileTree(dir: 'libs', include: ['*.jar']) testImplementation 'junit:junit:4.12' // implementation 'com.android.support:appcompat-v7:28.0.0' // implementation 'com.android.support.constraint:constraint-layout:1.1.3' // androidTestImplementation 'com.android.support.test:runner:1.0.2' // androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' }