Skip to content

Commit a4df003

Browse files
author
Tom Birch
committed
Enable cross-compiling
Allow using and OS X build of swift to build libraries and binaries for another platform, only linux-armv7 is supported in this patch. Doesn't currently support building the tools (llvm, swiftc) or the tests for linux-armv7. * Added --cross-compile-stdlib-targets to build-script * Added --cross-compile-sysroot to build-script-impl * Added --cross-compile-toolchain-bin to build-script-impl * Set -resource-dir when cross-compiling * Use BUILD_HOST_TARGET instead of HOST_TARGET, allow it to be empty when cross-compiling to just build cross target * Derive PKG_CONFIG_PATH from --cross-compile-sysroot to allow find_package to work * Skip cmark and llvm builds completely when --native-*-tools-path flags are set See instructions in cmake/modules/Toolchain-linux-arm.cmake. To build linux-armv7 on osx run: ./utils/build-script -R --cross-compile-stdlib-targets linux-armv7 -- --cross-compile-sysroot=$MY_SYSROOT --cross-compile-toolchain-bin=$MY_TOOLCHAIN_BIN
1 parent 57be766 commit a4df003

File tree

6 files changed

+182
-31
lines changed

6 files changed

+182
-31
lines changed

cmake/modules/AddSwift.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ function(_add_variant_swift_compile_flags
167167
"-sdk" "${SWIFT_SDK_${sdk}_PATH}"
168168
"-target" "${SWIFT_SDK_${sdk}_ARCH_${arch}_TRIPLE}")
169169

170+
if (CMAKE_CROSSCOMPILING)
171+
list(APPEND result "-resource-dir" "${SWIFT_LIBRARY_OUTPUT_INTDIR}/swift")
172+
endif ()
173+
170174
if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin")
171175
list(APPEND result
172176
"-F" "${SWIFT_SDK_${sdk}_PATH}/../../../Developer/Library/Frameworks")

cmake/modules/SwiftSharedCMakeConfig.cmake

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,12 @@ macro(swift_common_standalone_build_config product is_cross_compiling)
113113

114114
if(${is_cross_compiling})
115115
# Can't run llvm-config from the cross-compiled LLVM.
116-
set(LLVM_TOOLS_BINARY_DIR "" CACHE PATH "Path to llvm/bin")
117-
set(LLVM_LIBRARY_DIR "" CACHE PATH "Path to llvm/lib")
118-
set(LLVM_MAIN_INCLUDE_DIR "" CACHE PATH "Path to llvm/include")
119-
set(LLVM_BINARY_DIR "" CACHE PATH "Path to LLVM build tree")
116+
set(LLVM_TOOLS_BINARY_DIR "${SWIFT_NATIVE_LLVM_TOOLS_PATH}" CACHE PATH "Path to llvm/bin")
117+
set(LLVM_LIBRARY_DIR "${SWIFT_NATIVE_LLVM_TOOLS_PATH}/../lib" CACHE PATH "Path to llvm/lib")
118+
set(LLVM_MAIN_INCLUDE_DIR "${SWIFT_NATIVE_LLVM_TOOLS_PATH}/../include" CACHE PATH "Path to llvm/include")
119+
set(LLVM_BINARY_DIR "${SWIFT_NATIVE_LLVM_TOOLS_PATH}/../" CACHE PATH "Path to LLVM build tree")
120120
set(LLVM_MAIN_SRC_DIR "" CACHE PATH "Path to LLVM source tree")
121+
set(SWIFT_PATH_TO_CLANG_BUILD "${LLVM_BINARY_DIR}")
121122
else()
122123
# Rely on llvm-config.
123124
_swift_llvm_config_info(
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
message(STATUS "Using Linux-arm toolchain file")
2+
3+
set(CMAKE_SYSTEM_NAME Linux)
4+
set(CMAKE_SYSTEM_PROCESSOR "armv7l")
5+
set(CMAKE_LIBRARY_ARCHITECTURE "arm-linux-gnueabihf") # for Glibc/CMakeLists.txt
6+
set(CMAKE_EXECUTABLE_FORMAT "ELF")
7+
8+
include(CMakeForceCompiler)
9+
10+
# 1) Get a sysroot, e.g. by running debootstrap, or this script: https://gist.github.com/froody/de6846f3455451f81992
11+
# 2) Download https://launchpad.net/gcc-arm-embedded/4.9/4.9-2015-q3-update/+download/gcc-arm-none-eabi-4_9-2015q3-20150921-mac.tar.bz2
12+
# 3) Untar gcc, and in gcc-arm-none-eabi-4_9-2015q3/bin/
13+
# 4) Get the android NDK from http://developer.android.com/ndk/downloads/index.html
14+
# and copy ld.gold to the gcc bin dir in (3) from:
15+
# toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/arm-linux-androideabi/bin/ld.gold
16+
# 5) Run
17+
# ./utils/build-script -R --cross-compile-stdlib-targets linux-armv7 --
18+
# --cross-compile-sysroot=<sysroot path from (1)>
19+
# --cross-compile-toolchain-bin=<bin directory from (3)>
20+
21+
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
22+
set(CMAKE_AR ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}/arm-none-eabi-ar CACHE FILEPATH "Archiver") # https://cmake.org/Bug/view.php?id=13038
23+
endif ()
24+
25+
set(COMMON_C_FLAGS "-B ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}")
26+
set(COMMON_C_FLAGS "${COMMON_C_FLAGS} -B ${CMAKE_SYSROOT}/usr/lib/gcc/arm-linux-gnueabihf/4.8")
27+
set(COMMON_C_FLAGS "${COMMON_C_FLAGS} -fuse-ld=gold")
28+
29+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_C_FLAGS}" CACHE STRING "" FORCE)
30+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_C_FLAGS}" CACHE STRING "" FORCE)
31+
32+
set(CMAKE_CXX_COMPILER_VERSION 3.6)
33+
34+
link_directories(${CMAKE_SYSROOT}/usr/lib/arm-linux-gnueabihf/
35+
${CMAKE_SYSROOT}/usr/lib/gcc/arm-linux-gnueabihf/4.8/)
36+
include_directories(SYSTEM
37+
${CMAKE_SYSROOT}/usr/include/c++/4.8/
38+
${CMAKE_SYSROOT}/usr/include/arm-linux-gnueabihf/c++/4.8/
39+
${CMAKE_SYSROOT}/usr/lib/gcc/arm-linux-gnueabihf/4.8/include/)
40+
41+
# Used to find BSD and ICU among other things
42+
set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
43+
44+
set(CMAKE_C_COMPILER_TARGET arm-linux-gnueabihf)
45+
set(CMAKE_CXX_COMPILER_TARGET arm-linux-gnueabihf)
46+
CMAKE_FORCE_C_COMPILER("${CMAKE_C_COMPILER}" Clang)
47+
CMAKE_FORCE_CXX_COMPILER("${CMAKE_CXX_COMPILER}" Clang)
48+

stdlib/public/Glibc/CMakeLists.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ set(sources
66
set(output_dir "${SWIFTLIB_DIR}/glibc")
77

88
# Set correct paths to glibc headers
9-
set(GLIBC_INCLUDE_PATH "/usr/include")
9+
set(GLIBC_INCLUDE_PATH "${CMAKE_SYSROOT}/usr/include")
10+
1011
if(CMAKE_LIBRARY_ARCHITECTURE)
1112
set(GLIBC_ARCH_INCLUDE_PATH "${GLIBC_INCLUDE_PATH}/${CMAKE_LIBRARY_ARCHITECTURE}")
1213
else()
@@ -40,7 +41,14 @@ swift_install_in_component(stdlib
4041
FILES "${output_dir}/module.map"
4142
DESTINATION "lib/swift/glibc")
4243

44+
# Include directories passed to include_directories command
45+
get_directory_property(include_dirs INCLUDE_DIRECTORIES)
46+
foreach(dir ${include_dirs})
47+
set(GLIBC_EXTRA_FLAGS ${GLIBC_EXTRA_FLAGS} "-I" ${dir})
48+
endforeach()
49+
4350
add_swift_library(swiftGlibc IS_SDK_OVERLAY
4451
${sources}
4552
FILE_DEPENDS copy_glibc_module "${output_dir}"
53+
SWIFT_COMPILE_FLAGS "-I" "${GLIBC_INCLUDE_PATH}" "-I" "${GLIBC_ARCH_INCLUDE_PATH}" ${GLIBC_EXTRA_FLAGS}
4654
INSTALL_IN_COMPONENT stdlib-experimental)

utils/build-script

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,12 @@ details of the setups of other systems or automated environments.""")
302302
"target. The built LLVM and Clang will be used to compile Swift "
303303
"for the cross-compilation targets.",
304304
default=swift_build_support.targets.host_target())
305+
targets_group.add_argument(
306+
"--cross-compile-stdlib-targets",
307+
help="The cross-compliation targets. The Swift stdlib will be built for"
308+
"these targets using the host-target LLVM, Clang and Swift",
309+
metavar="TARGET",
310+
nargs='*')
305311

306312
projects_group = parser.add_argument_group(
307313
title="Options to select projects")
@@ -1037,7 +1043,33 @@ the number of parallel build jobs to use""",
10371043
'watchsimulator',
10381044
])
10391045

1040-
check_call(build_script_impl_args)
1046+
host_build_script_impl_args = []
1047+
1048+
if platform.system() != 'Linux':
1049+
host_build_script_impl_args += [
1050+
"--skip-build-linux"
1051+
]
1052+
1053+
check_call(build_script_impl_args + host_build_script_impl_args)
1054+
1055+
if args.cross_compile_stdlib_targets:
1056+
# Currently only cross-compiling the swift libraries is supported.
1057+
# Building the swift compiler would require building llvm too.
1058+
llvm_path = os.path.join(build_dir, "llvm-"+args.host_target, 'bin')
1059+
swift_path = os.path.join(build_dir, "swift-"+args.host_target, 'bin')
1060+
build_script_impl_args += [
1061+
"--native-llvm-tools-path=" + llvm_path,
1062+
"--native-clang-tools-path=" + llvm_path,
1063+
"--native-swift-tools-path=" + swift_path,
1064+
"--skip-build-cmark=1",
1065+
"--skip-build-llvm=1",
1066+
"--skip-build-osx=1", # FIXME only if host is osx
1067+
"--build-swift-tools=0"
1068+
]
1069+
1070+
for target in args.cross_compile_stdlib_targets:
1071+
check_call(build_script_impl_args +
1072+
["--cross-compile-deployment-targets=" + target])
10411073

10421074
if args.symbols_package:
10431075
print('--- Creating symbols package ---')

utils/build-script-impl

Lines changed: 83 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,9 @@ KNOWN_SETTINGS=(
181181
install-libdispatch "" "whether to install libdispatch"
182182
darwin-install-extract-symbols "" "whether to extract symbols with dsymutil during installations"
183183
host-target "" "The host target. LLVM, Clang, and Swift will be built for this target. The built LLVM and Clang will be used to compile Swift for the cross-compilation targets. **This argument is required**"
184-
cross-compile-tools-deployment-targets "" "space-separated list of targets to cross-compile host Swift tools for"
184+
cross-compile-deployment-targets "" "space-separated list of targets to cross-compile Swift for"
185+
cross-compile-sysroot "" "sysroot to use when cross-compiling"
186+
cross-compile-toolchain-bin "" "toolchain binary dir to use when cross-compiling"
185187
skip-merge-lipo-cross-compile-tools "" "set to skip running merge-lipo after installing cross-compiled host Swift tools"
186188
darwin-deployment-version-osx "10.9" "minimum deployment target version for OS X"
187189
darwin-deployment-version-ios "7.0" "minimum deployment target version for iOS"
@@ -203,6 +205,7 @@ KNOWN_SETTINGS=(
203205
build-jobs "" "The number of parallel build jobs to use"
204206
darwin-toolchain-alias "" "Swift alias for toolchain"
205207
export-compile-commands "" "set to generate JSON compilation databases for each build product"
208+
pkg-config-paths "" "Colon-separate list of paths to add to PKG_CONFIG_PATH"
206209
)
207210

208211
function toupper() {
@@ -779,22 +782,24 @@ function cmake_needs_to_specify_standard_computed_defaults() {
779782
fi
780783
}
781784

782-
# A list of deployment targets to cross-compile the Swift host tools for.
785+
# A list of deployment targets to cross-compile the Swift host tools/stdlib for.
783786
# We can't run the resulting binaries on the build machine.
784-
CROSS_TOOLS_DEPLOYMENT_TARGETS=()
787+
CROSS_COMPILE_DEPLOYMENT_TARGETS=($CROSS_COMPILE_DEPLOYMENT_TARGETS)
788+
789+
if [[ ! -z "${NATIVE_LLVM_TOOLS_PATH}" && ! -z "${NATIVE_CLANG_TOOLS_PATH}" && ! -z "${NATIVE_SWIFT_TOOLS_PATH}" ]] ; then
790+
BUILD_HOST_TARGET=""
791+
else
792+
BUILD_HOST_TARGET=${HOST_TARGET}
793+
fi
785794

786795
# Sanitize the list of cross-compilation targets.
787-
for t in ${CROSS_COMPILE_TOOLS_DEPLOYMENT_TARGETS} ; do
796+
for t in "${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]}" ; do
788797
case ${t} in
789798
iphonesimulator-i386 | iphonesimulator-x86_64 | \
790799
iphoneos-arm64 | iphoneos-armv7 | \
791800
appletvos-arm64 | appletvsimulator-x86_64 | \
792-
watchos-armv7k | watchsimulator-i386)
793-
CROSS_TOOLS_DEPLOYMENT_TARGETS=(
794-
"${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
795-
"${t}"
796-
)
797-
;;
801+
watchos-armv7k | watchsimulator-i386 | linux-armv7)
802+
;; # pass
798803
*)
799804
echo "Unknown deployment target: ${t}"
800805
exit 1
@@ -804,7 +809,7 @@ done
804809

805810
function is_cross_tools_deployment_target() {
806811
local deployment_target="$1"
807-
for t in "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}" ; do
812+
for t in "${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]}" ; do
808813
if [ "${deployment_target}" == "${t}" ] ; then
809814
echo 1
810815
fi
@@ -859,6 +864,7 @@ case "$(uname -s -m)" in
859864
"iphoneos-armv7"
860865
"appletvos-arm64"
861866
"watchos-armv7k"
867+
"linux-armv7"
862868
)
863869
;;
864870

@@ -937,7 +943,18 @@ if [ ! -d "${CLANG_SOURCE_DIR}" ] ; then
937943
ln -sf "${WORKSPACE}/clang" "${CLANG_SOURCE_DIR}"
938944
fi
939945

940-
PRODUCTS=(cmark llvm swift)
946+
PRODUCTS=()
947+
948+
if [[ ! "${SKIP_BUILD_CMARK}" ]] ; then
949+
PRODUCTS=("${PRODUCTS[@]}" cmark)
950+
fi
951+
952+
if [[ ! "${SKIP_BUILD_LLVM}" ]] ; then
953+
PRODUCTS=("${PRODUCTS[@]}" llvm)
954+
fi
955+
956+
PRODUCTS=("${PRODUCTS[@]}" swift)
957+
941958
if [[ ! "${SKIP_BUILD_LLDB}" ]] ; then
942959
PRODUCTS=("${PRODUCTS[@]}" lldb)
943960
fi
@@ -1362,6 +1379,33 @@ function set_swiftpm_bootstrap_command() {
13621379
fi
13631380
}
13641381

1382+
function get_pkg_config_path() {
1383+
eval ARG=$1
1384+
FIND_RESULT=$(find $ARG -name pkgconfig -type d -print0 | xargs -0 printf '%s:')
1385+
IFS=':'
1386+
for e in $PKG_CONFIG_PATHS; do
1387+
eval e=$e # expand ~ in path
1388+
EXTRA+="$(realpath $e):"
1389+
done
1390+
IFS=
1391+
for p in $FIND_RESULT $EXTRA; do
1392+
RESULT+="${p}"
1393+
done
1394+
echo $RESULT | sed 's/:$//'
1395+
}
1396+
1397+
function toolchain_file() {
1398+
case ${1} in
1399+
linux-armv7)
1400+
echo "${SWIFT_SOURCE_DIR}/cmake/modules/Toolchain-linux-arm.cmake"
1401+
;;
1402+
*)
1403+
echo "unknown cross target"
1404+
exit 1
1405+
;;
1406+
esac
1407+
}
1408+
13651409
mkdir -p "${BUILD_DIR}"
13661410

13671411
#
@@ -1403,7 +1447,7 @@ fi
14031447
# Configure and build each product
14041448
#
14051449
# Start with native deployment targets because the resulting tools are used during cross-compilation.
1406-
for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"; do
1450+
for deployment_target in ${BUILD_HOST_TARGET} ${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]}; do
14071451
set_deployment_target_based_options
14081452

14091453
case "${COMPILER_VENDOR}" in
@@ -1498,6 +1542,21 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
14981542
unset skip_build
14991543
build_dir=$(build_directory ${deployment_target} ${product})
15001544
build_targets=(all)
1545+
1546+
if [[ $(is_cross_tools_deployment_target ${deployment_target}) ]] ; then
1547+
# Allows find_package to find packages in the sysroot
1548+
PKG_CONFIG_PATH=$(get_pkg_config_path ${CROSS_COMPILE_SYSROOT})
1549+
export PKG_CONFIG_PATH
1550+
1551+
COMMON_CMAKE_OPTIONS=(
1552+
"${COMMON_CMAKE_OPTIONS[@]}"
1553+
-DCMAKE_TOOLCHAIN_FILE=$(toolchain_file ${deployment_target})
1554+
-DLLVM_NATIVE_BUILD="${NATIVE_LLVM_TOOLS_PATH}/../"
1555+
-DCMAKE_SYSROOT:PATH="${CROSS_COMPILE_SYSROOT}"
1556+
-DCMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN:PATH="${CROSS_COMPILE_TOOLCHAIN_BIN}"
1557+
)
1558+
fi
1559+
15011560
cmake_options=("${COMMON_CMAKE_OPTIONS[@]}")
15021561

15031562
# Add in gold linker support if requested.
@@ -1561,6 +1620,9 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
15611620
build_targets=(clean)
15621621
fi
15631622
if [ "${SKIP_BUILD_LLVM}" ] ; then
1623+
if [ -n "${BUILD_HOST_TARGET}" ] ; then
1624+
skip_build=1
1625+
fi
15641626
# We can't skip the build completely because the standalone
15651627
# build of Swift depend on these.
15661628
build_targets=(llvm-config llvm-tblgen clang-headers)
@@ -1623,10 +1685,6 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
16231685

16241686
cmake_options=(
16251687
"${cmake_options[@]}"
1626-
-DLLVM_TOOLS_BINARY_DIR:PATH=$(build_directory ${deployment_target} llvm)/bin
1627-
-DLLVM_LIBRARY_DIR:PATH=$(build_directory ${deployment_target} llvm)/lib
1628-
-DLLVM_MAIN_INCLUDE_DIR:PATH=$(build_directory ${deployment_target} llvm)/include
1629-
-DLLVM_BINARY_DIR:PATH=$(build_directory ${deployment_target} llvm)
16301688
-DLLVM_MAIN_SRC_DIR:PATH="${LLVM_SOURCE_DIR}"
16311689
)
16321690
else
@@ -1637,13 +1695,13 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
16371695
# Command-line parameters override any autodetection that we
16381696
# might have done.
16391697
if [[ "${NATIVE_LLVM_TOOLS_PATH}" ]] ; then
1640-
native_llvm_tools_path="${NATIVE_LLVM_TOOLS_PATH}"
1698+
native_llvm_tools_path=$(realpath "${NATIVE_LLVM_TOOLS_PATH}")
16411699
fi
16421700
if [[ "${NATIVE_CLANG_TOOLS_PATH}" ]] ; then
1643-
native_clang_tools_path="${NATIVE_CLANG_TOOLS_PATH}"
1701+
native_clang_tools_path=$(realpath "${NATIVE_CLANG_TOOLS_PATH}")
16441702
fi
16451703
if [[ "${NATIVE_SWIFT_TOOLS_PATH}" ]] ; then
1646-
native_swift_tools_path="${NATIVE_SWIFT_TOOLS_PATH}"
1704+
native_swift_tools_path=$(realpath "${NATIVE_SWIFT_TOOLS_PATH}")
16471705
fi
16481706

16491707
if [ "${BUILD_LLVM}" == "0" ] ; then
@@ -2211,7 +2269,7 @@ for deployment_target in "${STDLIB_DEPLOYMENT_TARGETS[@]}"; do
22112269
done
22122270
done
22132271

2214-
for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"; do
2272+
for deployment_target in ${BUILD_HOST_TARGET} ${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]}; do
22152273
set_deployment_target_based_options
22162274

22172275
for product in "${PRODUCTS[@]}"; do
@@ -2357,7 +2415,7 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
23572415
exit 1
23582416
fi
23592417

2360-
if [ "${CROSS_COMPILE_TOOLS_DEPLOYMENT_TARGETS}" ] ; then
2418+
if [ "${CROSS_COMPILE_DEPLOYMENT_TARGETS}" ] ; then
23612419
# If cross compiling tools, install into a deployment target specific subdirectory.
23622420
if [[ ! "${SKIP_MERGE_LIPO_CROSS_COMPILE_TOOLS}" ]] ; then
23632421
target_install_destdir="${BUILD_DIR}"/intermediate-install/"${deployment_target}"
@@ -2379,10 +2437,10 @@ for deployment_target in "${HOST_TARGET}" "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"
23792437

23802438
done
23812439

2382-
if [[ "${CROSS_COMPILE_TOOLS_DEPLOYMENT_TARGETS}" ]] && [[ ! "${SKIP_MERGE_LIPO_CROSS_COMPILE_TOOLS}" ]] ; then
2383-
echo "--- Merging and running lipo for ${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]} ---"
2440+
if [[ "${CROSS_COMPILE_DEPLOYMENT_TARGETS}" ]] && [[ ! "${SKIP_MERGE_LIPO_CROSS_COMPILE_TOOLS}" ]] ; then
2441+
echo "--- Merging and running lipo for ${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]} ---"
23842442
lipo_src_dirs=()
2385-
for deployment_target in "${CROSS_TOOLS_DEPLOYMENT_TARGETS[@]}"; do
2443+
for deployment_target in "${CROSS_COMPILE_DEPLOYMENT_TARGETS[@]}"; do
23862444
lipo_src_dirs=(
23872445
"${lipo_src_dirs[@]}"
23882446
"${BUILD_DIR}"/intermediate-install/"${deployment_target}"

0 commit comments

Comments
 (0)