#Copyright (c) 2012 Mia-Software. 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: 
#	Gregoire DUPE (Mia-Software) - Bug 386235 - [Releng] Use tycho to build MoDisco

#A file which contains additional dependencies to add to tests modules.
#The path should the path of the file relatively to trunk
test.dependencies=${product.source.location}/org.eclipse.modisco.releng.tycho/helios/test_dependencies.xml

#A file which contains repositories declarations used when the build is against update-sites.
#The path should the path of the file relatively to 
dependencies.updatesites=${product.source.location}/org.eclipse.modisco.releng.tycho/empty.repositories.xml

targetOS=${product.source.location}/org.eclipse.modisco.releng.tycho/targetOS.xml
targetPlatform=${product.source.location}/org.eclipse.modisco.releng.tycho/helios/targetPlatform.xml

#The following informations will be used as maven pom parent informations
product.group.id=org.eclipse.mdt
product.version=1.2.0

#How the releng tools should find relevant bundles
updatesite.source.location=${product.source.location}/org.eclipse.modisco.updatesite
test.report.plugin.source.location=${product.source.location}/org.eclipse.modisco.doc.test.report
metric.report.plugin.source.location=${product.source.location}/org.eclipse.modisco.doc.metric.report

#API use report generation configuration
org.eclipse.emf.facet.releng.tycho.util.configure.apireport.project=${product.source.location}/org.eclipse.modisco.doc.api.report
org.eclipse.emf.facet.releng.tycho.util.configure.apireport.eclipsepackage=${product.source.location}/org.eclipse.modisco.doc.api.report.eclipsepackage
org.eclipse.emf.facet.releng.tycho.util.configure.apireport.scopepattern=org\\.eclipse.*modisco.*

org.eclipse.emf.facet.releng.tycho.util.configure.pmdRuleSet=${product.source.location}/../org.eclipse.emf.facet.archi.tech.rules/pmd/ruleset.xml
org.eclipse.emf.facet.releng.tycho.util.configure.checkstyleConfig=${product.source.location}/../org.eclipse.emf.facet.archi.tech.rules/checkstyle/EmfFacet.checkstyle
org.eclipse.emf.facet.releng.tycho.util.configure.test.vmargs=-Xmx1024m -XX:MaxPermSize=256m

org.eclipse.emf.facet.releng.tycho.util.configure.source.idRegex=org\\.eclipse.*modisco.*
org.eclipse.emf.facet.releng.tycho.util.configure.doc.pattern=org\\.eclipse(\\.gmt)?\\.modisco\\.((?!test|example).)*
org.eclipse.emf.facet.releng.tycho.util.configure.statsURI=http://download.eclipse.org/stats

org.eclipse.emf.facet.releng.tycho.util.configure.bugzillaProduct=MDT.MoDisco
org.eclipse.emf.facet.releng.tycho.util.configure.ipLogProjectId=modeling.mdt.modisco
