214 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			214 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| 
								 | 
							
								<xml>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- Android TOOLS -------------------------------------->
							 | 
						||
| 
								 | 
							
								<!--
							 | 
						||
| 
								 | 
							
								  Configure build via variables, otherwise defaults will be used:
							 | 
						||
| 
								 | 
							
								     Set the path to the exact ndk to use with ANDROID_NDK_ROOT,
							 | 
						||
| 
								 | 
							
								        or set where all your ndks are installed with ANDROID_NDK_DIR and hxcpp will guess.
							 | 
						||
| 
								 | 
							
								        Set the version number by setting the variable:
							 | 
						||
| 
								 | 
							
								           NDKV?? - base version of ndk to use, hxcpp will find the letter, like "NDKV10" -> may end up with "10c"
							 | 
						||
| 
								 | 
							
								     TOOLCHAIN_VERSION - the compiler number, like "4.8" or "4.4.3"
							 | 
						||
| 
								 | 
							
								     PLATFORM - the android platform api level, like "android-19"
							 | 
						||
| 
								 | 
							
								              - you can also set the variable "android-19" directly
							 | 
						||
| 
								 | 
							
								-->
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<set name="HXCPP_CPP11" value="1" if="NDKV9+ || NDKV10+" unless="HXCPP_NO_CPP11" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<!-- Set architecture -->
							 | 
						||
| 
								 | 
							
								<section if="HXCPP_X86">
							 | 
						||
| 
								 | 
							
								  <set name="ARCH" value="-x86" />
							 | 
						||
| 
								 | 
							
								  <set name="ABI" value="x86"  />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM_ARCH" value="arch-x86" />
							 | 
						||
| 
								 | 
							
								  <set name="TOOLCHAIN" value="x86-${TOOLCHAIN_VERSION}" />
							 | 
						||
| 
								 | 
							
								  <set name="EXEPREFIX" value="i686-linux-android" />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM" value="android-14" unless="PLATFORM" />
							 | 
						||
| 
								 | 
							
								</section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<section unless="HXCPP_X86">
							 | 
						||
| 
								 | 
							
								  <set name="ARCH" value="-v7" if="HXCPP_ARMV7" />
							 | 
						||
| 
								 | 
							
								  <set name="ABI" value="armeabi" />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM_ARCH" value="arch-arm" />
							 | 
						||
| 
								 | 
							
								  <set name="TOOLCHAIN" value="arm-linux-androideabi-${TOOLCHAIN_VERSION}" />
							 | 
						||
| 
								 | 
							
								  <set name="EXEPREFIX" value="arm-linux-androideabi" />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM" value="android-5" unless="PLATFORM" />
							 | 
						||
| 
								 | 
							
								</section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<section if="HXCPP_ARM64">
							 | 
						||
| 
								 | 
							
								  <set name="ARCH" value="-64"/>
							 | 
						||
| 
								 | 
							
								  <set name="ABI" value="arm64-v8a" />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM_ARCH" value="arch-arm64" />
							 | 
						||
| 
								 | 
							
								  <set name="TOOLCHAIN" value="aarch64-linux-android-${TOOLCHAIN_VERSION}" />
							 | 
						||
| 
								 | 
							
								  <set name="EXEPREFIX" value="aarch64-linux-android" />
							 | 
						||
| 
								 | 
							
								  <set name="PLATFORM" value="android-19" unless="PLATFORM" />
							 | 
						||
| 
								 | 
							
								</section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<set name="prebuiltBase" value="${ANDROID_NDK_ROOT}/toolchains/${TOOLCHAIN}/prebuilt/${ANDROID_HOST}" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<path name="${prebuiltBase}/bin" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<set name="HXCPP_AR" value="${EXEPREFIX}-ar" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<include name="toolchain/gcc-toolchain.xml"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<compiler id="android-gcc" exe="g++">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <exe name="${EXEPREFIX}-g++" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <!-- These must appear in this order! -->
							 | 
						||
| 
								 | 
							
								  <flag value="--sysroot=${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}"/>
							 | 
						||
| 
								 | 
							
								  <section if="NDKV8+">
							 | 
						||
| 
								 | 
							
								    <flag value="-I${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/${TOOLCHAIN_VERSION}/include" />
							 | 
						||
| 
								 | 
							
								    <flag value="-I${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/${TOOLCHAIN_VERSION}/libs/${ABI}/include" />
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <section unless="NDKV8+">
							 | 
						||
| 
								 | 
							
								    <flag value="-I${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/${ABI}/include" />
							 | 
						||
| 
								 | 
							
								    <flag value="-I${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/include" />
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <include name="toolchain/common-defines.xml" />
							 | 
						||
| 
								 | 
							
								  <flag value="-flto" if="HXCPP_OPTIMIZE_LINK" unless="debug"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-I${HXCPP}/include"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-Iinclude"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fpic"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fvisibility=hidden"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-ffunction-sections"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-funwind-tables"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fstack-protector"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fno-short-enums"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-Wno-overflow" />
							 | 
						||
| 
								 | 
							
								  <cppflag value="-Wno-invalid-offsetof" />
							 | 
						||
| 
								 | 
							
								  <cppflag value="-frtti"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-D_LINUX_STDDEF_H "/> <!-- Avoid compiler including 2 version of file -->
							 | 
						||
| 
								 | 
							
								  <flag value="-Wno-psabi" />
							 | 
						||
| 
								 | 
							
								  <cppflag value="-std=c++11" if="HXCPP_CPP11"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-DHXCPP_CPP11" if="HXCPP_CPP11"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <section unless="HXCPP_X86">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <section if="HXCPP_ARM64">
							 | 
						||
| 
								 | 
							
								       <flag value="-DHXCPP_ARM64"  />
							 | 
						||
| 
								 | 
							
								    </section>
							 | 
						||
| 
								 | 
							
								    <section if="HXCPP_ARMV7">
							 | 
						||
| 
								 | 
							
								       <flag value="-DHXCPP_ARMV7"  />
							 | 
						||
| 
								 | 
							
								       <flag value="-march=armv7-a"  />
							 | 
						||
| 
								 | 
							
								       <flag value="-mfpu=vfpv3-d16"  />
							 | 
						||
| 
								 | 
							
								       <flag value="-mfloat-abi=softfp" />
							 | 
						||
| 
								 | 
							
								    </section>
							 | 
						||
| 
								 | 
							
								    <section unless="HXCPP_ARMV7 || HXCPP_ARM64">
							 | 
						||
| 
								 | 
							
								       <flag value="-DHXCPP_ARMV5" />
							 | 
						||
| 
								 | 
							
								       <flag value="-D__ARM_ARCH_5__"/>
							 | 
						||
| 
								 | 
							
								       <flag value="-D__ARM_ARCH_5T__"/>
							 | 
						||
| 
								 | 
							
								       <flag value="-D__ARM_ARCH_5E__"/>
							 | 
						||
| 
								 | 
							
								       <flag value="-D__ARM_ARCH_5TE__"/>
							 | 
						||
| 
								 | 
							
								       <flag value="-march=armv5te" />
							 | 
						||
| 
								 | 
							
								       <flag value="-mtune=xscale" />
							 | 
						||
| 
								 | 
							
								       <flag value="-msoft-float" />
							 | 
						||
| 
								 | 
							
								    </section>
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <section if="HXCPP_X86">
							 | 
						||
| 
								 | 
							
								    <flag value="-DANDROID_X86"/>
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <flag value="-fomit-frame-pointer"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fexceptions"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-fno-strict-aliasing"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-finline-limit=10000"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-DANDROID=ANDROID"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-DHX_ANDROID"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-D${ANDROID_PLATFORM_DEFINE}"/>
							 | 
						||
| 
								 | 
							
								  <!-- todo <flag value="-Werror"/> -->
							 | 
						||
| 
								 | 
							
								  <flag value="-Wa,--noexecstack"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-O2" unless="debug || HXCPP_OPTIMIZE_FOR_SIZE || HXCPP_OPTIMIZE_FOR_FAST"/>
							 | 
						||
| 
								 | 
							
								  <section if="HXCPP_OPTIMIZE_FOR_SIZE" unless="debug || HXCPP_OPTIMIZE_FOR_FAST">
							 | 
						||
| 
								 | 
							
									  <!-- see https://software.intel.com/en-us/blogs/2013/01/17/x86-gcc-code-size-optimizations -->
							 | 
						||
| 
								 | 
							
								    <flag value="-Os" />
							 | 
						||
| 
								 | 
							
								    <flag value="-fno-asynchronous-unwind-tables" />
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <section if="HXCPP_OPTIMIZE_FOR_FAST" unless="debug">
							 | 
						||
| 
								 | 
							
								    <flag value="-Ofast" />
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <flag value="-O0" if="debug"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-g" if="HXCPP_DEBUG_LINK"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-DNDEBUG"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-DHXCPP_LOAD_DEBUG" if="HXCPP_LOAD_DEBUG"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-c"/>
							 | 
						||
| 
								 | 
							
								  <outflag value="-o"/>
							 | 
						||
| 
								 | 
							
								  <ext value=".obj"/>
							 | 
						||
| 
								 | 
							
								  <objdir value="obj/android${OBJEXT}${ARCH}" />
							 | 
						||
| 
								 | 
							
								</compiler>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<linker id="dll" exe="g++" >
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <exe name="${EXEPREFIX}-g++" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <ext value=".so"/>
							 | 
						||
| 
								 | 
							
								  <outflag value="-o"/>
							 | 
						||
| 
								 | 
							
								  <prefix value="lib"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <flag value="-frtti"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-nostdlib"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-std=c++11" if="HXCPP_CPP11"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,-shared,-Bsymbolic"/>
							 | 
						||
| 
								 | 
							
								  <section if="HXCPP_OPTIMIZE_FOR_SIZE || HXCPP_GC_SECTIONS" unless="debug">
							 | 
						||
| 
								 | 
							
								    <flag value="-Wl,--gc-sections" />
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <section if="HXCPP_STRIP_ALL" unless="debug || HXCPP_DEBUG_LINK">
							 | 
						||
| 
								 | 
							
								    <flag value="-Wl,--strip-all" unless="HXCPP_DEBUG_LINK"/>
							 | 
						||
| 
								 | 
							
								  </section>
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,--no-undefined" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,--unresolved-symbols=ignore-in-object-files" if="dll_import" />
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,-z,noexecstack"/>
							 | 
						||
| 
								 | 
							
								  <flag value="--sysroot=${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-L${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/${ABI}/libstdc++.a" if="NDKV6" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/${ABI}/libgnustl_static.a" if="NDKV7" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/${TOOLCHAIN_VERSION}/libs/${ABI}/libgnustl_static.a" if="NDKV8+" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/crtbegin_so.o"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${prebuiltBase}/lib/gcc/${EXEPREFIX}/${TOOLCHAIN_VERSION}/libgcc.a" unless="NDKV12+"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${prebuiltBase}/lib/gcc/${EXEPREFIX}/${TOOLCHAIN_VERSION}.x/libgcc.a" if="NDKV12+"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/libc.so"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/libm.so"/>
							 | 
						||
| 
								 | 
							
								  <lib name="-llog"/>
							 | 
						||
| 
								 | 
							
								  <lib name="-ldl"/>
							 | 
						||
| 
								 | 
							
								</linker>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<linker id="exe" exe="g++" >
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <exe name="${EXEPREFIX}-g++" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <ext value=""/>
							 | 
						||
| 
								 | 
							
								  <outflag value="-o"/>
							 | 
						||
| 
								 | 
							
								  <prefix value=""/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <flag value="-frtti"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-nostdlib"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-std=c++11" if="HXCPP_CPP11"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,--no-undefined" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,--unresolved-symbols=ignore-in-object-files" if="dll_import" />
							 | 
						||
| 
								 | 
							
								  <flag value="-Wl,-z,noexecstack"/>
							 | 
						||
| 
								 | 
							
								  <flag value="--sysroot=${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}"/>
							 | 
						||
| 
								 | 
							
								  <flag value="-L${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib"/>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/${ABI}/libstdc++.a" if="NDKV6" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/libs/${ABI}/libgnustl_static.a" if="NDKV7" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/sources/cxx-stl/gnu-libstdc++/${TOOLCHAIN_VERSION}/libs/${ABI}/libgnustl_static.a" if="NDKV8+" unless="dll_import" />
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/crtbegin_static.o"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${prebuiltBase}/lib/gcc/${EXEPREFIX}/${TOOLCHAIN_VERSION}/libgcc.a" unless="NDKV12+"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${prebuiltBase}/lib/gcc/${EXEPREFIX}/${TOOLCHAIN_VERSION}.x/libgcc.a" if="NDKV12+"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/libc.so"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/libm.so"/>
							 | 
						||
| 
								 | 
							
								  <lib name="${ANDROID_NDK_ROOT}/platforms/${PLATFORM}/${PLATFORM_ARCH}/usr/lib/crtend_android.o"/>
							 | 
						||
| 
								 | 
							
								  <lib name="-llog"/>
							 | 
						||
| 
								 | 
							
								  <lib name="-ldl"/>
							 | 
						||
| 
								 | 
							
								</linker>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</xml>
							 |