FWIW, this:
  https://gist.github.com/ddunbar/598bf66952fba0e9d8aecc54995f018e
is the script I currently use on OS X to get a working "swift-dev.xctoolchain" 
out of a built Swift. It isn't designed to work for anyone but me, but it 
should be easy to adapt.

I always run this after every build, and then use `TOOLCHAINS=swift-dev swift 
build` (etc) to use the development compiler.

My "toolchain-based build process" proposal will hopefully make this a no-op.

 - Daniel

> On Jun 2, 2016, at 3:12 AM, bhargav gurlanka via swift-build-dev 
> <swift-build-...@swift.org> wrote:
> 
> Hi all,
> 
> I'm trying to build a custom toolchain, but it is failing with error: 
> 
> --- Installing swift ---
> + env DESTDIR=// /usr/local/bin/cmake --build 
> /Users/bhargavg/Documents/workspaces/xcode/github/apple/build/bhargavg/swift-macosx-x86_64
>  -- install
> ninja: error: unknown target 'install'
> swift/utils/build-script: fatal error: command terminated with a non-zero 
> exit status 1, aborting
> 
> 
> Script to build toolchain: 
> 
> #!/bin/bash
> #
> # Faster toolchain build: skips as much as possible.
> #
> # To use this toolchain from the command line:"
> #     export TOOLCHAINS=$(whoami)
> #
> # we build to the same prefix every time (instead of building
> # to a versioned prefix) because every time the prefix changes
> # *everything* rebuilds.
> 
> set -e
> trap "exit;" SIGINT SIGTERM
> 
> SRCROOT="$HOME/Documents/workspaces/xcode/github/apple/"
> 
> ALIAS=$(whoami)
> TOOLCHAIN_NAME="swift-${ALIAS}.xctoolchain"
> TOOLCHAIN_PREFIX="$HOME/Library/Developer/Toolchains/${TOOLCHAIN_NAME}"
> 
> export TOOLCHAINS=default
> 
> if [[ $1 == "--reconfigure" ]]; then
>     RECONFIGURE="--reconfigure"
> fi
> 
> # so if anything is put in the wrong place we will *see* it
> cd "$HOME/Desktop"
> 
> "$SRCROOT/swift/utils/build-script" \
>         --release \
>         --llvm \
>         --llbuild \
>         --swiftpm \
>         --build-subdir="${ALIAS}" \
>         --assertions \
>         --no-swift-stdlib-assertions \
>         --install-prefix="${TOOLCHAIN_PREFIX}/usr" \
>         --lldb \
>         --darwin-xcrun-toolchain=mxcl \
>         -- \
>         --lldb-use-system-debugserver \
>         ${RECONFIGURE} \
>         --skip-ios \
>         --skip-tvos \
>         --skip-watchos \
>         --skip-build-linux \
>         --skip-build-freebsd \
>         --skip-build-cygwin \
>         --skip-build-ios \
>         --skip-build-ios-device \
>         --skip-build-ios-simulator \
>         --skip-build-tvos \
>         --skip-build-tvos-device \
>         --skip-build-tvos-simulator \
>         --skip-build-watchos \
>         --skip-build-watchos-device \
>         --skip-build-watchos-simulator \
>         --skip-build-xctest \
>         --skip-build-foundation \
>         --skip-build-libdispatch \
>         --skip-build-benchmarks \
>         --skip-test-cmark \
>         --skip-test-lldb \
>         --skip-test-swift \
>         --skip-test-llbuild \
>         --skip-test-swiftpm \
>         --skip-test-xctest \
>         --skip-test-foundation \
>         --skip-test-libdispatch \
>         --skip-test-linux \
>         --skip-test-freebsd \
>         --skip-test-cygwin \
>         --skip-test-osx \
>         --skip-test-ios-simulator \
>         --skip-test-ios-host \
>         --skip-test-tvos-simulator \
>         --skip-test-tvos-host \
>         --skip-test-watchos-simulator \
>         --skip-test-watchos-host \
>         --skip-test-benchmarks \
>         --skip-test-optimized \
>         --stdlib-deployment-targets=macosx-x86_64 \
>         --swift-enable-ast-verifier=0 \
>         --build-swift-examples=0 \
>         --build-swift-stdlib-unittest-extra=0 \
>         --build-swift-static-stdlib=1 \
>         --compiler-vendor=apple \
>         
> --swift-install-components="compiler;clang-builtin-headers;stdlib;sdk-overlay;license;sourcekit-xpc-service"
>  \
>         --llvm-install-components="libclang;libclang-headers" \
>         --install-swift=1 \
>         --install-llbuild=1 \
>         --install-swiftpm=1 \
>         --install-destdir="/" \
>         --install-lldb=1 \
>         --toolchain-prefix="${TOOLCHAIN_PREFIX}"
> 
> 
> # doing by hand as the only other way to trigger this
> # is by specifying --installable-package, which tars
> # all installed products and is super slow
> 
> DATE=$(date +%Y.%m.%d)
> SWIFT_VERSION=$("${TOOLCHAIN_PREFIX}/usr/bin/swift" --version | ruby -e 
> 'ARGF.read =~ /Swift version (\d+\.\d(\.\d+)?(-.*?)?) /; print "#{$1}\n"')
> 
> if [[ "$SWIFT_VERSION" == "3.0-dev" ]]; then
>     SWIFT_VERSION="3.0.0-dev"
> fi
> 
> VERSION="${SWIFT_VERSION}-${ALIAS}+${DATE}"
> 
> cat > "${TOOLCHAIN_PREFIX}/Info.plist" <<EOF
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
> "http://www.apple.com/DTDs/PropertyList-1.0.dtd 
> <http://www.apple.com/DTDs/PropertyList-1.0.dtd>">
> <plist version="1.0">
> <dict>
>       <key>Aliases</key>
>       <array>
>               <string>${ALIAS}</string>
>       </array>
>       <key>CompatibilityVersion</key>
>       <integer>2</integer>
>       <key>CFBundleIdentifier</key>
>       <string>org.swift.${SWIFT_VERSION}.${ALIAS}</string>
>       <key>DisplayName</key>
>       <string>Swift ${SWIFT_VERSION}.${ALIAS}+${DATE}</string>
>       <key>ReportProblemURL</key>
>       <string>https://bugs.swift.org/ <https://bugs.swift.org/></string>
>       <key>Version</key>
>       <string>${DATE}</string>
>     <key>OverrideEnvironment</key>
>       <dict>
>               <key>ENABLE_BITCODE</key>
>               <false/>
>               <key>SWIFT_DISABLE_REQUIRED_ARCLITE</key>
>               <true/>
>               <key>SWIFT_LINK_OBJC_RUNTIME</key>
>               <true/>
>       </dict>
> </dict>
> </plist>
> EOF
> 
> 
> # again, only way to trigger this otherwise is do a lengthy 
> --installable-package step
> 
> cp "${SRCROOT}/swift/utils/swift-stdlib-tool-substitute" 
> "${TOOLCHAIN_PREFIX}/usr/bin/swift-stdlib-tool"
> 
> 
> You can find the script at: 
> https://gist.github.com/bhargavg/e40b2e7cfe3b34ca5decdb6531068365 
> <https://gist.github.com/bhargavg/e40b2e7cfe3b34ca5decdb6531068365>
> 
> Regards,
> Bhargav Gurlanka
> 
> _______________________________________________
> swift-build-dev mailing list
> swift-build-...@swift.org
> https://lists.swift.org/mailman/listinfo/swift-build-dev

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to