###############################################################################
# Copyright (c) 2013 Sierra Wireless and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     Sierra Wireless - initial API and implementation
###############################################################################
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
               .,\
               OSGI-INF/,\
               about.html
# The default encoding to use to compile the project
javacDefaultEncoding.. = UTF-8
# Use to specify that PDE should check synchronisation between
# java setting (.settings/org.eclipse.jdt.core.prefs) and this build.properties
javacProjectSettings = true
# The java version of the source code
javacSource=1.6
# The java version of the byte code targeted
javacTarget=1.6
src.includes = about.html,\
               LICENSE.txt
