1*b7893ccfSSadaf EbrahimiBuild Validation Layers with Android CMake Plugin 2*b7893ccfSSadaf Ebrahimi================================================= 3*b7893ccfSSadaf EbrahimiGradle project in this directory builds layers into AAR. 4*b7893ccfSSadaf EbrahimiThe project could be directly added into application's gradle projects. 5*b7893ccfSSadaf Ebrahimi[Android Studio 3.0.0+](https://developer.android.com/studio/index.html) 6*b7893ccfSSadaf EbrahimiIS required: earlier versions only publish release libs by default. 7*b7893ccfSSadaf Ebrahimi 8*b7893ccfSSadaf EbrahimiPre-requirements 9*b7893ccfSSadaf Ebrahimi---------------- 10*b7893ccfSSadaf EbrahimiBuild ShaderC binary 11*b7893ccfSSadaf Ebrahimi- Building from Github Repo source 12*b7893ccfSSadaf Ebrahimi1. cd android-build 13*b7893ccfSSadaf Ebrahimi2. ./update_external_sources_android.sh 14*b7893ccfSSadaf Ebrahimi3. ./android-generate.sh 15*b7893ccfSSadaf Ebrahimi 16*b7893ccfSSadaf EbrahimiExtra Steps if building from NDK's source tree 17*b7893ccfSSadaf Ebrahimi``` 18*b7893ccfSSadaf Ebrahimi cd ${your ANDROID_NDK_ROOT}/sources/third_party/shaderc 19*b7893ccfSSadaf Ebrahimi ndk-build APP_ABI=all APP_STL=c++_static NDK_TOOLCHAIN_VERSION=clang NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk libshaderc_combined 20*b7893ccfSSadaf Ebrahimi``` 21*b7893ccfSSadaf Ebrahimi 22*b7893ccfSSadaf EbrahimiAdding layer module into Android Studio application project 23*b7893ccfSSadaf Ebrahimi-------------------------------------------------------- 24*b7893ccfSSadaf Ebrahimi1. app's settings.gradle, add 25*b7893ccfSSadaf Ebrahimi``` 26*b7893ccfSSadaf Ebrahimi include ':layerLib' 27*b7893ccfSSadaf Ebrahimi project(':layerLib').projectDir = new File('/path/to/cmake/layerlib') 28*b7893ccfSSadaf Ebrahimi``` 29*b7893ccfSSadaf Ebrahimi2. app's build.gradle: 30*b7893ccfSSadaf Ebrahimi``` 31*b7893ccfSSadaf Ebrahimidependencies { 32*b7893ccfSSadaf Ebrahimi // Android Studio 3.0.0+ is required 33*b7893ccfSSadaf Ebrahimi implementation project(':layerLib') 34*b7893ccfSSadaf Ebrahimi} 35*b7893ccfSSadaf Ebrahimi``` 36*b7893ccfSSadaf EbrahimiBUILD_IN_NDK variable in layerlib/CMakeLists.txt could detect whether the source is 37*b7893ccfSSadaf Ebrahimifrom NDK or github repo clone, and would configure the file paths accordingly 38*b7893ccfSSadaf Ebrahimi 39*b7893ccfSSadaf EbrahimiTested 40*b7893ccfSSadaf Ebrahimi----- 41*b7893ccfSSadaf EbrahimiBuild on Mac OS, tested on Google Pixel XL with Android Oreo. 42*b7893ccfSSadaf EbrahimiEquvilaent build scripts for Windows OS are at the same directory. 43*b7893ccfSSadaf Ebrahimi 44