Hi Eric, > Do you mind elaborating on how you got it built with MSVC?
Sure. I succeeded to build LLVM, clang and Swift compiler with the tag of swift-4.0.2-RELEASE. LLVM and clang seem to work okay and Swift compiler can compile swift sources but the generated exectables crash. Here's my procedure. This is based on https://github.com/apple/swift/blob/master/docs/Windows.md. # Prerequisite * Visaul Stduio 2017 * CMake * ninja * Python 2.7 (not Python 3) * Git for Windows Append Cmake, ninja, Python 2.7 and git to your PATH. I assume your working direcotry is C:\swift. # ICU Download http://download.icu-project.org/files/icu4c/60.2/icu4c-60_2-src.zip and extract to C:\swift\icu. Open C:\swift\icu\source\allinone.sln with Visual Studio. This file is for Visaul Stduio 2015, so we need convert the project files to use Visual Studio 2017's toolchian. Right click 'allinone' solution in Solution Explorer and select 'Re-target the solution'. (I'm not using the English version of Visual Stduio, so the actual representation may differ.) Then change the configuration to Release, x64 and build it. # Checkout sources Open x64 Native Tools Command Prompt of Visual Studio 2017, checkout the repositories and apply the attached patches with this mail. VsDevCmd -arch=amd64 set swift_source_dir=c:\swift cd \ mkdir swift cd swift git clone https://github.com/apple/swift-cmark.git mv swift-cmark cmark git checkout swift-4.0.2-RELEASE cd .. git clone https://github.com/apple/swift.git cd swift git checkout swift-4.0.2-RELEASE patch -p1 < swift.patch cd .. git clone https://github.com/apple/swift-clang.git move swift-clang clang cd clang git checkout swift-4.0.2-RELEASE patch -p1 < clang.patch cd .. git clone https://github.com/apple/swift-compiler-rt.git move swift-compiler-rt compiler-rt cd compiler-rt git checkout swift-4.0.2-RELEASE patch -p1 < compiler-rt.patch cd .. git clone https://github.com/apple/swift-llvm.git move swift-llvm llvm cd llvm git checkout swift-4.0.2-RELEASE patch -p1 < llvm.patch cd .. mklink /J "%swift_source_dir%/llvm/tools/clang" "%swift_source_dir%/clang" mklink /J "%swift_source_dir%/llvm/tools/compiler-rt" "%swift_source_dir%/compiler-rt" # Build cmark mkdir "%swift_source_dir%/build/Ninja-RelWithDebInfo/cmark-windows-amd64" pushd "%swift_source_dir%/build/Ninja-RelWithDebInfo/cmark-windows-amd64" cmake -G "Ninja" -DCMAKE_BUILD_TYPE=RelWithDebInfo "%swift_source_dir%/cmark" popd cmake --build "%swift_source_dir%/build/Ninja-RelWithDebInfo/cmark-windows-amd64/" -- -v # Build LLVM/clang/compiler-rt mkdir "%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64" pushd "%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64" cmake -G "Ninja"^ -DCMAKE_BUILD_TYPE=RelWithDebInfo^ -DLLVM_ENABLE_ASSERTIONS=TRUE^ -DLLVM_TOOL_COMPILER_RT_BUILD=TRUE^ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=TRUE^ -DCMAKE_C_FLAGS="/bigobj /DCRT_HAS_128BIT"^ -DCMAKE_CXX_FLAGS="/bigobj /DCRT_HAS_128BIT" ^ "%swift_source_dir%/llvm" popd cmake --build "%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64" -- -v # Build swift xcopy /s /i "%VCToolsInstallDir%\include" "%swift_source_dir%\build\Ninja-RelWithDebInfo\modules\visualc" copy "%swift_source_dir%\swift\stdlib\public\Platform\visualc.modulemap" "%swift_source_dir%\build\Ninja-RelWithDebInfo\modules\visualc\module.modulemap" xcopy /s /i "%UniversalCRTSdkDir%\Include\%UCRTVersion%\ucrt" "%swift_source_dir%\build\Ninja-RelWithDebInfo\modules\ucrt" copy "%swift_source_dir%\swift\stdlib\public\Platform\ucrt.modulemap" "%swift_source_dir%\build\Ninja-RelWithDebInfo\modules\ucrt\module.modulemap" mkdir "%swift_source_dir%/build/Ninja-RelWithDebInfo/swift-windows-amd64" pushd "%swift_source_dir%/build/Ninja-RelWithDebInfo/swift-windows-amd64" cmake -G "Ninja"^ -DCMAKE_BUILD_TYPE=RelWithDebInfo^ -DCMAKE_C_COMPILER="%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64/bin/clang-cl.exe"^ -DCMAKE_C_FLAGS="-fms-compatibility-version=19.00 /Z7"^ -DCMAKE_CXX_COMPILER="%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64/bin/clang-cl.exe"^ -DCMAKE_CXX_FLAGS="-fms-compatibility-version=19.00 /Z7"^ -DSWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER=FALSE^ -DSWIFT_INCLUDE_DOCS=FALSE^ -DSWIFT_INCLUDE_TESTS=FALSE^ -DSWIFT_PATH_TO_CMARK_SOURCE="%swift_source_dir%/cmark"^ -DSWIFT_PATH_TO_CMARK_BUILD="%swift_source_dir%/build/Ninja-RelWithDebInfo/cmark-windows-amd64"^ -DSWIFT_CMARK_LIBRARY_DIR="%swift_source_dir%/build/Ninja-RelWithDebInfo/cmark-windows-amd64/src"^ -DSWIFT_PATH_TO_LLVM_SOURCE="%swift_source_dir%/llvm"^ -DSWIFT_PATH_TO_LLVM_BUILD="%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64"^ -DSWIFT_PATH_TO_CLANG_SOURCE="%swift_source_dir%/llvm/tools/clang"^ -DSWIFT_PATH_TO_CLANG_BUILD="%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64"^ -DSWIFT_RUNTIME_SWIFT_LINK_FLAGS="%swift_source_dir%/build/Ninja-RelWithDebInfo/llvm-windows-amd64/lib/clang/4.0.0/lib/windows/clang_rt.builtins-x86_64.lib"^ -DSWIFT_EXPERIMENTAL_EXTRA_REGEXP_FLAGS="(MSVCRT|SwiftPrivateLibcExtras);-I%swift_source_dir%/build/Ninja-RelWithDebInfo/modules/visualc;(MSVCRT|SwiftPrivateLibcExtras);-I%swift_source_dir%/build/Ninja-RelWithDebInfo/modules/ucrt"^ -DICU_UC_LIB_NAME="icuuc"^ -DICU_UC_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^ -DICU_UC_INCLUDE_DIRS="%swift_source_dir%/icu/include"^ -DICU_I18N_LIB_NAME="icuin"^ -DICU_I18N_LIBRARY_DIRS="%swift_source_dir%/icu/lib64"^ -DICU_I18N_INCLUDE_DIRS="%swift_source_dir%/icu/include"^ "%swift_source_dir%/swift" popd cmake --build "%swift_source_dir%/build/Ninja-RelWithDebInfo/swift-windows-amd64" -- -v I hope your success! Kazuki 2017-12-18 10:18 GMT+09:00 Eric Wing <ewmail...@gmail.com>: > On 12/14/17, Kazuki Ohara via swift-dev <swift-dev@swift.org> wrote: > > Hi, > > > > I'm interested in running Swift on Windows. > > > > I found the document to build the Swift compiler for Windows ( > > https://github.com/apple/swift/blob/master/docs/Windows.md) and tried > it. > > I managed to build it with MSVC, but the resulting compiler could not > > generate executables run properly. > > (The executables seem to crash during initializing Swift's runtime > > systems.) > > > > Are there someone who can build the compiler works properly on Windows > with > > master branch or at least 4.x branches? > > I found https://github.com/tinysun212/swift-windows, but this seems to > be > > on 3.x branch. > > > > Thank you, > > Kazuki Ohara > > > > Do you mind elaborating on how you got it built with MSVC? I posted > like a month ago to the Swift list that I was unable to even get past > building the LLVM stage due to compile errors. > > Thanks, > Eric >
llvm.patch
Description: Binary data
swift.patch
Description: Binary data
clang.patch
Description: Binary data
compiler-rt.patch
Description: Binary data
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev