[swift-users] Bootstrapping ninja and building from source
Dmitri Gribenko
gribozavr at gmail.com
Fri Dec 4 13:39:56 CST 2015
On Fri, Dec 4, 2015 at 11:22 AM, Lane Schwartz <dowobeha at gmail.com> wrote:
> Hi,
>
> First of all, congratulations on the open source release! I'm very excited!
>
> Second, I'm running into trouble building from source, particularly in
> regards to getting ninja bootstrapped. I'm on Scientific Linux.
>
Which version are you running? It is only feasible to try SL7+ because of
LLVM and Clang requirements.
> I first used yum to install packages for llvm, llvm-devel, clang, and
> cmake.
>
> I then did the following, following the README.md in the swift git repo:
>
> git clone git at github.com:apple/swift.git swift
> git clone git at github.com:apple/swift-llvm.git llvm
> git clone git at github.com:apple/swift-clang.git clang
> git clone git at github.com:apple/swift-lldb.git lldb
> git clone git at github.com:apple/swift-cmark.git cmark
> git clone git at github.com:apple/swift-llbuild.git llbuild
> git clone git at github.com:apple/swift-package-manager.git swiftpm
> git clone git at github.com:apple/swift-corelibs-xctest.git
> git clone git at github.com:apple/swift-corelibs-foundation.git
>
>
> The README.md also states:
>
> Ninja is the current recommended build system for building Swift and is
>> the default configuration generated by CMake. If you're on OS X or don't
>> install it as part of your Linux distribution, clone it next to the other
>> projects and it will be bootstrapped automatically
>
>
> My Linux distro doesn't package ninja, so I also did this:
>
> git clone git at github.com:martine/ninja.git
>
> I then attempted to build swift:
>
> $ ./swift/utils/build-script
>
Yes, this should work.
>
> Which resulted in errors, and as far as I can tell did not attempt to
> build the ninja distro that I downloaded into the ninja directory in my
> current working directory:
>
> which: no ninja in
>> (/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lanes/.local/bin:/home/lanes/bin)
>> Building the standard library for: swift-stdlib-linux-x86_64
>> Running Swift tests for: check-swift-linux-x86_64
>> + rm -rf /home/lanes/swift/build/Ninja-DebugAssert/ninja-build
>> + cp -r /home/lanes/swift/ninja
>> /home/lanes/swift/build/Ninja-DebugAssert/ninja-build
>> ++ uname -s
>> + [[ Linux == \D\a\r\w\i\n ]]
>> + cd /home/lanes/swift/build/Ninja-DebugAssert/ninja-build
>> + python ./configure.py --bootstrap
>> bootstrapping ninja...
>> warning: A compatible version of re2c (>= 0.11.3) was not found; changes
>> to src/*.in.cc will not affect your build.
>> wrote build.ninja.
>> bootstrap complete. rebuilding...
>> [24/24] LINK ninja
>>
>
So ninja built successfully.
> cmark: using standard linker
>> + cd /home/lanes/swift/build/Ninja-DebugAssert/cmark-linux-x86_64
>> + /usr/bin/cmake -G Ninja -DCMAKE_C_COMPILER:PATH=clang
>> -DCMAKE_CXX_COMPILER:PATH=clang++ -DCMAKE_BUILD_TYPE:STRING=Debug
>> /home/lanes/swift/cmark
>>
>
I just verified, the script bootstraps ninja for me, and cmake finds it.
Could you apply this patch and see if the PATH was set correctly?
diff --git a/utils/build-script-impl b/utils/build-script-impl
index b2d2954..60ab51d 100755
--- a/utils/build-script-impl
+++ b/utils/build-script-impl
@@ -1312,6 +1312,7 @@ if [[ "${BUILD_NINJA}" ]] ; then
fi
fi
export PATH="${build_dir}:${PATH}"
+ which ninja
fi
#
@@ -1805,6 +1806,7 @@ for deployment_target in
"${NATIVE_TOOLS_DEPLOYMENT_TARGETS[@]}" "${CROSS_TOOLS_
( ! -z "${generator_output_path}" && ! -f
"${generator_output_path}" ) ]] ; then
mkdir -p "${build_dir}"
set -x
+ which ninja
(cd "${build_dir}" && "$CMAKE" "${cmake_options[@]}"
${USER_CONFIG_ARGS})
{ set +x; } 2>/dev/null
fi
Dmitri
--
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20151204/56310eef/attachment.html>
More information about the swift-users
mailing list