###############################################################################
# Copyright (c) 2009, 2012 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,\
               plugin.xml
# The java version of the source code
javacSource=1.6
# The java version of the byte code targeted
javacTarget=1.6
# 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
## other properties
src.includes = about.html
