# This yaml file is used to package binaries from Xcode.app.
# To use this:
#   1) Make sure Xcode is fully updated (via the app store or otherwise).
#   2) Move Xcode.app to the same directory as this file,
#      and rename Xcode.app to xcode_binaries. Or make a symlink:
#      $ rm -rf build/xcode_binaries && \
#        ln -s /Applications/Xcode.app build/xcode_binaries
#   3) Call `cipd create --pkg-def build/xcode_binaries.yaml \
#            -ref <xcode version num> -ref <xcode build version>`
#      a.) The version information can be found in "About Xcode",
#          or by running `xcodebuild -version`
# To deploy the newly created cipd package across the fleet, modify
# ./mac_toolchain.py to point to the new cipd hash.
#
# Note that the Chromium build looks for the mac binaries in
# build/mac_files/xcode_binaries; it won't see the build/xcode_binaries that
# you just created. In order to use the new toolchain version, you still need to
# `gclient runhooks` after updating the hash in mac_toolchain.py.
#
# The ACLs for this package are determined by the directory structure. The
# nomenclature mirrors that of the hermetic toolchain to avoid ACL duplication.
package: infra_internal/ios/xcode/xcode_binaries/mac-amd64
description: A hermetic deployment of all Xcode binaries used to build Chromium.
root: "xcode_binaries"
data:
  - dir: Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
  - dir: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/bison
  - dir: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/metal
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/air-lld
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bison
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/gm4
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/gperf
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-nm
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-objdump
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-otool
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/llvm-size
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metal
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metallib
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/mig
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/size
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/size-classic
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libcodedirectory.dylib
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libswiftDemangle.dylib
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libtapi.dylib
  - file: Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec/migcom
  - file: Contents/Developer/usr/bin/atos
  - file: Contents/Developer/usr/bin/notarytool
  - file: Contents/Resources/en.lproj/License.rtf
  - file: Contents/Resources/LicenseInfo.plist
  - dir: Contents/SharedFrameworks/CoreSymbolicationDT.framework
  - dir: Contents/SharedFrameworks/DebugSymbolsDT.framework
  - dir: Contents/SharedFrameworks/MallocStackLoggingDT.framework
  - dir: Contents/SharedFrameworks/SymbolicationDT.framework
  - file: Contents/version.plist
# llvm-size and size are run on swarming, those are symlinked to out of
# isolated tree and produce invalid symlinks if we don't use copy mode here.
install_mode: copy
