From 22026d4d22c0100e27137eb88b2623f7bbdfe0f8 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 09:01:04 +0900 Subject: [PATCH 01/23] debug --- cmake/modules/AddSwift.cmake | 1 + cmake/modules/FindICU.cmake | 8 +++++--- lib/Driver/CMakeLists.txt | 1 + utils/swift_build_support/swift_build_support/targets.py | 4 ---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index c484988750bcb..64587d0fec8b7 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -328,6 +328,7 @@ function(_add_variant_c_compile_flags) list(APPEND result -isystem;${ICU_UC_INCLUDE_DIR}) endif() endif() + message("[katei] SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE=${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}") set(ICU_I18N_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_I18N_INCLUDE}) if(NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "" AND diff --git a/cmake/modules/FindICU.cmake b/cmake/modules/FindICU.cmake index 1b5c53a22b5b1..56342b75cad8d 100644 --- a/cmake/modules/FindICU.cmake +++ b/cmake/modules/FindICU.cmake @@ -13,18 +13,20 @@ foreach(MODULE ${ICU_FIND_COMPONENTS}) pkg_check_modules(PC_ICU_${MODULE} QUIET icu-${module}) if(NOT PKG_CONFIG_FOUND) + message("[katei] not PKG_CONFIG_FOUND") # PkgConfig doesn't exist on this system, so we manually provide hints via CMake. set(PC_ICU_${MODULE}_INCLUDE_DIRS "${ICU_${MODULE}_INCLUDE_DIRS}") set(PC_ICU_${MODULE}_LIBRARY_DIRS "${ICU_${MODULE}_LIBRARY_DIRS}") endif() + message("[katei] PC_ICU_${MODULE}_INCLUDE_DIRS=${PC_ICU_${MODULE}_INCLUDE_DIRS}") find_path(ICU_${MODULE}_INCLUDE_DIRS unicode HINTS ${PC_ICU_${MODULE}_INCLUDE_DIRS}) find_library(ICU_${MODULE}_LIBRARIES NAMES icu${module} ${ICU_${MODULE}_LIB_NAME} HINTS ${PC_ICU_${MODULE}_LIBRARY_DIRS}) endforeach() -foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU) +foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU;WASM) foreach(MODULE ${ICU_FIND_COMPONENTS}) string(TOUPPER "${MODULE}" MODULE) if("${SWIFT_${sdk}_${SWIFT_HOST_VARIANT_ARCH}_ICU_${MODULE}_INCLUDE}" STREQUAL "") @@ -36,5 +38,5 @@ foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU) endforeach() endforeach() -find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED}) -mark_as_advanced(${ICU_REQUIRED}) +#find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED}) +#mark_as_advanced(${ICU_REQUIRED}) diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt index fe06fa38591c7..5d0cdf717350d 100644 --- a/lib/Driver/CMakeLists.txt +++ b/lib/Driver/CMakeLists.txt @@ -31,6 +31,7 @@ target_link_libraries(swiftDriver PRIVATE if(SWIFT_BUILD_STATIC_STDLIB) set(static_stdlib_lnk_file_list) foreach(sdk ${SWIFT_CONFIGURED_SDKS}) + message("[katei] SWIFT_SDK_${sdk}_OBJECT_FORMAT=${SWIFT_SDK_${sdk}_OBJECT_FORMAT}") if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF") string(TOLOWER "${sdk}" lowercase_sdk) if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB) diff --git a/utils/swift_build_support/swift_build_support/targets.py b/utils/swift_build_support/swift_build_support/targets.py index 130e1a5f6c7bc..d142754ebe1bb 100644 --- a/utils/swift_build_support/swift_build_support/targets.py +++ b/utils/swift_build_support/swift_build_support/targets.py @@ -228,10 +228,6 @@ def host_target(): if machine == 'x86_64': return StdlibDeploymentTarget.Haiku.x86_64 - elif system == 'Wasm': - if machine == 'wasm32': - return StdlibDeploymentTarget.Wasm.wasm32 - raise NotImplementedError('System "%s" with architecture "%s" is not ' 'supported' % (system, machine)) From 32116e6be8339aaddff69c8126133a48005828f3 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 15:50:50 +0900 Subject: [PATCH 02/23] Build maybe successfull --- CMakeLists.txt | 7 ++++++- cmake/modules/AddSwift.cmake | 5 ++++- cmake/modules/FindICU.cmake | 7 +++---- cmake/modules/SwiftUtils.cmake | 10 +++++----- fakeld | 2 +- lib/Driver/CMakeLists.txt | 3 +-- stdlib/CMakeLists.txt | 4 ++++ stdlib/cmake/modules/AddSwiftStdlib.cmake | 1 + 8 files changed, 25 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4538e4675d457..860884d931bef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,7 +30,7 @@ include(SwiftUtils) include(CheckSymbolExists) # WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld -set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") +# set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") # # User-configurable options that control the inclusion and default build @@ -587,6 +587,7 @@ include(SwiftCheckCXXNativeRegex) check_cxx_native_regex(SWIFT_HAVE_WORKING_STD_REGEX) # If SWIFT_HOST_VARIANT_SDK not given, try to detect from the CMAKE_SYSTEM_NAME. +message("[katei in CMakeLists.txt] SWIFT_HOST_VARIANT_SDK=${SWIFT_HOST_VARIANT_SDK}") if(SWIFT_HOST_VARIANT_SDK) set(SWIFT_HOST_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}") else() @@ -831,6 +832,10 @@ precondition(SWIFT_CONFIGURED_SDKS MESSAGE "No SDKs selected.") precondition(SWIFT_HOST_VARIANT_SDK MESSAGE "No SDK for host tools.") precondition(SWIFT_HOST_VARIANT_ARCH MESSAGE "No arch for host tools") +message("[katei in CMakeList.txt] SWIFT_PRIMARY_VARIANT_SDK=${SWIFT_PRIMARY_VARIANT_SDK}") +message("[katei in CMakeList.txt] SWIFT_PRIMARY_VARIANT_ARCH=${SWIFT_PRIMARY_VARIANT_ARCH}") +message("[katei in CMakeList.txt] SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR=${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}") +message("[katei in CMakeList.txt] SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR-SWIFT_PRIMARY_VARIANT_ARCH=-${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}") set(SWIFT_PRIMARY_VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}") diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 64587d0fec8b7..ee698ae095b1d 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -105,6 +105,7 @@ function(_add_variant_c_compile_link_flags) set(result ${${CFLAGS_RESULT_VAR_NAME}}) + message("[katei in AddSwift.cmake] CFLAGS_SDK=${CFLAGS_SDK}") is_darwin_based_sdk("${CFLAGS_SDK}" IS_DARWIN) if(IS_DARWIN) # Check if there's a specific OS deployment version needed for this invocation @@ -131,6 +132,7 @@ function(_add_variant_c_compile_link_flags) set(_sysroot "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_PATH}") if(IS_DARWIN) + message("[katei in AddSwift.cmake] Adding isysroot") list(APPEND result "-isysroot" "${_sysroot}") elseif(NOT SWIFT_COMPILER_IS_MSVC_LIKE AND NOT "${_sysroot}" STREQUAL "/") list(APPEND result "--sysroot=${_sysroot}") @@ -317,6 +319,7 @@ function(_add_variant_c_compile_flags) endforeach() endif() + message("[katei in AddSwift] SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE=${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}") set(ICU_UC_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}) if(NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "" AND NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "/usr/include" AND @@ -328,7 +331,6 @@ function(_add_variant_c_compile_flags) list(APPEND result -isystem;${ICU_UC_INCLUDE_DIR}) endif() endif() - message("[katei] SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE=${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}") set(ICU_I18N_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_I18N_INCLUDE}) if(NOT "${ICU_I18N_INCLUDE_DIR}" STREQUAL "" AND @@ -2129,6 +2131,7 @@ function(add_swift_target_library name) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") + message("[katei in AddSwift] VARIANT_SUFFIX=-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND TARGET "swift-test-stdlib${VARIANT_SUFFIX}") add_dependencies("swift-stdlib${VARIANT_SUFFIX}" diff --git a/cmake/modules/FindICU.cmake b/cmake/modules/FindICU.cmake index 56342b75cad8d..8aaf8699a6367 100644 --- a/cmake/modules/FindICU.cmake +++ b/cmake/modules/FindICU.cmake @@ -13,13 +13,11 @@ foreach(MODULE ${ICU_FIND_COMPONENTS}) pkg_check_modules(PC_ICU_${MODULE} QUIET icu-${module}) if(NOT PKG_CONFIG_FOUND) - message("[katei] not PKG_CONFIG_FOUND") # PkgConfig doesn't exist on this system, so we manually provide hints via CMake. set(PC_ICU_${MODULE}_INCLUDE_DIRS "${ICU_${MODULE}_INCLUDE_DIRS}") set(PC_ICU_${MODULE}_LIBRARY_DIRS "${ICU_${MODULE}_LIBRARY_DIRS}") endif() - message("[katei] PC_ICU_${MODULE}_INCLUDE_DIRS=${PC_ICU_${MODULE}_INCLUDE_DIRS}") find_path(ICU_${MODULE}_INCLUDE_DIRS unicode HINTS ${PC_ICU_${MODULE}_INCLUDE_DIRS}) find_library(ICU_${MODULE}_LIBRARIES NAMES icu${module} ${ICU_${MODULE}_LIB_NAME} @@ -38,5 +36,6 @@ foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU;WASM) endforeach() endforeach() -#find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED}) -#mark_as_advanced(${ICU_REQUIRED}) +message("[katei in FindICU] ICU_I18N_INCLUDE_DIRS=${ICU_I18N_INCLUDE_DIRS}") +find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED}) +mark_as_advanced(${ICU_REQUIRED}) diff --git a/cmake/modules/SwiftUtils.cmake b/cmake/modules/SwiftUtils.cmake index 19f17223ec3bc..04d812dc48d83 100644 --- a/cmake/modules/SwiftUtils.cmake +++ b/cmake/modules/SwiftUtils.cmake @@ -167,10 +167,10 @@ function(is_sdk_requested name result_var_name) if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "${name}") set("${result_var_name}" "TRUE" PARENT_SCOPE) else() - if("${name}" IN_LIST SWIFT_SDKS) - set("${result_var_name}" "TRUE" PARENT_SCOPE) - else() - set("${result_var_name}" "FALSE" PARENT_SCOPE) - endif() + if("${name}" IN_LIST SWIFT_SDKS) + set("${result_var_name}" "TRUE" PARENT_SCOPE) + else() + set("${result_var_name}" "FALSE" PARENT_SCOPE) + endif() endif() endfunction() diff --git a/fakeld b/fakeld index 1df157004de91..152fba307e4e0 100755 --- a/fakeld +++ b/fakeld @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 +#!/usr/bin/env python import sys def outputname(): for i in range(len(sys.argv)): diff --git a/lib/Driver/CMakeLists.txt b/lib/Driver/CMakeLists.txt index 5d0cdf717350d..27654b876fac1 100644 --- a/lib/Driver/CMakeLists.txt +++ b/lib/Driver/CMakeLists.txt @@ -31,14 +31,13 @@ target_link_libraries(swiftDriver PRIVATE if(SWIFT_BUILD_STATIC_STDLIB) set(static_stdlib_lnk_file_list) foreach(sdk ${SWIFT_CONFIGURED_SDKS}) - message("[katei] SWIFT_SDK_${sdk}_OBJECT_FORMAT=${SWIFT_SDK_${sdk}_OBJECT_FORMAT}") if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF") string(TOLOWER "${sdk}" lowercase_sdk) if(SWIFT_${SWIFT_HOST_VARIANT_SDK}_${SWIFT_HOST_VARIANT_ARCH}_ICU_STATICLIB) set(ICU_STATICLIB "TRUE") else() set(ICU_STATICLIB "FALSE") - find_package(ICU REQUIRED COMPONENTS uc i18n) + #find_package(ICU REQUIRED COMPONENTS uc i18n) get_filename_component(ICU_UC_LIBDIR "${ICU_UC_LIBRARIES}" DIRECTORY) get_filename_component(ICU_I18N_LIBDIR "${ICU_I18N_LIBRARIES}" DIRECTORY) endif() diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index d05618c94c5e7..33afd269c5ae6 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -5,6 +5,7 @@ list(APPEND CMAKE_MODULE_PATH include(AddSwiftStdlib) +set(CMAKE_OSX_SYSROOT "${SWIFT_WASM_WASI_SDK_PATH}") # Create convenience targets for the Swift standard library. # NOTE(compnerd) save the original compiler for the host swiftReflection that @@ -72,6 +73,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) endif() foreach(sdk ${SWIFT_SDKS}) + message("[katei in stdlib/CMakeLists.txt] Target Name_LIB_SUBDIR=${name}${target_variant}${variant}") add_custom_target(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant}) set_target_properties(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant} PROPERTIES @@ -80,6 +82,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(target_variant -${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}) + message("[katei in stdlib/cmakelists.txt] target name=${name}${target_variant}${variant}") add_custom_target(${name}${target_variant}${variant}) set_target_properties(${name}${target_variant}${variant} PROPERTIES @@ -96,6 +99,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) if(NOT define_all_alias) set(ALL_keyword ALL) endif() + message("[katei in stdlib/CMakelists.txt] SWIFT_PRIMARY_VARIANT_SUFFIX=${name}${SWIFT_PRIMARY_VARIANT_SUFFIX}${variant}") add_custom_target(${name}${variant} ${ALL_keyword} DEPENDS diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake index 0f7aa8edc7332..7846cf5532852 100644 --- a/stdlib/cmake/modules/AddSwiftStdlib.cmake +++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake @@ -33,6 +33,7 @@ function(add_swift_target_executable name) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") set(VARIANT_NAME "${name}${VARIANT_SUFFIX}") + message("[katei in AddSwiftStdlib] VARIANT_SUFFIX=-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") set(SWIFTEXE_TARGET_EXCLUDE_FROM_ALL_FLAG_CURRENT ${SWIFTEXE_TARGET_EXCLUDE_FROM_ALL_FLAG}) From 1d3899fa77e4399a1e1581380e363c712543c742 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 16:51:34 +0900 Subject: [PATCH 03/23] monkey patch --- CMakeLists.txt | 2 +- cmake/modules/AddSwift.cmake | 1 + stdlib/private/CMakeLists.txt | 1 + stdlib/public/CMakeLists.txt | 2 +- stdlib/public/Darwin/CMakeLists.txt | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 860884d931bef..0676f362aeff3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -77,7 +77,7 @@ else() endif() if(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY OR SWIFT_BUILD_STATIC_SDK_OVERLAY) - set(SWIFT_BUILD_SDK_OVERLAY TRUE) + set(SWIFT_BUILD_SDK_OVERLAY FALSE) else() set(SWIFT_BUILD_SDK_OVERLAY FALSE) endif() diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index ee698ae095b1d..5f903e3b7efd3 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -1747,6 +1747,7 @@ function(add_swift_target_library name) list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-warn-implicit-overrides") endif() + if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE) list(APPEND SWIFTLIB_DEPENDS clang) endif() diff --git a/stdlib/private/CMakeLists.txt b/stdlib/private/CMakeLists.txt index 45cf31363574b..45cd03a77bec1 100644 --- a/stdlib/private/CMakeLists.txt +++ b/stdlib/private/CMakeLists.txt @@ -2,6 +2,7 @@ if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_SDK_OVERLAY) add_subdirectory(SwiftPrivate) endif() +message("[katei] SWIFT_BUILD_SDK_OVERLAY=${SWIFT_BUILD_SDK_OVERLAY}") if(SWIFT_BUILD_SDK_OVERLAY) # SwiftPrivateThreadExtras makes use of Darwin/Glibc, which is part of the # SDK overlay. It can't be built separately from the SDK overlay. diff --git a/stdlib/public/CMakeLists.txt b/stdlib/public/CMakeLists.txt index 6df9dafe9cf09..607e0dba5a19c 100644 --- a/stdlib/public/CMakeLists.txt +++ b/stdlib/public/CMakeLists.txt @@ -76,7 +76,7 @@ endif() if(SWIFT_BUILD_SDK_OVERLAY) list_intersect("${SWIFT_APPLE_PLATFORMS}" "${SWIFT_SDKS}" building_darwin_sdks) if(building_darwin_sdks) - add_subdirectory(Darwin) + #add_subdirectory(Darwin) endif() if(WINDOWS IN_LIST SWIFT_SDKS) diff --git a/stdlib/public/Darwin/CMakeLists.txt b/stdlib/public/Darwin/CMakeLists.txt index b9db521f0a5f7..e608e4ac4d977 100644 --- a/stdlib/public/Darwin/CMakeLists.txt +++ b/stdlib/public/Darwin/CMakeLists.txt @@ -1,5 +1,6 @@ # All libraries in this directory tree are overlays that depend on Darwin SDK. +set(CMAKE_OSX_SYSROOT "/Applications/Xcode-11.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk") set(SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES) if(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY) list(APPEND SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES SHARED) From f176863d2c5dd2d072fab5fd98021bf681845fc9 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 17:37:08 +0900 Subject: [PATCH 04/23] Update build script --- azure-pipelines.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4f706adb0f3bc..6f323c303ae35 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -92,8 +92,13 @@ jobs: - checkout: self path: swift-source/swift - script: | - wget -O wasisdk.deb "https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk_3.19gefb17cb478f9.m_amd64.deb" - sudo dpkg -i wasisdk.deb + wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz + tar xfz wasi-sdk.tar.gz + mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk + # Link sysroot/usr/include to sysroot/include because Darwin sysroot doesn't + # find header files in sysroot/include but sysroot/usr/include + mkdir wasi-sdk/share/sysroot/usr/ + ln -s ../include wasi-sdk/share/sysroot/usr/include wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz" tar xf icu.tar.xz workingDirectory: $(Pipeline.Workspace)/swift-source @@ -103,10 +108,13 @@ jobs: cd swift utils/update-checkout --clone --scheme wasm utils/build-script --release --wasm \ + --verbose \ + --skip-build-benchmarks # Avoid to use darwin platform SDK \ --llvm-targets-to-build "X86;WebAssembly" \ - --stdlib-deployment-targets "macosx-x86_64" \ - --extra-cmake-options="-DSWIFT_WASM_WASI_SDK_PATH=/usr/local/opt/llvm" \ - --wasm-wasi-sdk "/opt/wasi-sdk" \ + --extra-cmake-options=" \ + -DSWIFT_BUILD_DYNAMIC_SDK_OVERLAY=NO \ + " \ + --wasm-wasi-sdk "$sourcedir/wasi-sdk" \ --wasm-icu-uc "todo" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ --wasm-icu-i18n "todo" \ From e2d26b4bdc65c8efa6f64e1157f307e73e1ab3d5 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 17:42:45 +0900 Subject: [PATCH 05/23] Remove debug print --- CMakeLists.txt | 5 ----- cmake/modules/AddSwift.cmake | 6 +----- cmake/modules/FindICU.cmake | 1 - stdlib/CMakeLists.txt | 9 +++------ stdlib/cmake/modules/AddSwiftStdlib.cmake | 1 - stdlib/private/CMakeLists.txt | 1 - 6 files changed, 4 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0676f362aeff3..09a31631ed24e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -587,7 +587,6 @@ include(SwiftCheckCXXNativeRegex) check_cxx_native_regex(SWIFT_HAVE_WORKING_STD_REGEX) # If SWIFT_HOST_VARIANT_SDK not given, try to detect from the CMAKE_SYSTEM_NAME. -message("[katei in CMakeLists.txt] SWIFT_HOST_VARIANT_SDK=${SWIFT_HOST_VARIANT_SDK}") if(SWIFT_HOST_VARIANT_SDK) set(SWIFT_HOST_VARIANT_SDK_default "${SWIFT_HOST_VARIANT_SDK}") else() @@ -832,10 +831,6 @@ precondition(SWIFT_CONFIGURED_SDKS MESSAGE "No SDKs selected.") precondition(SWIFT_HOST_VARIANT_SDK MESSAGE "No SDK for host tools.") precondition(SWIFT_HOST_VARIANT_ARCH MESSAGE "No arch for host tools") -message("[katei in CMakeList.txt] SWIFT_PRIMARY_VARIANT_SDK=${SWIFT_PRIMARY_VARIANT_SDK}") -message("[katei in CMakeList.txt] SWIFT_PRIMARY_VARIANT_ARCH=${SWIFT_PRIMARY_VARIANT_ARCH}") -message("[katei in CMakeList.txt] SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR=${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}") -message("[katei in CMakeList.txt] SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR-SWIFT_PRIMARY_VARIANT_ARCH=-${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}") set(SWIFT_PRIMARY_VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFT_PRIMARY_VARIANT_SDK}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}") diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 5f903e3b7efd3..30bacde88eb82 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -105,7 +105,6 @@ function(_add_variant_c_compile_link_flags) set(result ${${CFLAGS_RESULT_VAR_NAME}}) - message("[katei in AddSwift.cmake] CFLAGS_SDK=${CFLAGS_SDK}") is_darwin_based_sdk("${CFLAGS_SDK}" IS_DARWIN) if(IS_DARWIN) # Check if there's a specific OS deployment version needed for this invocation @@ -132,7 +131,6 @@ function(_add_variant_c_compile_link_flags) set(_sysroot "${SWIFT_SDK_${CFLAGS_SDK}_ARCH_${CFLAGS_ARCH}_PATH}") if(IS_DARWIN) - message("[katei in AddSwift.cmake] Adding isysroot") list(APPEND result "-isysroot" "${_sysroot}") elseif(NOT SWIFT_COMPILER_IS_MSVC_LIKE AND NOT "${_sysroot}" STREQUAL "/") list(APPEND result "--sysroot=${_sysroot}") @@ -319,7 +317,6 @@ function(_add_variant_c_compile_flags) endforeach() endif() - message("[katei in AddSwift] SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE=${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}") set(ICU_UC_INCLUDE_DIR ${SWIFT_${CFLAGS_SDK}_${CFLAGS_ARCH}_ICU_UC_INCLUDE}) if(NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "" AND NOT "${ICU_UC_INCLUDE_DIR}" STREQUAL "/usr/include" AND @@ -2132,8 +2129,7 @@ function(add_swift_target_library name) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") - message("[katei in AddSwift] VARIANT_SUFFIX=-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") - if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND + if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND TARGET "swift-test-stdlib${VARIANT_SUFFIX}") add_dependencies("swift-stdlib${VARIANT_SUFFIX}" ${lipo_target} diff --git a/cmake/modules/FindICU.cmake b/cmake/modules/FindICU.cmake index 8aaf8699a6367..8c9c1c2b55249 100644 --- a/cmake/modules/FindICU.cmake +++ b/cmake/modules/FindICU.cmake @@ -36,6 +36,5 @@ foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU;WASM) endforeach() endforeach() -message("[katei in FindICU] ICU_I18N_INCLUDE_DIRS=${ICU_I18N_INCLUDE_DIRS}") find_package_handle_standard_args(ICU DEFAULT_MSG ${ICU_REQUIRED}) mark_as_advanced(${ICU_REQUIRED}) diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index 33afd269c5ae6..d30773df079b3 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -73,8 +73,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) endif() foreach(sdk ${SWIFT_SDKS}) - message("[katei in stdlib/CMakeLists.txt] Target Name_LIB_SUBDIR=${name}${target_variant}${variant}") - add_custom_target(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant}) + add_custom_target(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant}) set_target_properties(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant} PROPERTIES FOLDER "Swift libraries/Aggregate") @@ -82,8 +81,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(target_variant -${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}) - message("[katei in stdlib/cmakelists.txt] target name=${name}${target_variant}${variant}") - add_custom_target(${name}${target_variant}${variant}) + add_custom_target(${name}${target_variant}${variant}) set_target_properties(${name}${target_variant}${variant} PROPERTIES FOLDER "Swift libraries/Aggregate") @@ -99,8 +97,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) if(NOT define_all_alias) set(ALL_keyword ALL) endif() - message("[katei in stdlib/CMakelists.txt] SWIFT_PRIMARY_VARIANT_SUFFIX=${name}${SWIFT_PRIMARY_VARIANT_SUFFIX}${variant}") - add_custom_target(${name}${variant} + add_custom_target(${name}${variant} ${ALL_keyword} DEPENDS ${name}${SWIFT_PRIMARY_VARIANT_SUFFIX}${variant}) diff --git a/stdlib/cmake/modules/AddSwiftStdlib.cmake b/stdlib/cmake/modules/AddSwiftStdlib.cmake index 7846cf5532852..0f7aa8edc7332 100644 --- a/stdlib/cmake/modules/AddSwiftStdlib.cmake +++ b/stdlib/cmake/modules/AddSwiftStdlib.cmake @@ -33,7 +33,6 @@ function(add_swift_target_executable name) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") set(VARIANT_NAME "${name}${VARIANT_SUFFIX}") - message("[katei in AddSwiftStdlib] VARIANT_SUFFIX=-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") set(SWIFTEXE_TARGET_EXCLUDE_FROM_ALL_FLAG_CURRENT ${SWIFTEXE_TARGET_EXCLUDE_FROM_ALL_FLAG}) diff --git a/stdlib/private/CMakeLists.txt b/stdlib/private/CMakeLists.txt index 45cd03a77bec1..45cf31363574b 100644 --- a/stdlib/private/CMakeLists.txt +++ b/stdlib/private/CMakeLists.txt @@ -2,7 +2,6 @@ if(SWIFT_BUILD_STDLIB OR SWIFT_BUILD_SDK_OVERLAY) add_subdirectory(SwiftPrivate) endif() -message("[katei] SWIFT_BUILD_SDK_OVERLAY=${SWIFT_BUILD_SDK_OVERLAY}") if(SWIFT_BUILD_SDK_OVERLAY) # SwiftPrivateThreadExtras makes use of Darwin/Glibc, which is part of the # SDK overlay. It can't be built separately from the SDK overlay. From 148172a75195d43d34acb427e08de974c619b4d8 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 17:45:18 +0900 Subject: [PATCH 06/23] Revert unnecessary spaces --- cmake/modules/AddSwift.cmake | 3 +-- cmake/modules/SwiftUtils.cmake | 10 +++++----- stdlib/CMakeLists.txt | 6 +++--- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/cmake/modules/AddSwift.cmake b/cmake/modules/AddSwift.cmake index 30bacde88eb82..c484988750bcb 100644 --- a/cmake/modules/AddSwift.cmake +++ b/cmake/modules/AddSwift.cmake @@ -1744,7 +1744,6 @@ function(add_swift_target_library name) list(APPEND SWIFTLIB_SWIFT_COMPILE_FLAGS "-warn-implicit-overrides") endif() - if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER AND NOT BUILD_STANDALONE) list(APPEND SWIFTLIB_DEPENDS clang) endif() @@ -2129,7 +2128,7 @@ function(add_swift_target_library name) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") - if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND + if(TARGET "swift-stdlib${VARIANT_SUFFIX}" AND TARGET "swift-test-stdlib${VARIANT_SUFFIX}") add_dependencies("swift-stdlib${VARIANT_SUFFIX}" ${lipo_target} diff --git a/cmake/modules/SwiftUtils.cmake b/cmake/modules/SwiftUtils.cmake index 04d812dc48d83..19f17223ec3bc 100644 --- a/cmake/modules/SwiftUtils.cmake +++ b/cmake/modules/SwiftUtils.cmake @@ -167,10 +167,10 @@ function(is_sdk_requested name result_var_name) if("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "${name}") set("${result_var_name}" "TRUE" PARENT_SCOPE) else() - if("${name}" IN_LIST SWIFT_SDKS) - set("${result_var_name}" "TRUE" PARENT_SCOPE) - else() - set("${result_var_name}" "FALSE" PARENT_SCOPE) - endif() + if("${name}" IN_LIST SWIFT_SDKS) + set("${result_var_name}" "TRUE" PARENT_SCOPE) + else() + set("${result_var_name}" "FALSE" PARENT_SCOPE) + endif() endif() endfunction() diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index d30773df079b3..4c2daa3d95cf4 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -73,7 +73,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) endif() foreach(sdk ${SWIFT_SDKS}) - add_custom_target(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant}) + add_custom_target(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant}) set_target_properties(${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}${variant} PROPERTIES FOLDER "Swift libraries/Aggregate") @@ -81,7 +81,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(target_variant -${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}) - add_custom_target(${name}${target_variant}${variant}) + add_custom_target(${name}${target_variant}${variant}) set_target_properties(${name}${target_variant}${variant} PROPERTIES FOLDER "Swift libraries/Aggregate") @@ -97,7 +97,7 @@ function(swift_create_stdlib_targets name variant define_all_alias) if(NOT define_all_alias) set(ALL_keyword ALL) endif() - add_custom_target(${name}${variant} + add_custom_target(${name}${variant} ${ALL_keyword} DEPENDS ${name}${SWIFT_PRIMARY_VARIANT_SUFFIX}${variant}) From 26cc10c584de74744f172c49f95b092a1e8704e2 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 17:53:14 +0900 Subject: [PATCH 07/23] Use pre-built llvm-ar only when system is linux --- CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09a31631ed24e..d268e8aaa003b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,9 +29,6 @@ ENABLE_LANGUAGE(C) include(SwiftUtils) include(CheckSymbolExists) -# WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld -# set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") - # # User-configurable options that control the inclusion and default build # behavior for components which may not strictly be necessary (tools, examples, @@ -814,6 +811,11 @@ if(swift_build_wasm AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASM") # message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android") #endif() + if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin") + # WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld + set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") + endif() + if("${SWIFT_SDK_WASM_ARCHITECTURES}" STREQUAL "") set(SWIFT_SDK_WASM_ARCHITECTURES wasm32) endif() From ef845ae200a227862a2bd2b24954506934389c08 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 18:29:47 +0900 Subject: [PATCH 08/23] Skip build overlay --- CMakeLists.txt | 4 ++-- azure-pipelines.yml | 5 ++--- stdlib/public/CMakeLists.txt | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d268e8aaa003b..b6733cc25b567 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,7 +74,7 @@ else() endif() if(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY OR SWIFT_BUILD_STATIC_SDK_OVERLAY) - set(SWIFT_BUILD_SDK_OVERLAY FALSE) + set(SWIFT_BUILD_SDK_OVERLAY TRUE) else() set(SWIFT_BUILD_SDK_OVERLAY FALSE) endif() @@ -811,7 +811,7 @@ if(swift_build_wasm AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASM") # message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android") #endif() - if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin") + if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin")) # WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") endif() diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6f323c303ae35..978bd7cf465d1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,6 +43,8 @@ jobs: utils/update-checkout --clone --scheme wasm utils/build-script --release --wasm \ --llvm-targets-to-build "X86;WebAssembly" \ + --build-swift-dynamic-sdk-overlay false \ + --build-swift-static-sdk-overlay false \ --wasm-wasi-sdk "/opt/wasi-sdk" \ --wasm-icu-uc "todo" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ @@ -111,9 +113,6 @@ jobs: --verbose \ --skip-build-benchmarks # Avoid to use darwin platform SDK \ --llvm-targets-to-build "X86;WebAssembly" \ - --extra-cmake-options=" \ - -DSWIFT_BUILD_DYNAMIC_SDK_OVERLAY=NO \ - " \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" \ --wasm-icu-uc "todo" \ --wasm-icu-uc-include "$sourcedir/icu_out/include" \ diff --git a/stdlib/public/CMakeLists.txt b/stdlib/public/CMakeLists.txt index 607e0dba5a19c..6df9dafe9cf09 100644 --- a/stdlib/public/CMakeLists.txt +++ b/stdlib/public/CMakeLists.txt @@ -76,7 +76,7 @@ endif() if(SWIFT_BUILD_SDK_OVERLAY) list_intersect("${SWIFT_APPLE_PLATFORMS}" "${SWIFT_SDKS}" building_darwin_sdks) if(building_darwin_sdks) - #add_subdirectory(Darwin) + add_subdirectory(Darwin) endif() if(WINDOWS IN_LIST SWIFT_SDKS) From 9da9fab3ca6ca98035f97e2ee7129251c0b84cb7 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 18:51:25 +0900 Subject: [PATCH 09/23] Fix new line in shell script --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 978bd7cf465d1..865f452432c9f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -111,7 +111,7 @@ jobs: utils/update-checkout --clone --scheme wasm utils/build-script --release --wasm \ --verbose \ - --skip-build-benchmarks # Avoid to use darwin platform SDK \ + --skip-build-benchmarks \ --llvm-targets-to-build "X86;WebAssembly" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" \ --wasm-icu-uc "todo" \ From f9c20dbb1c06bd244fc5b42d217a00eacb87d86f Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 5 Oct 2019 19:54:01 +0900 Subject: [PATCH 10/23] Checkout current branch --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 865f452432c9f..74b1875625033 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,6 +41,7 @@ jobs: sourcedir="$PWD" cd swift utils/update-checkout --clone --scheme wasm + git checkout $BUILD_SOURCEBRANCHNAME || git checkout $SYSTEM_PULLREQUEST_SOURCEBRANCH utils/build-script --release --wasm \ --llvm-targets-to-build "X86;WebAssembly" \ --build-swift-dynamic-sdk-overlay false \ @@ -109,9 +110,12 @@ jobs: sourcedir="$PWD" cd swift utils/update-checkout --clone --scheme wasm + git checkout $BUILD_SOURCEBRANCHNAME || git checkout $SYSTEM_PULLREQUEST_SOURCEBRANCH utils/build-script --release --wasm \ --verbose \ --skip-build-benchmarks \ + --build-swift-dynamic-sdk-overlay false \ + --build-swift-static-sdk-overlay false \ --llvm-targets-to-build "X86;WebAssembly" \ --wasm-wasi-sdk "$sourcedir/wasi-sdk" \ --wasm-icu-uc "todo" \ From cf232cec4eb5a5f9ecdc348916c2a24c081ee621 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 12 Oct 2019 10:38:27 +0900 Subject: [PATCH 11/23] bump --- CMakeLists.txt | 4 +--- azure-pipelines.yml | 4 ++-- stdlib/public/runtime/CMakeLists.txt | 10 ++++++---- swift_end.o | Bin 0 -> 629 bytes swift_start.o | Bin 0 -> 638 bytes 5 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 swift_end.o create mode 100644 swift_start.o diff --git a/CMakeLists.txt b/CMakeLists.txt index b6733cc25b567..3219f01f587b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -811,10 +811,8 @@ if(swift_build_wasm AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASM") # message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android") #endif() - if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin")) # WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld - set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") - endif() + set(CMAKE_AR "/Users/katei/projects/wasi-sdk/opt/bin/llvm-ar") if("${SWIFT_SDK_WASM_ARCHITECTURES}" STREQUAL "") set(SWIFT_SDK_WASM_ARCHITECTURES wasm32) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 74b1875625033..bb0c4593e5482 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -69,7 +69,7 @@ jobs: inputs: gitHubConnection: swiftwasm-release tagSource: manual - tag: $(Build.BuildNumber) + tag: $(Build.BuildNumber)-linux assets: | $(Build.ArtifactStagingDirectory)/* @@ -141,6 +141,6 @@ jobs: inputs: gitHubConnection: swiftwasm-release tagSource: manual - tag: $(Build.BuildNumber) + tag: $(Build.BuildNumber)-osx assets: | $(Build.ArtifactStagingDirectory)/* diff --git a/stdlib/public/runtime/CMakeLists.txt b/stdlib/public/runtime/CMakeLists.txt index 6597190d10f99..23042995b9305 100644 --- a/stdlib/public/runtime/CMakeLists.txt +++ b/stdlib/public/runtime/CMakeLists.txt @@ -92,8 +92,9 @@ set(swift_runtime_library_compile_flags ${swift_runtime_compile_flags}) list(APPEND swift_runtime_library_compile_flags -DswiftCore_EXPORTS) list(APPEND swift_runtime_library_compile_flags -I${SWIFT_SOURCE_DIR}/include) -set(sdk "${SWIFT_HOST_VARIANT_SDK}") -if(SWIFT_BUILD_STATIC_STDLIB AND "${sdk}" STREQUAL "LINUX") +set(sdk "WASM") +if(SWIFT_BUILD_STATIC_STDLIB) + message("Building Static ImageInspectionShared") list(REMOVE_ITEM swift_runtime_sources ImageInspectionELF.cpp) set(static_binary_lnk_file_list) string(TOLOWER "${sdk}" lowercase_sdk) @@ -120,7 +121,7 @@ if(SWIFT_BUILD_STATIC_STDLIB AND "${sdk}" STREQUAL "LINUX") COMPONENT stdlib) endforeach() - set(FragileSupportLibraryPrimary swiftImageInspectionShared-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}) + set(FragileSupportLibraryPrimary swiftImageInspectionShared-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-wasm32) set(LibraryLocationPrimary ${SWIFTSTATICLIB_DIR}/${lowercase_sdk}) add_custom_command_target(swift_image_inspection_static_primary_arch COMMAND @@ -150,7 +151,8 @@ if(SWIFT_BUILD_STATIC_STDLIB AND "${sdk}" STREQUAL "LINUX") DESTINATION "lib/swift_static/${lowercase_sdk}" COMPONENT stdlib) add_custom_target(static_binary_magic ALL DEPENDS ${static_binary_lnk_file_list}) - foreach(arch IN LISTS SWIFT_SDK_LINUX_ARCHITECTURES) + message("[katei] SWIFT_SDK_${sdk}_ARCHITECTURES=${SWIFT_SDK_${sdk}_ARCHITECTURES}") + foreach(arch IN LISTS SWIFT_SDK_${sdk}_ARCHITECTURES) add_dependencies(static_binary_magic ${swift_image_inspection_${arch}_static}) endforeach() add_dependencies(static_binary_magic ${swift_image_inspection_static_primary_arch}) diff --git a/swift_end.o b/swift_end.o new file mode 100644 index 0000000000000000000000000000000000000000..bf50ab755b09b60278993e8fef82c187dc5652ae GIT binary patch literal 629 zcmZ{gO-{ow5JtzTOM{A_iy}aDfy50eae$s=WE=-sICf+kP<8=!oQ5@r0Ev5W0Tzf@ zvK7*X-P8NVKi>dz6#;XmO|VLE5#i&xyLZ-o=vL~REPr_l&k%Zo z=)9@XJ;>5uVQq~!+$aY?3B4Q-ksDnaTQSXrBVq7-IOv;NbfrBjm}glSINlwwqMVFG zomS3UIueyqsG=&SBN21XaNq2WL{`*_aWVThTIWEgua99Li`_M>w$z|Jz%s^z$^eId Xbl0dCv0g7?sb0h?y@&<2#TwujTov3c literal 0 HcmV?d00001 diff --git a/swift_start.o b/swift_start.o new file mode 100644 index 0000000000000000000000000000000000000000..85ce56deec9152797d60b5106d551bc5d0de08cd GIT binary patch literal 638 zcmZ{gO-{ow5JtzTOM{A_iwYGf3l^N95(nr>EaN!H!m%TJ0A&~82%H0nH46^GiWOJj z3dEAFv?bj=y>I;U4RBu*0LVVNu7hkM&BGaES{cb5t7UCnn*j;>f-z-E<)lDX-5Y_* z8ixEvOVR+$zry)r*ub3re!l&{h9<}poFrHzSSDB{C=y&o_ zgsvF#$Q?5Os4Bc>jk9Ql)gFKndUYUW!kWsunj0ZK36sU%B({z0dm}G7@+?f8k4!jO zO~$g`YmbhOWtEb;tjp Date: Sat, 12 Oct 2019 18:18:51 +0900 Subject: [PATCH 12/23] Upload artifacts after all jobs --- azure-pipelines.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bb0c4593e5482..649e327002770 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -64,14 +64,7 @@ jobs: - task: PublishBuildArtifacts@1 inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) - artifactName: swiftwasm-sdk - - task: GitHubRelease@0 - inputs: - gitHubConnection: swiftwasm-release - tagSource: manual - tag: $(Build.BuildNumber)-linux - assets: | - $(Build.ArtifactStagingDirectory)/* + artifactName: swiftwasm-sdk-linux - job: macOS timeoutInMinutes: 0 @@ -136,11 +129,15 @@ jobs: - task: PublishBuildArtifacts@1 inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) - artifactName: swiftwasm-sdk + artifactName: swiftwasm-sdk-macos +- job: Upload Artifacts + dependsOn: + - Ubuntu + - macOS + steps: - task: GitHubRelease@0 inputs: gitHubConnection: swiftwasm-release tagSource: manual - tag: $(Build.BuildNumber)-osx - assets: | - $(Build.ArtifactStagingDirectory)/* + tag: $(Build.BuildNumber) + assets: $(Build.ArtifactStagingDirectory)/* From 00a1d2b4838547a4b8ee9261ac1f65ade9d43fea Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 12 Oct 2019 18:19:39 +0900 Subject: [PATCH 13/23] Remove pre built obj --- azure-pipelines.yml | 2 +- swift_end.o | Bin 629 -> 0 bytes swift_start.o | Bin 638 -> 0 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 swift_end.o delete mode 100644 swift_start.o diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 649e327002770..2953d45d31106 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -130,7 +130,7 @@ jobs: inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) artifactName: swiftwasm-sdk-macos -- job: Upload Artifacts +- job: UploadArtifacts dependsOn: - Ubuntu - macOS diff --git a/swift_end.o b/swift_end.o deleted file mode 100644 index bf50ab755b09b60278993e8fef82c187dc5652ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 629 zcmZ{gO-{ow5JtzTOM{A_iy}aDfy50eae$s=WE=-sICf+kP<8=!oQ5@r0Ev5W0Tzf@ zvK7*X-P8NVKi>dz6#;XmO|VLE5#i&xyLZ-o=vL~REPr_l&k%Zo z=)9@XJ;>5uVQq~!+$aY?3B4Q-ksDnaTQSXrBVq7-IOv;NbfrBjm}glSINlwwqMVFG zomS3UIueyqsG=&SBN21XaNq2WL{`*_aWVThTIWEgua99Li`_M>w$z|Jz%s^z$^eId Xbl0dCv0g7?sb0h?y@&<2#TwujTov3c diff --git a/swift_start.o b/swift_start.o deleted file mode 100644 index 85ce56deec9152797d60b5106d551bc5d0de08cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 638 zcmZ{gO-{ow5JtzTOM{A_iwYGf3l^N95(nr>EaN!H!m%TJ0A&~82%H0nH46^GiWOJj z3dEAFv?bj=y>I;U4RBu*0LVVNu7hkM&BGaES{cb5t7UCnn*j;>f-z-E<)lDX-5Y_* z8ixEvOVR+$zry)r*ub3re!l&{h9<}poFrHzSSDB{C=y&o_ zgsvF#$Q?5Os4Bc>jk9Ql)gFKndUYUW!kWsunj0ZK36sU%B({z0dm}G7@+?f8k4!jO zO~$g`YmbhOWtEb;tjp Date: Sat, 12 Oct 2019 20:11:39 +0900 Subject: [PATCH 14/23] Revert "bump" This reverts commit cf232cec4eb5a5f9ecdc348916c2a24c081ee621. --- CMakeLists.txt | 4 +++- azure-pipelines.yml | 7 +++++++ stdlib/public/runtime/CMakeLists.txt | 10 ++++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3219f01f587b9..b6733cc25b567 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -811,8 +811,10 @@ if(swift_build_wasm AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASM") # message(FATAL_ERROR "A Darwin or Linux host is required to build the Swift runtime for Android") #endif() + if (NOT ("${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Darwin")) # WebAssembly: hack: use llvm-ar for creating static libraries; Ubuntu's GNU ar doesn't work with wasm-ld - set(CMAKE_AR "/Users/katei/projects/wasi-sdk/opt/bin/llvm-ar") + set(CMAKE_AR "${SWIFT_WASM_WASI_SDK_PATH}/bin/llvm-ar") + endif() if("${SWIFT_SDK_WASM_ARCHITECTURES}" STREQUAL "") set(SWIFT_SDK_WASM_ARCHITECTURES wasm32) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2953d45d31106..ba662c5aec0a9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -65,6 +65,13 @@ jobs: inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) artifactName: swiftwasm-sdk-linux + - task: GitHubRelease@0 + inputs: + gitHubConnection: swiftwasm-release + tagSource: manual + tag: $(Build.BuildNumber) + assets: | + $(Build.ArtifactStagingDirectory)/* - job: macOS timeoutInMinutes: 0 diff --git a/stdlib/public/runtime/CMakeLists.txt b/stdlib/public/runtime/CMakeLists.txt index 23042995b9305..6597190d10f99 100644 --- a/stdlib/public/runtime/CMakeLists.txt +++ b/stdlib/public/runtime/CMakeLists.txt @@ -92,9 +92,8 @@ set(swift_runtime_library_compile_flags ${swift_runtime_compile_flags}) list(APPEND swift_runtime_library_compile_flags -DswiftCore_EXPORTS) list(APPEND swift_runtime_library_compile_flags -I${SWIFT_SOURCE_DIR}/include) -set(sdk "WASM") -if(SWIFT_BUILD_STATIC_STDLIB) - message("Building Static ImageInspectionShared") +set(sdk "${SWIFT_HOST_VARIANT_SDK}") +if(SWIFT_BUILD_STATIC_STDLIB AND "${sdk}" STREQUAL "LINUX") list(REMOVE_ITEM swift_runtime_sources ImageInspectionELF.cpp) set(static_binary_lnk_file_list) string(TOLOWER "${sdk}" lowercase_sdk) @@ -121,7 +120,7 @@ if(SWIFT_BUILD_STATIC_STDLIB) COMPONENT stdlib) endforeach() - set(FragileSupportLibraryPrimary swiftImageInspectionShared-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-wasm32) + set(FragileSupportLibraryPrimary swiftImageInspectionShared-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${SWIFT_PRIMARY_VARIANT_ARCH}) set(LibraryLocationPrimary ${SWIFTSTATICLIB_DIR}/${lowercase_sdk}) add_custom_command_target(swift_image_inspection_static_primary_arch COMMAND @@ -151,8 +150,7 @@ if(SWIFT_BUILD_STATIC_STDLIB) DESTINATION "lib/swift_static/${lowercase_sdk}" COMPONENT stdlib) add_custom_target(static_binary_magic ALL DEPENDS ${static_binary_lnk_file_list}) - message("[katei] SWIFT_SDK_${sdk}_ARCHITECTURES=${SWIFT_SDK_${sdk}_ARCHITECTURES}") - foreach(arch IN LISTS SWIFT_SDK_${sdk}_ARCHITECTURES) + foreach(arch IN LISTS SWIFT_SDK_LINUX_ARCHITECTURES) add_dependencies(static_binary_magic ${swift_image_inspection_${arch}_static}) endforeach() add_dependencies(static_binary_magic ${swift_image_inspection_static_primary_arch}) From 36075888ed63a02a8cb1f33fb0f6bbbaa2698dcb Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sat, 12 Oct 2019 23:26:57 +0900 Subject: [PATCH 15/23] Remove GitHub Release task from each jobs --- azure-pipelines.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ba662c5aec0a9..2953d45d31106 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -65,13 +65,6 @@ jobs: inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) artifactName: swiftwasm-sdk-linux - - task: GitHubRelease@0 - inputs: - gitHubConnection: swiftwasm-release - tagSource: manual - tag: $(Build.BuildNumber) - assets: | - $(Build.ArtifactStagingDirectory)/* - job: macOS timeoutInMinutes: 0 From b5dafbb6bc40a111047ff8bd0a52d8899d28e2b7 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sun, 13 Oct 2019 08:44:02 +0900 Subject: [PATCH 16/23] Download artifacts before release them --- azure-pipelines.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2953d45d31106..4c3de4283a247 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -135,6 +135,11 @@ jobs: - Ubuntu - macOS steps: + - task: DownloadBuildArtifacts@0 + inputs: + downloadType: 'specific' + itemPattern: '**' + downloadPath: $(Build.ArtifactStagingDirectory) - task: GitHubRelease@0 inputs: gitHubConnection: swiftwasm-release From b77841147918c033bdecc276413c61dc6fcf0907 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Sun, 13 Oct 2019 12:28:10 +0900 Subject: [PATCH 17/23] Upload subdirectory contents --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4c3de4283a247..3fe4b036bf65f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -145,4 +145,4 @@ jobs: gitHubConnection: swiftwasm-release tagSource: manual tag: $(Build.BuildNumber) - assets: $(Build.ArtifactStagingDirectory)/* + assets: $(Build.ArtifactStagingDirectory)/*/* From 79a58d51e6f1cdf6a38d5ef48ed85d50da9daed0 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Mon, 14 Oct 2019 10:20:00 +0900 Subject: [PATCH 18/23] Revert CMAKE_OSX_SYSROOT --- stdlib/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stdlib/CMakeLists.txt b/stdlib/CMakeLists.txt index 4c2daa3d95cf4..d05618c94c5e7 100644 --- a/stdlib/CMakeLists.txt +++ b/stdlib/CMakeLists.txt @@ -5,7 +5,6 @@ list(APPEND CMAKE_MODULE_PATH include(AddSwiftStdlib) -set(CMAKE_OSX_SYSROOT "${SWIFT_WASM_WASI_SDK_PATH}") # Create convenience targets for the Swift standard library. # NOTE(compnerd) save the original compiler for the host swiftReflection that From 51b87fa5f5177bd1994bc4950d986b167247e378 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Mon, 14 Oct 2019 10:21:02 +0900 Subject: [PATCH 19/23] Revert CMAKE_OSX_SYSROOT Part 2 --- stdlib/public/Darwin/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/stdlib/public/Darwin/CMakeLists.txt b/stdlib/public/Darwin/CMakeLists.txt index e608e4ac4d977..b9db521f0a5f7 100644 --- a/stdlib/public/Darwin/CMakeLists.txt +++ b/stdlib/public/Darwin/CMakeLists.txt @@ -1,6 +1,5 @@ # All libraries in this directory tree are overlays that depend on Darwin SDK. -set(CMAKE_OSX_SYSROOT "/Applications/Xcode-11.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk") set(SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES) if(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY) list(APPEND SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES SHARED) From 8ed8049f25454101234459f7bf5f860ff93bf28a Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Mon, 14 Oct 2019 12:00:23 +0900 Subject: [PATCH 20/23] Set CMAKE_OSX_SYSROOT only when wasm --- stdlib/public/runtime/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/stdlib/public/runtime/CMakeLists.txt b/stdlib/public/runtime/CMakeLists.txt index 6597190d10f99..d3a267efa4fd7 100644 --- a/stdlib/public/runtime/CMakeLists.txt +++ b/stdlib/public/runtime/CMakeLists.txt @@ -202,6 +202,10 @@ foreach(sdk ${SWIFT_CONFIGURED_SDKS}) set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}") set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") + if(sdk STREQUAL WASM) + set(CMAKE_OSX_SYSROOT "${SWIFT_WASM_WASI_SDK_PATH}") + endif() + if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF" OR "${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "COFF") # TODO(compnerd) switch to the generator expression when cmake is upgraded From 0f3af1d1fddcdd08b69f98363b2bf505a0ae6e50 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Mon, 14 Oct 2019 16:10:01 +0900 Subject: [PATCH 21/23] Comment out forcing SWIFT_SDKS=OSX line --- CMakeLists.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b6733cc25b567..484d6f01aca24 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -657,13 +657,6 @@ endif() # Configure SDKs. # -if(XCODE) - # FIXME: Cannot cross-compile the standard library using Xcode. Xcode - # insists on passing -mmacosx-version-min to the compiler, and we need - # to pass -mios-version-min. Clang sees both options and complains. - set(SWIFT_SDKS "OSX") -endif() - # FIXME: the parameters we specify in SWIFT_SDKS are lacking architecture specifics, # so we need to hard-code it. For example, the SDK for Android is just 'ANDROID', # which we assume below to be armv7. From 023e95260fcfe7eb0858cb8970157c110173e445 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Mon, 14 Oct 2019 16:10:17 +0900 Subject: [PATCH 22/23] Build using Xcode on CI --- azure-pipelines.yml | 68 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3fe4b036bf65f..6ec599535f197 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -66,7 +66,7 @@ jobs: pathtoPublish: $(Build.ArtifactStagingDirectory) artifactName: swiftwasm-sdk-linux -- job: macOS +- job: macOS_Ninja timeoutInMinutes: 0 pool: vmImage: 'macOS-10.14' @@ -130,10 +130,74 @@ jobs: inputs: pathtoPublish: $(Build.ArtifactStagingDirectory) artifactName: swiftwasm-sdk-macos +- job: macOS_Xcode + timeoutInMinutes: 0 + pool: + vmImage: 'macOS-10.14' + steps: + - script: | + brew install ninja + + displayName: Install dependencies via apt-get + - script: | + wget -O cmake-3.15.3-Darwin-x86_64.tar.gz "https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.s://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Darwin-x86_64.tar.gz" + tar xfvz cmake-3.15.3-Darwin-x86_64.tar.gz + sudo ln -sf ./cmake-3.15.3-Darwin-x86_64/CMake.app/Contents/bin/* /usr/local/bin + cmake --version + displayName: Install CMake v3.15.3 + - script: | + mkdir -p swift-source/swift + displayName: Create swift-source workspace + workingDirectory: $(Pipeline.Workspace) + - checkout: self + path: swift-source/swift + - script: | + wget -O wasi-sdk.tar.gz https://github.com/swiftwasm/wasi-sdk/releases/download/20190421.6/wasi-sdk-3.19gefb17cb478f9.m-linux.tar.gz + tar xfz wasi-sdk.tar.gz + mv wasi-sdk-3.19gefb17cb478f9+m/opt/wasi-sdk ./wasi-sdk + # Link sysroot/usr/include to sysroot/include because Darwin sysroot doesn't + # find header files in sysroot/include but sysroot/usr/include + mkdir wasi-sdk/share/sysroot/usr/ + ln -s ../include wasi-sdk/share/sysroot/usr/include + wget -O icu.tar.xz "https://github.com/swiftwasm/icu4c-wasi/releases/download/20190421.3/icu4c-wasi.tar.xz" + tar xf icu.tar.xz + workingDirectory: $(Pipeline.Workspace)/swift-source + displayName: Install wasi-sdk and icu4c-wasi + - script: | + sourcedir="$PWD" + cd swift + utils/update-checkout --clone --scheme wasm + git checkout $BUILD_SOURCEBRANCHNAME || git checkout $SYSTEM_PULLREQUEST_SOURCEBRANCH + utils/build-script --release --wasm --xcode \ + --verbose \ + --skip-build-benchmarks \ + --build-swift-dynamic-sdk-overlay false \ + --build-swift-static-sdk-overlay false \ + --llvm-targets-to-build "X86;WebAssembly" \ + --wasm-wasi-sdk "$sourcedir/wasi-sdk" \ + --wasm-icu-uc "todo" \ + --wasm-icu-uc-include "$sourcedir/icu_out/include" \ + --wasm-icu-i18n "todo" \ + --wasm-icu-i18n-include "todo" \ + --wasm-icu-data "todo" \ + --build-swift-static-stdlib \ + --install-swift \ + --install-prefix="/opt/swiftwasm-sdk" \ + --install-destdir="$sourcedir/install" \ + --installable-package="$sourcedir/swiftwasm-mac.tar.gz" + + cp "$sourcedir/swiftwasm-mac.tar.gz" "$BUILD_ARTIFACTSTAGINGDIRECTORY/" + displayName: Build swiftc + timeoutInMinutes: 0 + workingDirectory: $(Pipeline.Workspace)/swift-source + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: $(Build.ArtifactStagingDirectory) + artifactName: swiftwasm-sdk-macos - job: UploadArtifacts dependsOn: - Ubuntu - - macOS + - macOS_Ninja steps: - task: DownloadBuildArtifacts@0 inputs: From 00801dd2ce7044591f89b4bbcda6abe7bcffd3a6 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Tue, 15 Oct 2019 13:38:17 +0900 Subject: [PATCH 23/23] Move setting CMAKE_OSX_SYSROOT line --- stdlib/public/runtime/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/stdlib/public/runtime/CMakeLists.txt b/stdlib/public/runtime/CMakeLists.txt index d3a267efa4fd7..8bf8f06ef12ff 100644 --- a/stdlib/public/runtime/CMakeLists.txt +++ b/stdlib/public/runtime/CMakeLists.txt @@ -197,15 +197,15 @@ add_swift_target_library(swiftImageRegistrationObjectCOFF TARGET_SDKS ${COFF_SDKS} INSTALL_IN_COMPONENT none) +if(WASM IN_LIST SWIFT_CONFIGURED_SDKS) + set(CMAKE_OSX_SYSROOT "${SWIFT_WASM_WASI_SDK_PATH}") +endif() + foreach(sdk ${SWIFT_CONFIGURED_SDKS}) foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES}) set(arch_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${arch}") set(arch_suffix "${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}") - if(sdk STREQUAL WASM) - set(CMAKE_OSX_SYSROOT "${SWIFT_WASM_WASI_SDK_PATH}") - endif() - if("${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "ELF" OR "${SWIFT_SDK_${sdk}_OBJECT_FORMAT}" STREQUAL "COFF") # TODO(compnerd) switch to the generator expression when cmake is upgraded