Создание Swift SourceKit в Linux

#linux #swift

#linux #swift

Вопрос:

https://github.com/apple/swift/pull/3594#issuecomment-234169759

 $ utils/build-script --libdispatch 
$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"
  

Похоже, что вторая команда ничего не делает для сборки SourceKit. В каталоге сборки не создан двоичный файл. Любой совет, что делать?

 jara@jara-pc:~/swift-source/swift$ utils/build-script --libdispatch --extra-cmake-options="-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE"
  mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert
  env HOST_VARIABLE_linux_x86_64__SWIFT_BENCHMARK_TARGETS= HOST_VARIABLE_linux_x86_64__SWIFT_RUN_BENCHMARK_TARGETS= HOST_VARIABLE_linux_x86_64__SWIFT_SDKS=LINUX HOST_VARIABLE_linux_x86_64__SWIFT_STDLIB_TARGETS=swift-test-stdlib-linux-x86_64 HOST_VARIABLE_linux_x86_64__SWIFT_TEST_TARGETS= /home/jara/swift-source/swift/utils/build-script-impl --workspace /home/jara/swift-source --build-dir /home/jara/swift-source/build/Ninja-DebugAssert --install-prefix /usr --host-target linux-x86_64 --stdlib-deployment-targets linux-x86_64 --host-cc /usr/bin/clang --host-cxx /usr/bin/clang   --darwin-xcrun-toolchain default --darwin-deployment-version-osx=10.9 --darwin-deployment-version-ios=7.0 --darwin-deployment-version-tvos=9.0 --darwin-deployment-version-watchos=2.0 --cmake /usr/local/bin/cmake --cmark-build-type Debug --llvm-build-type Debug --swift-build-type Debug --swift-stdlib-build-type Debug --lldb-build-type Debug --foundation-build-type Debug --libdispatch-build-type Debug --xctest-build-type Debug --swift-enable-assertions true --swift-stdlib-enable-assertions true --swift-analyze-code-coverage false --cmake-generator Ninja --build-jobs 4 '--common-cmake-options=-G Ninja -DCMAKE_C_COMPILER:PATH=/usr/bin/clang -DCMAKE_CXX_COMPILER:PATH=/usr/bin/clang  ' --build-args=-j4 --cmark-cmake-options= '--llvm-cmake-options=-DLLVM_ENABLE_ASSERTIONS=TRUE -DLLVM_TARGETS_TO_BUILD=X86;ARM;AArch64;PowerPC;SystemZ' --swift-cmake-options= --libdispatch-cmake-options= --build-stdlib-deployment-targets all --ninja-bin=/usr/bin/ninja --skip-build-foundation --skip-build-xctest --skip-build-lldb --skip-build-llbuild --skip-build-swiftpm --skip-build-playgroundlogger --skip-build-playgroundsupport --build-swift-dynamic-stdlib --build-swift-dynamic-sdk-overlay --skip-build-ios-device --skip-build-ios-simulator --skip-build-tvos-device --skip-build-tvos-simulator --skip-build-watchos-device --skip-build-watchos-simulator --skip-build-android --skip-test-swift --skip-test-cmark --skip-test-lldb --skip-test-llbuild --skip-test-swiftpm --skip-test-xctest --skip-test-foundation --skip-test-libdispatch --skip-test-playgroundlogger --skip-test-playgroundsupport --skip-test-linux --skip-test-freebsd --skip-test-cygwin --skip-test-osx --skip-test-ios-host --skip-test-ios-simulator --skip-test-tvos-host --skip-test-tvos-simulator --skip-test-watchos-host --skip-test-watchos-simulator --skip-test-android-host --skip-test-benchmarks --skip-test-optimized --android-deploy-device-path /data/local/tmp --extra-cmake-options=-DSWIFT_BUILD_SOURCEKIT:BOOL=TRUE --llvm-lit-args=-sv
Building the standard library for: swift-test-stdlib-linux-x86_64
cmark: using gold linker
  rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64/module-cache
  mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64/module-cache
  /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/cmark-linux-x86_64 -- -j4 all
ninja: no work to do.
llvm: using gold linker
  rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/module-cache
  mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/module-cache
symlinking the system headers (/usr/include/c  ) into the local clang build directory (/home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/include).
  ln -s -f /usr/include/c   /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64/include
  /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/llvm-linux-x86_64 -- -j4 all
ninja: no work to do.
swift: using gold linker
  rm -rf /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64/module-cache
  mkdir -p /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64/module-cache
  /usr/local/bin/cmake --build /home/jara/swift-source/build/Ninja-DebugAssert/swift-linux-x86_64 -- -j4 all swift-test-stdlib-linux-x86_64
ninja: no work to do.
libdispatch: using gold linker
Skipping reconfiguration of libdispatch
  pushd /home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64
~/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64 ~/swift-source/swift
  make
Making all in dispatch
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/dispatch'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/dispatch'
Making all in libpwq
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libpwq'
Making all in libkqueue
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/libkqueue'
Making all in man
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/man'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/man'
Making all in os
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/os'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/os'
Making all in private
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/private'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/private'
Making all in src
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make  all-am
make[2]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make[2]: Nothing to be done for `all-am'.
make[2]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/src'
Making all in tests
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests'
make[1]: Entering directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64'
make[1]: Nothing to be done for `all-am'.
make[1]: Leaving directory `/home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64'
  popd
~/swift-source/swift
  pushd /home/jara/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests
~/swift-source/build/Ninja-DebugAssert/libdispatch-linux-x86_64/tests ~/swift-source/swift
  make build-tests
make: Nothing to be done for `build-tests'.
  popd
~/swift-source/swift
  

Ответ №1:

Я сохранил среду для создания SourceKit в Linux со времен swift-3.0-PREVIEW-3. https://github.com/norio-nomura/docker-sourcekit-builder /

Комментарии:

1. Есть ли у вас обновления в вашем docker sourcekit builder для стабильной версии Swift 3.0?

2. Я загрузил в релизы: github.com/norio-nomura/docker-sourcekit-builder/releases также на docker hub: hub.docker.com/r/norionomura/sourcekit/tags