[swift-users] swift redistributable without Xcode

Tim Prepscius timprepscius at gmail.com
Wed May 11 21:55:48 CDT 2016


Also,

So I build the thing, and I move over the swift directory to a
computer without Xcode.

I run bin/swift
and get:

swift-macosx-x86_64 tim$ bin/swift
***  You are running Swift's integrated REPL,  ***
***  intended for testing purposes only.       ***
***  The full REPL is built as part of LLDB.   ***
***  Type ':help' for assistance.              ***
(swift) import Foundation
<unknown>:0: error: cannot load underlying module for 'CoreGraphics'
<unknown>:0: note: did you forget to set an SDK using -sdk or SDKROOT?
<unknown>:0: note: use "xcrun -sdk macosx swiftc" to select the
default OS X SDK installed with Xcode


I then guess the SDK would be:
./stdlib/public/SDK

so:
swift-macosx-x86_64 tim$
SDKROOT=/Users/tim/temp/swift-macosx-x86_64/stdlib/public/SDK
bin/swift
***  You are running Swift's integrated REPL,  ***
***  intended for testing purposes only.       ***
***  The full REPL is built as part of LLDB.   ***
***  Type ':help' for assistance.              ***
(swift) import Foundation
<unknown>:0: error: cannot load underlying module for 'CoreGraphics'




Any ideas here?
Is there any known build where I can build swift, copy the build to
another OS X computer and run it?

Thanks,

-tim

On 5/11/16, Tim Prepscius <timprepscius at gmail.com> wrote:
> Ok,
>
> so when I build finally it:
> du -h -d 1
> 3.7M	./cmark-macosx-x86_64
>  81M	./llbuild-macosx-x86_64
> 5.6G	./lldb-macosx-x86_64
> 7.9G	./llvm-macosx-x86_64
>  18M	./ninja-build
> 8.4G	./swift-macosx-x86_64
>  47M	./swiftpm-macosx-x86_64
>  22G	.
>
>
> 22 gigs is a bit much?
> Even the 8.4gigs for just the swift directory is a bit much.
>
> Am I running the wrong preset somehow?
> Should I be running a certain preset of the build-bot?
>
> -tim
>
>
> On 5/9/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>> Thank you,
>>
>> Trying.
>>
>> utils/build-toolchain local.swift tries to use ninja which fails
>> so I go to the swift and see "git clone
>> git at github.com:ninja-build/ninja.git && cd ninja" ...
>> which fails
>>
>> so I do:
>> git clone https://github.com/ninja-build/ninja.git
>>
>> and then I do git checkout release
>> like it says to
>>
>> but that creates a branch release
>> I'm guessing git checkout $RELEASE
>> where RELEASE=v1.7.1
>>
>>
>> my updated build swift script now looks like this:
>>
>>> cat build-apple-swift.sh
>> #RELEASE=swift-2.2.1-RELEASE
>> RELEASE=swift-DEVELOPMENT-SNAPSHOT-2016-05-03-a
>>
>> #sudo port install cmake ninja
>>
>> mkdir apple-swift
>> cd apple-swift
>>
>> NINJA_RELEASE=v1.7.1
>> git clone https://github.com/ninja-build/ninja.git
>> (cd ninja && git checkout tags/$NINJA_RELEASE && ./configure.py
>> --bootstrap)
>>
>> git clone https://github.com/apple/swift.git
>> (cd swift && utils/update-checkout --clone)
>>
>> for D in *; do
>>   if [ -d "${D}" ]; then
>>     echo "checkout $RELEASE of ${D}"
>>     (cd ${D} && git checkout tags/$RELEASE)
>>   fi
>> done
>>
>> #set MACOSX_DEPLOYMENT_TARGET=10.9
>>
>> cd swift
>> #utils/build-script -R
>> utils/build-toolchain local.swift
>>
>> ----
>>
>> I will find out if it works in an hour or so I guess
>>
>> -tim
>>
>> On 5/9/16, Jordan Rose <jordan_rose at apple.com> wrote:
>>> Hi, Tim. The build directory contains symlinks and such and therefore
>>> isn’t
>>> really the best vehicle for distribution. There’s a build-toolchain
>>> script
>>> inside swift/utils/ that should give you a self-contained directory, and
>>> more generally there’s a notion of “install components” that can be used
>>> to
>>> build a self-contained directory tree as an output of build-script.
>>>
>>> Hope that helps,
>>> Jordan
>>>
>>>
>>>> On May 8, 2016, at 09:33, Tim Prepscius via swift-users
>>>> <swift-users at swift.org> wrote:
>>>>
>>>> Is there any way I can get "import Foundation" working on a machine
>>>> other than the machine I compiled with?
>>>>
>>>> I notice that those "float.h" headers are within the llvm build,
>>>> however when I try to do -I of that directory it fails. (I tried as an
>>>> include as a framework as an include passed to the compiler)..
>>>>
>>>> -tim
>>>>
>>>> On 5/7/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>> Ok, so building is working
>>>>> with the following script:
>>>>>
>>>>> more build-swift-script.sh
>>>>> RELEASE=swift-2.2.1-RELEASE
>>>>>
>>>>> sudo port install cmake ninja
>>>>>
>>>>> mkdir apple-swift
>>>>> cd apple-swift
>>>>>
>>>>> git clone https://github.com/apple/swift.git
>>>>> (cd swift && utils/update-checkout --clone)
>>>>>
>>>>> for D in *; do
>>>>>  if [ -d "${D}" ]; then
>>>>>    echo "checkout $RELEASE of ${D}"
>>>>>    (cd ${D} && git checkout tags/$RELEASE)
>>>>>  fi
>>>>> done
>>>>>
>>>>> cd swift
>>>>> utils/build-script -R
>>>>>
>>>>> -----------------------
>>>>>
>>>>> however, running does not work.
>>>>> I move the entire build directory to another computer,
>>>>>
>>>>> I go into:
>>>>> build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin
>>>>>
>>>>> And run:
>>>>> ./swift
>>>>> ***  You are running Swift's integrated REPL,  ***
>>>>> ***  intended for testing purposes only.       ***
>>>>> ***  The full REPL is built as part of LLDB.   ***
>>>>> ***  Type ':help' for assistance.              ***
>>>>> (swift) import Foundation
>>>>> /usr/include/module.map:36:14: error: header 'float.h' not found
>>>>>      header "float.h" // note: supplied by compiler
>>>>>             ^
>>>>> /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:11:10:
>>>>> note: submodule of top-level module 'Darwin' implicitly imported here
>>>>> #include <sys/types.h>
>>>>>         ^
>>>>> <module-includes>:1:9: note: in file included from
>>>>> <module-includes>:1:
>>>>> #import "Headers/CoreFoundation.h"
>>>>>        ^
>>>>> /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:12:10:
>>>>> error: 'stdarg.h' file not found
>>>>> #include <stdarg.h>
>>>>>         ^
>>>>> <unknown>:0: error: could not build Objective-C module
>>>>> 'CoreFoundation'
>>>>>
>>>>> ---------------
>>>>>
>>>>> Any hints?
>>>>>
>>>>> -tim
>>>>>
>>>>> On 5/6/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>>> This might be a bug in your tagging system:
>>>>>>
>>>>>> compiler-rt
>>>>>> llbuild
>>>>>> swift-corelibs-foundation
>>>>>> swift-corelibs-libdispatch
>>>>>> swift-corelibs-xctest
>>>>>> swiftpm
>>>>>>
>>>>>> are missing the tag
>>>>>> error: pathspec 'tags/swift-2.2.1-RELEASE' did not match any file(s)
>>>>>> known to git.
>>>>>>
>>>>>> although they do have tags such as:
>>>>>> swiftpm tprepscius$ git tag -l
>>>>>> 0.1.0
>>>>>> 0.2.0
>>>>>> 0.2.1
>>>>>> 0.2.2
>>>>>> swift-2.2-SNAPSHOT-2015-12-01-a
>>>>>> swift-2.2-SNAPSHOT-2015-12-01-b
>>>>>> swift-2.2-SNAPSHOT-2015-12-10-a
>>>>>> swift-2.2-SNAPSHOT-2015-12-18-a
>>>>>> swift-2.2-SNAPSHOT-2015-12-22-a
>>>>>> swift-2.2-SNAPSHOT-2015-12-31-a
>>>>>> swift-2.2-SNAPSHOT-2016-01-06-a
>>>>>> swift-2.2-SNAPSHOT-2016-01-11-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-01-25-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-02-03-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-02-08
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-02-08-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-03-01-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-03-16-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-03-24-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-04-12-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-04-25-a
>>>>>> swift-DEVELOPMENT-SNAPSHOT-2016-05-03-a
>>>>>>
>>>>>> -tim
>>>>>>
>>>>>>
>>>>>> On 5/6/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>>>> So far this seems to be working:
>>>>>>>
>>>>>>> build-swift-script.sh
>>>>>>> RELEASE=swift-2.2.1-RELEASE
>>>>>>>
>>>>>>> mkdir apple-swift
>>>>>>> cd apple-swift
>>>>>>> git clone https://github.com/apple/swift.git
>>>>>>> cd swift
>>>>>>> utils/update-checkout --clone
>>>>>>>
>>>>>>> for D in *; do
>>>>>>>  if [ -d "${D}" ]; then
>>>>>>>    echo "checkout $RELEASE of ${D}"
>>>>>>>    (cd ${D} && git checkout tags/$RELEASE)
>>>>>>>  fi
>>>>>>> done
>>>>>>>
>>>>>>> cd ../swift
>>>>>>> utils/build-script -R
>>>>>>>
>>>>>>> ------
>>>>>>>
>>>>>>> will see if it completes a build
>>>>>>>
>>>>>>> -tim
>>>>>>>
>>>>>>> On 5/6/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>>>>> Ok download says it does not work
>>>>>>>>
>>>>>>>> silver:swift tprepscius$ utils/update-checkout --clone
>>>>>>>> --- Cloning 'swift' ---
>>>>>>>> fatal: destination path 'swift' already exists and is not an empty
>>>>>>>> directory.
>>>>>>>> utils/update-checkout: command terminated with a non-zero exit
>>>>>>>> status
>>>>>>>> 128, aborting
>>>>>>>> silver:swift tprepscius$ utils/update-checkout
>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/llvm' ---
>>>>>>>> Current branch stable is up to date.
>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/clang' ---
>>>>>>>> Current branch stable is up to date.
>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/cmark' ---
>>>>>>>> Current branch master is up to date.
>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/lldb' ---
>>>>>>>> Current branch master is up to date.
>>>>>>>> --- Updating
>>>>>>>> '/Users/tprepscius/Documents/Projects/swift-integration-tests'
>>>>>>>> ---
>>>>>>>> Current branch master is up to date.
>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/swift' ---
>>>>>>>> fatal: Not a git repository (or any of the parent directories):
>>>>>>>> .git
>>>>>>>> utils/update-checkout: command terminated with a non-zero exit
>>>>>>>> status
>>>>>>>> 128, aborting
>>>>>>>>
>>>>>>>> however I think, that it might build anyways.  will check.
>>>>>>>>
>>>>>>>>
>>>>>>>> I wonder if there is a command that I should be using instead of
>>>>>>>> utils/update-checkout
>>>>>>>>
>>>>>>>>
>>>>>>>> Btw, I'm not writing this to be annoying.  I'm writing it so
>>>>>>>> someone
>>>>>>>> googling in the future can find the path I take to get things
>>>>>>>> building.
>>>>>>>> (I googled a *lot* trying to find Swift without Xcode on OS X)
>>>>>>>>
>>>>>>>> -tim
>>>>>>>>
>>>>>>>> On 5/6/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>>>>>> Hmm actually that doesn't work at all:
>>>>>>>>>
>>>>>>>>> --- Updating '/Users/tprepscius/Documents/Projects/swift' ---
>>>>>>>>> First, rewinding head to replay your work on top of it...
>>>>>>>>> Applying: [Build system] Add presets for Swift inside the LLDB
>>>>>>>>> tree.
>>>>>>>>> Using index info to reconstruct a base tree...
>>>>>>>>> M	utils/build-presets.ini
>>>>>>>>> Falling back to patching base and 3-way merge...
>>>>>>>>> Auto-merging utils/build-presets.ini
>>>>>>>>> CONFLICT (content): Merge conflict in utils/build-presets.ini
>>>>>>>>> Failed to merge in the changes.
>>>>>>>>> Patch failed at 0001 [Build system] Add presets for Swift inside
>>>>>>>>> the
>>>>>>>>> LLDB
>>>>>>>>> tree.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I will try using the download instead of the clone of swift
>>>>>>>>>
>>>>>>>>> On 5/6/16, Tim Prepscius <timprepscius at gmail.com> wrote:
>>>>>>>>>> Cool.
>>>>>>>>>>
>>>>>>>>>> Working on this now.
>>>>>>>>>>
>>>>>>>>>> Out of curiosity:
>>>>>>>>>> Let's say I clone and checkout the 2.2.1 release tag
>>>>>>>>>> and then run the update-checkout util
>>>>>>>>>>
>>>>>>>>>> git clone https://github.com/apple/swift.git
>>>>>>>>>> cd swift
>>>>>>>>>> git checkout tags/swift-2.2.1-RELEASE
>>>>>>>>>> ./utils/update-checkout --clone
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Will this update-checkout command clone the llvm & clang & etc
>>>>>>>>>> and then move to the correct tag for 2.2.1?  (if there even is
>>>>>>>>>> one)
>>>>>>>>>> or will it use HEAD all of the time?
>>>>>>>>>>
>>>>>>>>>> -tim
>>>>>>>>>>
>>>>>>>>>> On 5/6/16, Joe Groff <jgroff at apple.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> On May 6, 2016, at 1:14 PM, Tim Prepscius via swift-users
>>>>>>>>>>>> <swift-users at swift.org> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Greetings,
>>>>>>>>>>>>
>>>>>>>>>>>> Is it possible to build swift using Xcode, and then distribute
>>>>>>>>>>>> swift
>>>>>>>>>>>> without Xcode?
>>>>>>>>>>>> Or, does there already is exist some link to swift on OS X
>>>>>>>>>>>> which
>>>>>>>>>>>> is
>>>>>>>>>>>> not contained in Xcode?
>>>>>>>>>>>>
>>>>>>>>>>>> I need a swift compiler/executable that will run on all
>>>>>>>>>>>> versions
>>>>>>>>>>>> of
>>>>>>>>>>>> MacOSX, not just the latest.
>>>>>>>>>>>
>>>>>>>>>>> A Swift app built with Xcode is self-contained and can be
>>>>>>>>>>> distributed
>>>>>>>>>>> independent of Xcode. You can target back to OS X 10.9.
>>>>>>>>>>>
>>>>>>>>>>> -Joe
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>> _______________________________________________
>>>> swift-users mailing list
>>>> swift-users at swift.org
>>>> https://lists.swift.org/mailman/listinfo/swift-users
>>>
>>>
>>
>


More information about the swift-users mailing list