Skip to content

Commit 4d59a3c

Browse files
authored
Merge pull request #25376 from apple/tensorflow-merge
Merging swift-DEVELOPMENT-SNAPSHOT-2019-06-06-a into tensorflow
2 parents 3e49b37 + 52c50a7 commit 4d59a3c

File tree

335 files changed

+4202
-2387
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

335 files changed

+4202
-2387
lines changed

CMakeLists.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,17 @@ option(SWIFT_STDLIB_ENABLE_SIB_TARGETS
227227
"Should we generate sib targets for the stdlib or not?"
228228
FALSE)
229229

230+
231+
set(SWIFT_DARWIN_SUPPORTED_ARCHS "" CACHE STRING
232+
"Semicolon-separated list of architectures to configure on Darwin platforms. \
233+
If left empty all default architectures are configured.")
234+
235+
set(SWIFT_DARWIN_MODULE_ARCHS "" CACHE STRING
236+
"Semicolon-separated list of architectures to configure Swift module-only \
237+
targets on Darwin platforms. These targets are in addition to the full \
238+
library targets.")
239+
240+
230241
#
231242
# User-configurable Android specific options.
232243
#

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Please make sure you use Python 2.x. Python 3.x is not supported currently.
3030

3131
#### macOS
3232

33-
To build for macOS, you need [Xcode 10.2 beta](https://developer.apple.com/xcode/downloads/).
33+
To build for macOS, you need [Xcode 11 beta](https://developer.apple.com/xcode/downloads/).
3434
The required version of Xcode changes frequently, and is often a beta release.
3535
Check this document for the current required version.
3636

apinotes/Accelerate.apinotes

Lines changed: 0 additions & 61 deletions
This file was deleted.

apinotes/CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
set(sources
2-
Accelerate.apinotes
32
Dispatch.apinotes
4-
ScriptingBridge.apinotes
53
os.apinotes
64
)
75

apinotes/ScriptingBridge.apinotes

Lines changed: 0 additions & 5 deletions
This file was deleted.

benchmark/single-source/RandomValues.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public func run_RandomIntegersLCG(_ N: Int) {
6363
for _ in 0 ..< 100_000 {
6464
x &+= Int64.random(in: 0...10_000, using: &generator)
6565
}
66-
CheckResults(x == 498214315)
66+
blackHole(x)
6767
}
6868
}
6969

cmake/modules/AddSwift.cmake

Lines changed: 120 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,11 @@ function(_add_variant_c_compile_flags)
303303
"-fcoverage-mapping")
304304
endif()
305305

306+
if((CFLAGS_ARCH STREQUAL "armv7" OR CFLAGS_ARCH STREQUAL "aarch64") AND
307+
(CFLAGS_SDK STREQUAL "LINUX" OR CFLAGS_SDK STREQUAL "ANDROID"))
308+
list(APPEND result -funwind-tables)
309+
endif()
310+
306311
if("${CFLAGS_SDK}" STREQUAL "ANDROID")
307312
swift_android_libcxx_include_paths(CFLAGS_CXX_INCLUDES)
308313
swift_android_include_for_arch("${CFLAGS_ARCH}" "${CFLAGS_ARCH}_INCLUDE")
@@ -465,6 +470,10 @@ function(_add_variant_link_flags)
465470
set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a")
466471
elseif("${LFLAGS_ARCH}" MATCHES aarch64)
467472
set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/arm64-v8a")
473+
elseif("${LFLAGS_ARCH}" MATCHES i686)
474+
set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/x86")
475+
elseif("${LFLAGS_ARCH}" MATCHES x86_64)
476+
set(android_libcxx_path "${SWIFT_ANDROID_NDK_PATH}/sources/cxx-stl/llvm-libc++/libs/x86_64")
468477
else()
469478
message(SEND_ERROR "unknown architecture (${LFLAGS_ARCH}) for android")
470479
endif()
@@ -738,7 +747,8 @@ function(_add_swift_library_single target name)
738747
OBJECT_LIBRARY
739748
SHARED
740749
STATIC
741-
TARGET_LIBRARY)
750+
TARGET_LIBRARY
751+
INSTALL_WITH_SHARED)
742752
set(SWIFTLIB_SINGLE_single_parameter_options
743753
ARCHITECTURE
744754
DEPLOYMENT_VERSION_IOS
@@ -933,6 +943,17 @@ function(_add_swift_library_single target name)
933943
endif()
934944
endif()
935945

946+
# Only build the modules for any arch listed in the *_MODULE_ARCHITECTURES.
947+
if(SWIFTLIB_SINGLE_SDK IN_LIST SWIFT_APPLE_PLATFORMS
948+
AND SWIFTLIB_SINGLE_ARCHITECTURE IN_LIST SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_MODULE_ARCHITECTURES)
949+
# Create dummy target to hook up the module target dependency.
950+
add_custom_target("${target}"
951+
DEPENDS
952+
"${swift_module_dependency_target}")
953+
954+
return()
955+
endif()
956+
936957
set(SWIFTLIB_INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS)
937958
foreach(object_library ${SWIFTLIB_SINGLE_INCORPORATE_OBJECT_LIBRARIES})
938959
list(APPEND SWIFTLIB_INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS
@@ -1118,18 +1139,24 @@ function(_add_swift_library_single target name)
11181139
BINARY_DIR ${SWIFT_RUNTIME_OUTPUT_INTDIR}
11191140
LIBRARY_DIR ${SWIFT_LIBRARY_OUTPUT_INTDIR})
11201141

1142+
if(SWIFTLIB_INSTALL_WITH_SHARED)
1143+
set(swift_lib_dir ${SWIFTLIB_DIR})
1144+
else()
1145+
set(swift_lib_dir ${SWIFTSTATICLIB_DIR})
1146+
endif()
1147+
11211148
foreach(config ${CMAKE_CONFIGURATION_TYPES})
11221149
string(TOUPPER ${config} config_upper)
11231150
escape_path_for_xcode(
1124-
"${config}" "${SWIFTSTATICLIB_DIR}" config_lib_dir)
1151+
"${config}" "${swift_lib_dir}" config_lib_dir)
11251152
set_target_properties(${target_static} PROPERTIES
11261153
LIBRARY_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR}
11271154
ARCHIVE_OUTPUT_DIRECTORY_${config_upper} ${config_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR})
11281155
endforeach()
11291156

11301157
set_target_properties(${target_static} PROPERTIES
1131-
LIBRARY_OUTPUT_DIRECTORY ${SWIFTSTATICLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}
1132-
ARCHIVE_OUTPUT_DIRECTORY ${SWIFTSTATICLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR})
1158+
LIBRARY_OUTPUT_DIRECTORY ${swift_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR}
1159+
ARCHIVE_OUTPUT_DIRECTORY ${swift_lib_dir}/${SWIFTLIB_SINGLE_SUBDIR})
11331160
endif()
11341161

11351162
set_target_properties(${target}
@@ -1380,8 +1407,14 @@ function(_add_swift_library_single target name)
13801407
set_property(TARGET "${target_static}" APPEND_STRING PROPERTY
13811408
COMPILE_FLAGS " ${c_compile_flags}")
13821409
# FIXME: The fallback paths here are going to be dynamic libraries.
1410+
1411+
if(SWIFTLIB_INSTALL_WITH_SHARED)
1412+
set(search_base_dir ${SWIFTLIB_DIR})
1413+
else()
1414+
set(search_base_dir ${SWIFTSTATICLIB_DIR})
1415+
endif()
13831416
set(library_search_directories
1384-
"${SWIFTSTATICLIB_DIR}/${SWIFTLIB_SINGLE_SUBDIR}"
1417+
"${search_base_dir}/${SWIFTLIB_SINGLE_SUBDIR}"
13851418
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFTLIB_SINGLE_SUBDIR}"
13861419
"${SWIFT_NATIVE_SWIFT_TOOLS_PATH}/../lib/swift/${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}")
13871420
swift_target_link_search_directories("${target_static}" "${library_search_directories}")
@@ -1510,6 +1543,7 @@ endfunction()
15101543
# [IS_STDLIB]
15111544
# [IS_STDLIB_CORE]
15121545
# [TARGET_LIBRARY]
1546+
# [INSTALL_WITH_SHARED]
15131547
# INSTALL_IN_COMPONENT comp
15141548
# DEPLOYMENT_VERSION_OSX version
15151549
# DEPLOYMENT_VERSION_IOS version
@@ -1616,6 +1650,9 @@ endfunction()
16161650
# DEPLOYMENT_VERSION_WATCHOS
16171651
# The minimum deployment version to build for if this is an WATCHOS library.
16181652
#
1653+
# INSTALL_WITH_SHARED
1654+
# Install a static library target alongside shared libraries
1655+
#
16191656
# source1 ...
16201657
# Sources to add into this library.
16211658
function(add_swift_target_library name)
@@ -1630,7 +1667,8 @@ function(add_swift_target_library name)
16301667
OBJECT_LIBRARY
16311668
SHARED
16321669
STATIC
1633-
TARGET_LIBRARY)
1670+
TARGET_LIBRARY
1671+
INSTALL_WITH_SHARED)
16341672
set(SWIFTLIB_single_parameter_options
16351673
DEPLOYMENT_VERSION_IOS
16361674
DEPLOYMENT_VERSION_OSX
@@ -1704,7 +1742,6 @@ function(add_swift_target_library name)
17041742
if("${SWIFTLIB_TARGET_SDKS}" STREQUAL "")
17051743
set(SWIFTLIB_TARGET_SDKS ${SWIFT_SDKS})
17061744
endif()
1707-
list_replace(SWIFTLIB_TARGET_SDKS ALL_POSIX_PLATFORMS "ALL_APPLE_PLATFORMS;ANDROID;CYGWIN;FREEBSD;LINUX;HAIKU")
17081745
list_replace(SWIFTLIB_TARGET_SDKS ALL_APPLE_PLATFORMS "${SWIFT_APPLE_PLATFORMS}")
17091746

17101747
# All Swift code depends on the standard library, except for the standard
@@ -1858,8 +1895,13 @@ function(add_swift_target_library name)
18581895
list(APPEND swiftlib_link_flags_all "-Wl,-z,defs")
18591896
endif()
18601897

1898+
set(sdk_supported_archs
1899+
${SWIFT_SDK_${sdk}_ARCHITECTURES}
1900+
${SWIFT_SDK_${sdk}_MODULE_ARCHITECTURES})
1901+
list(REMOVE_DUPLICATES sdk_supported_archs)
1902+
18611903
# For each architecture supported by this SDK
1862-
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
1904+
foreach(arch ${sdk_supported_archs})
18631905
# Configure variables for this subdirectory.
18641906
set(VARIANT_SUFFIX "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
18651907
set(VARIANT_NAME "${name}${VARIANT_SUFFIX}")
@@ -1915,6 +1957,7 @@ function(add_swift_target_library name)
19151957
${SWIFTLIB_SHARED_keyword}
19161958
${SWIFTLIB_STATIC_keyword}
19171959
${SWIFTLIB_OBJECT_LIBRARY_keyword}
1960+
${SWIFTLIB_INSTALL_WITH_SHARED_keyword}
19181961
${SWIFTLIB_SOURCES}
19191962
MODULE_TARGET ${MODULE_VARIANT_NAME}
19201963
SDK ${sdk}
@@ -1980,11 +2023,38 @@ function(add_swift_target_library name)
19802023
endforeach()
19812024
endif()
19822025

1983-
# Note this thin library.
1984-
list(APPEND THIN_INPUT_TARGETS ${VARIANT_NAME})
2026+
if(arch IN_LIST SWIFT_SDK_${sdk}_ARCHITECTURES)
2027+
# Note this thin library.
2028+
list(APPEND THIN_INPUT_TARGETS ${VARIANT_NAME})
2029+
endif()
19852030
endif()
19862031
endforeach()
19872032

2033+
# Configure module-only targets
2034+
if(NOT SWIFT_SDK_${sdk}_ARCHITECTURES
2035+
AND SWIFT_SDK_${sdk}_MODULE_ARCHITECTURES)
2036+
set(_target "${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
2037+
2038+
# Create unified sdk target
2039+
add_custom_target("${_target}")
2040+
2041+
foreach(_arch ${SWIFT_SDK_${sdk}_MODULE_ARCHITECTURES})
2042+
set(_variant_suffix "-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${_arch}")
2043+
set(_module_variant_name "${name}-swiftmodule-${_variant_suffix}")
2044+
2045+
add_dependencies("${_target}" ${_module_variant_name})
2046+
2047+
# Add Swift standard library targets as dependencies to the top-level
2048+
# convenience target.
2049+
if(TARGET "swift-stdlib${_variant_suffix}")
2050+
add_dependencies("swift-stdlib${_variant_suffix}"
2051+
"${_target}")
2052+
endif()
2053+
endforeach()
2054+
2055+
return()
2056+
endif()
2057+
19882058
if(NOT SWIFTLIB_OBJECT_LIBRARY)
19892059
# Determine the name of the universal library.
19902060
if(SWIFTLIB_SHARED)
@@ -2029,7 +2099,7 @@ function(add_swift_target_library name)
20292099
set(resource_dir_sdk_subdir "${SWIFT_SDK_${sdk}_LIB_SUBDIR}")
20302100
precondition(resource_dir_sdk_subdir)
20312101

2032-
if(SWIFTLIB_SHARED)
2102+
if(SWIFTLIB_SHARED OR SWIFTLIB_INSTALL_WITH_SHARED)
20332103
set(resource_dir "swift")
20342104
set(file_permissions
20352105
OWNER_READ OWNER_WRITE OWNER_EXECUTE
@@ -2075,12 +2145,35 @@ function(add_swift_target_library name)
20752145
endforeach()
20762146
endif()
20772147

2078-
swift_is_installing_component("${SWIFTLIB_INSTALL_IN_COMPONENT}" is_installing)
2079-
if(NOT is_installing)
2080-
set_property(GLOBAL APPEND PROPERTY SWIFT_BUILDTREE_EXPORTS ${VARIANT_NAME})
2081-
else()
2082-
set_property(GLOBAL APPEND PROPERTY SWIFT_EXPORTS ${VARIANT_NAME})
2083-
endif()
2148+
swift_is_installing_component(
2149+
"${SWIFTLIB_INSTALL_IN_COMPONENT}"
2150+
is_installing)
2151+
2152+
# Add the arch-specific library targets to the global exports.
2153+
foreach(arch ${SWIFT_SDK_${sdk}_ARCHITECTURES})
2154+
set(_variant_name "${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
2155+
if(NOT TARGET "${_variant_name}")
2156+
continue()
2157+
endif()
2158+
2159+
if(is_installing)
2160+
set_property(GLOBAL APPEND
2161+
PROPERTY SWIFT_EXPORTS ${_variant_name})
2162+
else()
2163+
set_property(GLOBAL APPEND
2164+
PROPERTY SWIFT_BUILDTREE_EXPORTS ${_variant_name})
2165+
endif()
2166+
endforeach()
2167+
2168+
# Add the swiftmodule-only targets to the lipo target depdencies.
2169+
foreach(arch ${SWIFT_SDK_${sdk}_MODULE_ARCHITECTURES})
2170+
set(_variant_name "${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-${arch}")
2171+
if(NOT TARGET "${_variant_name}")
2172+
continue()
2173+
endif()
2174+
2175+
add_dependencies("${lipo_target}" "${_variant_name}")
2176+
endforeach()
20842177

20852178
# If we built static variants of the library, create a lipo target for
20862179
# them.
@@ -2091,10 +2184,18 @@ function(add_swift_target_library name)
20912184
list(APPEND THIN_INPUT_TARGETS_STATIC "${TARGET}-static")
20922185
endforeach()
20932186

2187+
if(SWIFTLIB_INSTALL_WITH_SHARED)
2188+
set(install_subdir "swift")
2189+
set(universal_subdir ${SWIFTLIB_DIR})
2190+
else()
2191+
set(install_subdir "swift_static")
2192+
set(universal_subdir ${SWIFTSTATICLIB_DIR})
2193+
endif()
2194+
20942195
set(lipo_target_static
20952196
"${name}-${SWIFT_SDK_${sdk}_LIB_SUBDIR}-static")
20962197
set(UNIVERSAL_LIBRARY_NAME
2097-
"${SWIFTSTATICLIB_DIR}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${name}${CMAKE_STATIC_LIBRARY_SUFFIX}")
2198+
"${universal_subdir}/${SWIFT_SDK_${sdk}_LIB_SUBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${name}${CMAKE_STATIC_LIBRARY_SUFFIX}")
20982199
_add_swift_lipo_target(SDK
20992200
${sdk}
21002201
TARGET
@@ -2103,7 +2204,7 @@ function(add_swift_target_library name)
21032204
"${UNIVERSAL_LIBRARY_NAME}"
21042205
${THIN_INPUT_TARGETS_STATIC})
21052206
swift_install_in_component(FILES "${UNIVERSAL_LIBRARY_NAME}"
2106-
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/swift_static/${resource_dir_sdk_subdir}"
2207+
DESTINATION "lib${LLVM_LIBDIR_SUFFIX}/${install_subdir}/${resource_dir_sdk_subdir}"
21072208
PERMISSIONS
21082209
OWNER_READ OWNER_WRITE
21092210
GROUP_READ

0 commit comments

Comments
 (0)