xref: /aosp_15_r20/external/vulkan-validation-layers/build-android/cmake/README.md (revision b7893ccf7851cd6a48cc5a1e965257d8a5cdcc70)
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