-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
116 lines (100 loc) · 3.19 KB
/
build.gradle
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
plugins {
id "base"
id "com.jetbrains.python.envs" version "0.0.30"
}
if (project != rootProject) {
project.buildDir = rootProject.buildDir
logger.info("Using root project's buildDir: $buildDir")
}
if (!project.hasProperty('dataDir')) {
def dataDirCandidate = rootProject.file('data/xml')
if (dataDirCandidate.isDirectory())
project.ext.dataDir = dataDirCandidate
else {
throw new FileNotFoundException("Data directory not found. Either put data into $dataDirCandidate, or set the dataDir property.")
}
logger.info("Using data from $dataDirCandidate")
}
envs {
bootstrapDirectory = new File(buildDir, 'tools')
envsDirectory = new File(buildDir, 'envs')
python "python37", "3.7.4", []
virtualenv "macrogen", "python37"
project.ext.venv = "$buildDir/envs/macrogen"
}
task prepareMacrogenOptions {
project.ext.macrogenArgs = []
project.ext.macrogenInputs = []
project.ext.macrogenExecutable = "$venv/bin/macrogen"
if (project.hasProperty('macrogenOptions'))
macrogenArgs.add(project.macrogenOptions)
if (project.rootProject != project) {
// project.macrogenArgs.add("--sigils=$buildDir/sigils.json")
// project.macrogenInputs.add("$buildDir/sigils.json")
project.macrogenArgs.add("--paralipomena=$buildDir/www/data/paralipomena.js")
project.macrogenInputs.add("$buildDir/www/data/paralipomena.js")
logger.info("Setup macrogen to use pregenerated data from $buildDir")
project.ext.macrogen_reports = "$buildDir/www/macrogenesis"
} else {
project.ext.macrogen_reports = "$buildDir/macrogenesis"
}
project.macrogenArgs.add("--data=$dataDir")
project.macrogenInputs.add("$dataDir/macrogen")
project.macrogenArgs.add("--report-dir=$macrogen_reports")
project.macrogenArgs.add('--progressbar=false')
}
task installMacrogen(type: Exec) {
description 'Installs the macrogenesis tool and its requirements'
group 'macrogen'
dependsOn 'build_envs'
executable "$venv/bin/pip"
workingDir projectDir
args "install", "-U", "-e", "."
outputs.file "$venv/bin/macrogen"
}
task runMacrogenComplete {
description 'Runs the complete macrogenesis analysis and configuration'
dependsOn installMacrogen, prepareMacrogenOptions
doLast {
project.exec {
executable macrogenExecutable
args macrogenArgs
inputs.files(project.macrogenInputs)
}
}
}
task runMacrogenAnalysis {
description 'Runs the macrogenesis analysis phase'
group 'macrogen'
dependsOn installMacrogen
dependsOn prepareMacrogenOptions
inputs.files(project.macrogenInputs)
doLast {
project.exec {
executable macrogenExecutable
args macrogenArgs
args "--skip-reports"
args "-o", "$buildDir/macrogen-graphs.zip"
args "--order", "$buildDir/order.xml"
}
}
outputs.file "$buildDir/macrogen-graphs.zip"
outputs.file "$buildDir/order.xml"
}
task runMacrogenReporting {
description 'Runs the macrogenesis reporting phase'
group 'macrogen'
dependsOn runMacrogenAnalysis
dependsOn prepareMacrogenOptions
inputs.files(project.macrogenInputs)
doLast {
project.exec {
args "-i", "$buildDir/macrogen-graphs.zip"
args macrogenArgs
executable macrogenExecutable
}
}
inputs.file("$buildDir/macrogen-graphs.zip")
outputs.dir("$macrogen_reports")
}
assemble.dependsOn(runMacrogenReporting)