@@ -125,46 +125,8 @@ build_all() {
125
125
done
126
126
cd ..
127
127
128
- cd libcxxabi
129
- for arch in $ARCHS ; do
130
- [ -z " $CLEAN " ] || rm -rf build-$arch -$type
131
- mkdir -p build-$arch -$type
132
- cd build-$arch -$type
133
- if [ " $type " = " shared" ]; then
134
- LIBCXXABI_VISIBILITY_FLAGS=" -D_LIBCPP_BUILDING_LIBRARY= -U_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"
135
- else
136
- LIBCXXABI_VISIBILITY_FLAGS=" -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"
137
- fi
138
- cmake \
139
- ${CMAKE_GENERATOR+-G} " $CMAKE_GENERATOR " \
140
- -DCMAKE_BUILD_TYPE=Release \
141
- -DCMAKE_INSTALL_PREFIX=" $PREFIX /$arch -w64-mingw32" \
142
- -DCMAKE_C_COMPILER=$arch -w64-mingw32-clang \
143
- -DCMAKE_CXX_COMPILER=$arch -w64-mingw32-clang++ \
144
- -DCMAKE_CROSSCOMPILING=TRUE \
145
- -DCMAKE_SYSTEM_NAME=Windows \
146
- -DCMAKE_C_COMPILER_WORKS=TRUE \
147
- -DCMAKE_CXX_COMPILER_WORKS=TRUE \
148
- -DLLVM_PATH=" $LLVM_PATH " \
149
- -DLLVM_COMPILER_CHECKED=TRUE \
150
- -DCMAKE_AR=" $PREFIX /bin/llvm-ar" \
151
- -DCMAKE_RANLIB=" $PREFIX /bin/llvm-ranlib" \
152
- -DLIBCXXABI_USE_COMPILER_RT=ON \
153
- -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
154
- -DLIBCXXABI_ENABLE_THREADS=ON \
155
- -DLIBCXXABI_TARGET_TRIPLE=$arch -w64-mingw32 \
156
- -DLIBCXXABI_ENABLE_SHARED=OFF \
157
- -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include \
158
- -DLIBCXXABI_LIBDIR_SUFFIX=" " \
159
- -DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=OFF \
160
- -DCXX_SUPPORTS_CXX_STD=TRUE \
161
- -DCMAKE_CXX_FLAGS=" $LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \
162
- ..
163
- $BUILDCMD ${CORES+-j$CORES }
164
- cd ..
165
- done
166
- cd ..
167
-
128
+ # Configure, but don't build, libcxx, so that libcxxabi has
129
+ # proper headers to refer to
168
130
cd libcxx
169
131
for arch in $ARCHS ; do
170
132
[ -z " $CLEAN " ] || rm -rf build-$arch -$type
@@ -212,6 +174,54 @@ build_all() {
212
174
-DCMAKE_SHARED_LINKER_FLAGS=" -lunwind" \
213
175
-DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=FALSE \
214
176
..
177
+ $BUILDCMD ${CORES+-j$CORES } generate-cxx-headers
178
+ cd ..
179
+ done
180
+ cd ..
181
+
182
+ cd libcxxabi
183
+ for arch in $ARCHS ; do
184
+ [ -z " $CLEAN " ] || rm -rf build-$arch -$type
185
+ mkdir -p build-$arch -$type
186
+ cd build-$arch -$type
187
+ if [ " $type " = " shared" ]; then
188
+ LIBCXXABI_VISIBILITY_FLAGS=" -D_LIBCPP_BUILDING_LIBRARY= -U_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS"
189
+ else
190
+ LIBCXXABI_VISIBILITY_FLAGS=" -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS"
191
+ fi
192
+ cmake \
193
+ ${CMAKE_GENERATOR+-G} " $CMAKE_GENERATOR " \
194
+ -DCMAKE_BUILD_TYPE=Release \
195
+ -DCMAKE_INSTALL_PREFIX=" $PREFIX /$arch -w64-mingw32" \
196
+ -DCMAKE_C_COMPILER=$arch -w64-mingw32-clang \
197
+ -DCMAKE_CXX_COMPILER=$arch -w64-mingw32-clang++ \
198
+ -DCMAKE_CROSSCOMPILING=TRUE \
199
+ -DCMAKE_SYSTEM_NAME=Windows \
200
+ -DCMAKE_C_COMPILER_WORKS=TRUE \
201
+ -DCMAKE_CXX_COMPILER_WORKS=TRUE \
202
+ -DLLVM_PATH=" $LLVM_PATH " \
203
+ -DLLVM_COMPILER_CHECKED=TRUE \
204
+ -DCMAKE_AR=" $PREFIX /bin/llvm-ar" \
205
+ -DCMAKE_RANLIB=" $PREFIX /bin/llvm-ranlib" \
206
+ -DLIBCXXABI_USE_COMPILER_RT=ON \
207
+ -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
208
+ -DLIBCXXABI_ENABLE_THREADS=ON \
209
+ -DLIBCXXABI_TARGET_TRIPLE=$arch -w64-mingw32 \
210
+ -DLIBCXXABI_ENABLE_SHARED=OFF \
211
+ -DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/build-$arch -$type /include/c++/v1 \
212
+ -DLIBCXXABI_LIBDIR_SUFFIX=" " \
213
+ -DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=OFF \
214
+ -DCXX_SUPPORTS_CXX_STD=TRUE \
215
+ -DCMAKE_CXX_FLAGS=" $LIBCXXABI_VISIBILITY_FLAGS -D_LIBCPP_HAS_THREAD_API_WIN32" \
216
+ ..
217
+ $BUILDCMD ${CORES+-j$CORES }
218
+ cd ..
219
+ done
220
+ cd ..
221
+
222
+ cd libcxx
223
+ for arch in $ARCHS ; do
224
+ cd build-$arch -$type
215
225
$BUILDCMD ${CORES+-j$CORES }
216
226
$BUILDCMD install
217
227
if [ " $type " = " shared" ]; then
0 commit comments