@@ -32,6 +32,7 @@ class GenerateLibs extends DefaultTask {
3232 private final String [] buildEnvs = System . getProperty(' envs' )?. split(' ,' )
3333 private final boolean forWindows = buildEnvs?. contains(' windows' )
3434 private final boolean forLinux = buildEnvs?. contains(' linux' )
35+ private final boolean forAndroid = buildEnvs?. contains(' android' )
3536 private final boolean forMac = buildEnvs?. contains(' macos' )
3637 private final boolean forMacArm64 = buildEnvs?. contains(' macosarm64' )
3738
@@ -118,6 +119,12 @@ class GenerateLibs extends DefaultTask {
118119 buildTargets + = linux64
119120 }
120121
122+ if (forAndroid) {
123+ buildTargets + = new BuildTarget (Os.Android , Architecture.Bitness . _32, new String [] {" **/*.c" }, new String [0 ],
124+ new String [] {" **/*.cpp" }, new String [0 ], new String [0 ], " " , " -O2 -Wall -D__ANDROID__" , " -O2 -Wall -D__ANDROID__" ,
125+ " -lm -Wl,-z,max-page-size=0x4000 -stdlib=libc++ -lc++_shared" );
126+ }
127+
121128 if (forMac) {
122129 buildTargets + = createMacTarget(Architecture . x86)
123130 }
@@ -137,12 +144,15 @@ class GenerateLibs extends DefaultTask {
137144 BuildExecutor . executeAnt(jniDir + ' /build-windows64.xml' , commonParams)
138145 if (forLinux)
139146 BuildExecutor . executeAnt(jniDir + ' /build-linux64.xml' , commonParams)
147+ if (forAndroid) // Contrary to the name, this builds all four ABIs (arm64, arm, x86, x86_64)
148+ BuildExecutor . executeAnt(jniDir + ' /build-android32.xml' , commonParams)
140149 if (forMac)
141150 BuildExecutor . executeAnt(jniDir + ' /build-macosx64.xml' , commonParams)
142151 if (forMacArm64)
143152 BuildExecutor . executeAnt(jniDir + ' /build-macosxarm64.xml' , commonParams)
144-
145- BuildExecutor . executeAnt(jniDir + ' /build.xml' , ' -v' , ' pack-natives' )
153+ // Exclude android because android packages into aar, not jar
154+ if (! forAndroid)
155+ BuildExecutor . executeAnt(jniDir + ' /build.xml' , ' -v' , ' pack-natives' )
146156
147157 if (forWindows)
148158 checkLibExist(" windows64/imgui-java64.dll" )
0 commit comments