mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
To achieve this the script does a single unified CMake configuration for llvm/clang/swift and builds only the parser library target. This mechanism is fundamentally different from build-script, which builds llvm/clang in a separate build directory than swift. Even though this bypasses build-script, it does share some underlying helper utilities from the python infrastructure. This utility also provides capability to gather profile data and build the parser library with PGO optimization enabled.
65 lines
1.9 KiB
Bash
Executable File
65 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#===--- darwin-extract-symbols - Extract symbols part of build-parser-lib --===#
|
|
#
|
|
## This source file is part of the Swift.org open source project
|
|
##
|
|
## Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors
|
|
## Licensed under Apache License v2.0 with Runtime Library Exception
|
|
##
|
|
## See https://swift.org/LICENSE.txt for license information
|
|
## See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
#
|
|
#===------------------------------------------------------------------------===#
|
|
|
|
set -x
|
|
|
|
if [ -z "$INSTALL_DIR" ]
|
|
then
|
|
echo "\$INSTALL_DIR is not set"
|
|
exit 1
|
|
fi
|
|
if [ -z "$INSTALL_PREFIX" ]
|
|
then
|
|
echo "\$INSTALL_PREFIX is not set"
|
|
exit 1
|
|
fi
|
|
if [ -z "$INSTALL_SYMROOT" ]
|
|
then
|
|
echo "\$INSTALL_SYMROOT is not set"
|
|
exit 1
|
|
fi
|
|
if [ -z "$BUILD_JOBS" ]
|
|
then
|
|
echo "\$BUILD_JOBS is not set"
|
|
exit 1
|
|
fi
|
|
|
|
function xcrun_find_tool() {
|
|
xcrun --sdk macosx --toolchain default --find "$@"
|
|
}
|
|
|
|
# Copy executables and shared libraries from the INSTALL_DIR to
|
|
# INSTALL_SYMROOT and run dsymutil on them.
|
|
(cd "${INSTALL_DIR}" &&
|
|
find ./"${INSTALL_PREFIX}" -perm -0111 -type f -print | cpio --insecure -pdm "${INSTALL_SYMROOT}")
|
|
|
|
# Run dsymutil on executables and shared libraries.
|
|
#
|
|
# Exclude shell scripts.
|
|
(cd "${INSTALL_SYMROOT}" &&
|
|
find ./"${INSTALL_PREFIX}" -perm -0111 -type f -print | \
|
|
grep -v crashlog.py | \
|
|
grep -v symbolication.py | \
|
|
xargs -n 1 -P ${BUILD_JOBS} $(xcrun_find_tool dsymutil))
|
|
|
|
# Strip executables, shared libraries and static libraries in INSTALL_DIR.
|
|
find "${INSTALL_DIR}${INSTALL_PREFIX}/" \
|
|
'(' -perm -0111 -or -name "*.a" ')' -type f -print | \
|
|
xargs -n 1 -P ${BUILD_JOBS} $(xcrun_find_tool strip) -S
|
|
|
|
# Codesign dylibs after strip tool
|
|
# rdar://45388785
|
|
find "${INSTALL_DIR}${INSTALL_PREFIX}/" \
|
|
'(' -name "*.dylib" ')' -type f -print | \
|
|
xargs -n 1 -P ${BUILD_JOBS} $(xcrun_find_tool codesign) -f -s -
|