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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
{ "cmake-build":
{ "vars":
[ "source_dir"
, "cmake_options"
, "cmake_defines"
, "CC"
, "CXX"
, "CFLAGS"
, "CXXFLAGS"
, "LDFLAGS"
, "ADD_CFLAGS"
, "ADD_CXXFLAGS"
, "ADD_LDFLAGS"
, "ENV"
, "AR"
, "BUILD_POSITION_INDEPENDENT"
]
, "imports":
{ "artifacts": ["", "field_artifacts"]
, "flags-cc": ["CC", "flags-cc"]
, "flags-cxx": ["CC", "flags-cxx"]
, "compiler-cc": ["CC", "compiler-cc"]
, "compiler-cxx": ["CC", "compiler-cxx"]
, "default-LDFLAGS": ["CC", "default-LDFLAGS"]
, "default-AR": ["CC", "default-AR"]
, "default-ENV": ["CC", "default-ENV"]
}
, "expression":
{ "type": "let*"
, "bindings":
[ [ "CMAKE_FLAGS"
, { "type": "++"
, "$1":
[ { "type": "foreach"
, "var": "define"
, "range": {"type": "var", "name": "cmake_defines"}
, "body":
{ "type": "join"
, "$1": ["-D", {"type": "var", "name": "define"}]
}
}
, {"type": "var", "name": "cmake_options"}
, { "type": "if"
, "cond": {"type": "var", "name": "BUILD_POSITION_INDEPENDENT"}
, "then": ["-DCMAKE_POSITION_INDEPENDENT_CODE=ON"]
}
, [{"type": "join", "$1": ["-DCMAKE_AR=/usr/bin/ar"]}]
]
}
]
, ["BUILD_POSITION_INDEPENDENT", null]
, ["CC", {"type": "CALL_EXPRESSION", "name": "compiler-cc"}]
, ["CXX", {"type": "CALL_EXPRESSION", "name": "compiler-cxx"}]
, [ "CFLAGS"
, { "type": "join"
, "separator": " "
, "$1": {"type": "CALL_EXPRESSION", "name": "flags-cc"}
}
]
, [ "CXXFLAGS"
, { "type": "join"
, "separator": " "
, "$1": {"type": "CALL_EXPRESSION", "name": "flags-cxx"}
}
]
, [ "LDFLAGS"
, { "type": "join"
, "separator": " "
, "$1":
{ "type": "++"
, "$1":
[ { "type": "var"
, "name": "LDFLAGS"
, "default":
{"type": "CALL_EXPRESSION", "name": "default-LDFLAGS"}
}
, {"type": "var", "name": "ldflags", "default": []}
]
}
}
]
, [ "ENV"
, { "type": "map_union"
, "$1":
{ "type": "++"
, "$1":
[ {"type": "CALL_EXPRESSION", "name": "default-ENV"}
, [ { "type": "var"
, "name": "ENV"
, "default": {"type": "empty_map"}
}
]
, [ { "type": "env"
, "vars": ["CC", "CXX", "CXXFLAGS", "CFLAGS", "LDFLAGS"]
}
]
]
}
}
]
, [ "AR"
, { "type": "var"
, "name": "AR"
, "default": {"type": "CALL_EXPRESSION", "name": "default-AR"}
}
]
, [ "script"
, { "type": "singleton_map"
, "key": "run_cmake.sh"
, "value":
{ "type": "BLOB"
, "data":
{ "type": "join"
, "separator": "\n"
, "$1":
[ "set -eu"
, "readonly CMAKE_AR=$(which $1)"
, "shift"
, "cmake \"$@\" -Ssource -Bbuild -DCMAKE_AR=${CMAKE_AR} -DCMAKE_INSTALL_PREFIX=./install >configure.log || (cat configure.log && exit 1)"
, "cmake --build build --target install >build.log || (cat configure.log build.log && exit 1)"
, "find ./install -type l -delete"
]
}
}
}
]
]
, "body":
{ "type": "ACTION"
, "inputs":
{ "type": "map_union"
, "$1":
[ {"type": "var", "name": "source_dir"}
, {"type": "var", "name": "script"}
]
}
, "cmd":
{ "type": "++"
, "$1":
[ ["/bin/sh", "run_cmake.sh", {"type": "var", "name": "AR"}]
, {"type": "var", "name": "CMAKE_FLAGS"}
]
}
, "out_dirs": ["install"]
, "env": {"type": "var", "name": "ENV"}
}
}
}
}
|