# Set the platforms which should be build by running ant
# Possible Targets:
#
# Windows_X86_32
# Windows_X86_64
# Linux_X86_32
# Linux_X86_64
# QNX_X86_32
# iPhoneOS_ARMV7_32
# iPhoneOS_ARMV7S_32
# iPhoneSimulatorOS_X86_32
# iPhoneOS_ARM64
# iPhoneSimulatorOS_X86_64
# MacOSX_X86_32
# MacOSX_X86_64
# Android_ARMV7L_Cross
#
# Define multiple targets which should be build in a row with:
# target.platforms = XXXX, YYYY
#
# Add Properties with:
# target.platforms.XXXX.generator=Unix Makefiles / Visual Studio 8 2005 / XCode - See CMake documentation for possible Generators
# target.platforms.XXXX.buildTests=YES / NO
# target.platforms.XXXX.writeTestResultsToFile=YES / NO - Some Platforms are not allowed / able to write to the file System - Disable with this property
#
# If you want to use a local Capu Source Dir:
#
# LOCAL_CAPU_SOURCE_DIR=/Path/To/Your/Local/capu/Dir
#
# ===============================================================================================
# -----------------
# Defaults:
# -----------------
# Tests have to be disabled for: iPhoneOS_ARMV7_32, iPhoneOS_ARMV7S_32, iPhoneOS_ARM64
#
target.platforms.iPhoneOS_ARMV7_32.buildTests=NO
target.platforms.iPhoneOS_ARMV7S_32.buildTests=NO
target.platforms.iPhoneOS_ARM64.buildTests=NO
#
# Writing Test-Results to the File System have to be disabled for: iPhoneSimulatorOS_X86_32, iPhoneSimulatorOS_X86_64
#
target.platforms.iPhoneSimulatorOS_X86_32.writeTestResultsToFile=NO
target.platforms.iPhoneSimulatorOS_X86_64.writeTestResultsToFile=NO
#
# ===============================================================================================
#
# -----------------
# Example:
# -----------------
#
# target.platforms = Windows_X86_32, QNX_X86_32
# target.platforms.Windows_X86_32.generator=Visual Studio 8 2005
# target.platforms.QNX_X86_32.generator=Unix Makefiles
# target.platforms.QNX_X86_32.buildTests=NO
#
