forked from sosy-lab/cpachecker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.xml
122 lines (100 loc) · 6.17 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?xml version="1.0" encoding="UTF-8"?>
<!-- vim: set tabstop=8 shiftwidth=4 expandtab : -->
<project name="CPAchecker" basedir="." default="build"
xmlns:ivy="antlib:org.apache.ivy.ant">
<!-- Include a file in which all properties can be overridden.
This file won't get checked in and can be used to change properties
locally for one machine if necessary. -->
<property file="build.properties"/>
<property environment="env"/>
<property name="version.base" value="1.6.1-svn"/> <!-- change here for a release -->
<!-- Customization of build process. -->
<property name="jar.file" value="cpachecker.jar"/>
<property name="ivy.settings.file" value="lib/ivysettings.xml"/>
<property name="junit.dir" value="output/junit"/>
<property name="class.main" value="org.sosy_lab.cpachecker.cmdline.CPAMain"/>
<property name="jar.excludes" value=""/>
<property name="project.url" value="http://cpachecker.sosy-lab.org"/>
<property name="ivy.configurations" value="build, runtime, test, format-source, findbugs"/>
<property name="documentation.options.file" value="doc/ConfigurationOptions.txt"/>
<import file="build/build-ivy.xml"/>
<import file="build/build-version.xml"/>
<import file="build/build-compile.xml"/>
<import file="build/build-jar.xml"/>
<import file="build/build-documentation.xml"/>
<import file="build/build-dist.xml"/>
<import file="build/build-junit.xml"/>
<import file="build/build-format-source.xml"/>
<import file="build/build-findbugs.xml"/>
<property name="version.file" value="${class.dir}/org/sosy_lab/cpachecker/VERSION.txt"/>
<property name="verifiercloud.version" value="0.+"/> <!-- Version of VerifierCloud to use ("+" is wildcard). -->
<property name="verifiercloud.refresh" value="true"/> <!-- Lookup newest version of VerifierCloud on server each time. -->
<path id="classpath">
<pathelement location="${class.dir}"/>
<fileset dir="lib" includes="*.jar"/>
<fileset dir="${ivy.lib.dir}" includes="runtime/*.jar test/*.jar build/annotations.jar build/error_prone_annotations.jar"/>
</path>
<!-- Main targets -->
<target name="clean">
<delete includeEmptyDirs="true">
<fileset dir="." includes="${class.dir}/** cpachecker.jar CPAchecker-*.zip CPAchecker-*.tar.*"/>
</delete>
<!-- Clean subprojects -->
<ant antfile="src/org/sosy_lab/cpachecker/cpa/automaton/AutomatonBuild.xml" target="clean" inheritAll="false"/>
<ant antfile="src/org/sosy_lab/cpachecker/util/predicates/precisionConverter/Parser.xml" target="clean" inheritAll="false"/>
</target>
<target name="build" depends="-warn-factorypath, build-project, build-documentation" description="Build"/>
<target name="resolve-benchmark-dependencies" depends="load-ivy" description="Retrieve dependencies for benchmark configuration" unless="ivy.disable">
<condition property="ivy.useCacheOnly" value="true" else="false"><not><istrue value="${verifiercloud.refresh}"/></not></condition>
<ivy:resolve conf="benchmark" log="download-only" resolveMode="dynamic" useCacheOnly="${ivy.useCacheOnly}" refresh="${verifiercloud.refresh}"/>
<ivy:retrieve sync="true" pattern="${ivy.lib.dir}-benchmark/[artifact](-[classifier]).[ext]"/>
</target>
<target name="tests" depends="unit-tests, python-unit-tests" description="Run all tests"/>
<target name="all-checks" description="Run all tests and checks">
<!-- We have to use antcall here to run clean twice. -->
<antcall target="clean"/>
<antcall target="build-project-ecj"/>
<antcall target="clean"/>
<antcall target="standard-checks"/>
</target>
<!-- Auxiliary targets -->
<target name="init" depends="create-version-file">
<echo message="Building ${ant.project.name} ${version.base}"/>
</target>
<target name="build-subprojects">
<echo message="Generate automaton parser if necessary" level="info"/>
<ant antfile="src/org/sosy_lab/cpachecker/cpa/automaton/AutomatonBuild.xml" inheritAll="false"/>
<echo message="Generate precision-rewriting parser if necessary" level="info"/>
<ant antfile="src/org/sosy_lab/cpachecker/util/predicates/precisionConverter/Parser.xml" inheritAll="false"/>
</target>
<target name="build-dependencies" depends="init, resolve-dependencies, build-subprojects"/>
<available file=".factorypath" property="factorypath.present"/>
<target name="-warn-factorypath" unless="factorypath.present">
<echo level="warning">If you use Eclipse, please copy .factorypath.template to .factorypath and (if necessary) adjust the path to your CPAchecker directory in it.</echo>
<echo level="warning">This will help you get additional helpful compiler warnings.</echo>
</target>
<target name="standard-checks" depends="tests, findbugs"/>
<target name="python-unit-tests" depends="build" description="Run unit tests of python scripts">
<!-- Tests are only executed if python is available, ignored otherwise. -->
<exec executable="python3"
failonerror="true"
failifexecutionfails="false">
<arg line="-m unittest discover scripts"/>
</exec>
</target>
<!-- Targets for downloading CPAchecker instead of building it.
This downloads CPAchecker from the VerifierCloud and is used by the BuildBot.
Warning: this might overwrite local changes. -->
<target name="download-cpachecker" depends="determine-version-revision, resolve-dependencies">
<script language="javascript"><![CDATA[
var revision = project.getProperty("version.revision");
project.setProperty("version.revision.without-suffix", revision.replaceAll("[A-Za-z]*$", ''));
]]></script>
<get src="https://vcloud.sosy-lab.org/cpachecker/webclient/tool?revision=${version.revision.without-suffix}" dest="CPAchecker.zip" verbose="false"/>
<unzip src="CPAchecker.zip" dest="." failOnEmptyArchive="true" overwrite="true">
<patternset>
<include name="cpachecker.jar"/>
</patternset>
</unzip>
</target>
</project>