Overlays: The dependencies right now are approximate, and when new overlays are

added the build breaks. There's already a tool to get proper
dependencies, `utils/find-overlay-dependencies.sh`, so this patch
allows that tool to update the `CMakeLists.txt` files in-place.

Also it adds a line to the `CMakeLists.txt` files for each SDK so that the tool works.
This commit is contained in:
Doug Coleman
2016-09-26 08:32:58 -07:00
parent cb15745b9c
commit 6c6f30b6af
24 changed files with 131 additions and 54 deletions

View File

@@ -3,6 +3,8 @@ add_swift_library(swiftAVFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
SWIFT_MODULE_DEPENDS Foundation CoreMedia QuartzCore
SWIFT_MODULE_DEPENDS_OSX AppKit
SWIFT_MODULE_DEPENDS Foundation CoreMedia
SWIFT_MODULE_DEPENDS_OSX AppKit CoreAudio CoreData CoreGraphics CoreImage CoreMedia Dispatch Foundation IOKit ObjectiveC os QuartzCore XPC
SWIFT_MODULE_DEPENDS_IOS CoreAudio CoreGraphics CoreMedia Dispatch Foundation ObjectiveC os QuartzCore
SWIFT_MODULE_DEPENDS_TVOS CoreAudio CoreGraphics CoreMedia Dispatch Foundation ObjectiveC os QuartzCore
FRAMEWORK_DEPENDS AVFoundation)

View File

@@ -4,5 +4,6 @@ add_swift_library(swiftAssetsLibrary ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR
SWIFT_MODULE_DEPENDS ObjectiveC Foundation CoreGraphics
SWIFT_MODULE_DEPENDS_IOS CoreGraphics Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS AssetsLibrary)

View File

@@ -6,4 +6,5 @@ add_swift_library(swiftCallKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_O
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation
SWIFT_MODULE_DEPENDS_IOS Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_WEAK CallKit)

View File

@@ -5,6 +5,8 @@ add_swift_library(swiftCloudKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation CoreLocation
SWIFT_MODULE_DEPENDS_OSX Contacts
SWIFT_MODULE_DEPENDS_IOS Contacts
SWIFT_MODULE_DEPENDS_OSX Contacts CoreGraphics CoreLocation Dispatch Foundation IOKit ObjectiveC os
SWIFT_MODULE_DEPENDS_IOS Contacts CoreLocation Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_TVOS CoreLocation Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_WATCHOS CoreLocation Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_WEAK CloudKit)

View File

@@ -5,4 +5,6 @@ add_swift_library(swiftContacts ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation
SWIFT_MODULE_DEPENDS_IOS Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_WATCHOS Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_WEAK Contacts)

View File

@@ -6,7 +6,10 @@ add_swift_library(swiftCoreAudio ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Dispatch
SWIFT_MODULE_DEPENDS_OSX IOKit
SWIFT_MODULE_DEPENDS_OSX Dispatch ObjectiveC os
SWIFT_MODULE_DEPENDS_IOS Dispatch ObjectiveC os
SWIFT_MODULE_DEPENDS_TVOS Dispatch ObjectiveC os
SWIFT_MODULE_DEPENDS_WATCHOS Dispatch ObjectiveC os
# Also depends on: CoreFoundation
FRAMEWORK_DEPENDS CoreAudio)

View File

@@ -8,6 +8,6 @@ add_swift_library(swiftCoreGraphics ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
SWIFT_MODULE_DEPENDS ObjectiveC Dispatch Darwin
SWIFT_MODULE_DEPENDS_OSX IOKit XPC
SWIFT_MODULE_DEPENDS_OSX Dispatch IOKit ObjectiveC os
FRAMEWORK_DEPENDS CoreGraphics)

View File

@@ -5,8 +5,8 @@ add_swift_library(swiftCoreImage ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation ObjectiveC
SWIFT_MODULE_DEPENDS_IOS CoreMedia
SWIFT_MODULE_DEPENDS_TVOS CoreMedia
SWIFT_MODULE_DEPENDS_IOS CoreGraphics Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_OSX QuartzCore
FRAMEWORK_DEPENDS_IOS_TVOS CoreImage)

View File

@@ -7,6 +7,8 @@ add_swift_library(swiftCoreMedia ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS Dispatch CoreAudio CoreGraphics Foundation
SWIFT_MODULE_DEPENDS_OSX AppKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreAudio CoreData CoreGraphics CoreImage Dispatch Foundation IOKit ObjectiveC os QuartzCore XPC
SWIFT_MODULE_DEPENDS_IOS CoreAudio CoreGraphics Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_TVOS CoreAudio CoreGraphics Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS CoreMedia)

View File

@@ -38,6 +38,6 @@ add_swift_library(swiftFoundation ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SD
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
SWIFT_MODULE_DEPENDS ObjectiveC CoreGraphics Dispatch os
SWIFT_MODULE_DEPENDS_OSX XPC
SWIFT_MODULE_DEPENDS_OSX CoreGraphics Dispatch IOKit ObjectiveC os
FRAMEWORK_DEPENDS Foundation)

View File

@@ -5,8 +5,8 @@ add_swift_library(swiftGLKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVE
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation simd
SWIFT_MODULE_DEPENDS_OSX AppKit
SWIFT_MODULE_DEPENDS_IOS UIKit
SWIFT_MODULE_DEPENDS_TVOS UIKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreData CoreGraphics CoreImage Dispatch Foundation IOKit ObjectiveC os QuartzCore simd XPC
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore simd UIKit
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore simd UIKit
FRAMEWORK_DEPENDS GLKit)

View File

@@ -6,7 +6,7 @@ add_swift_library(swiftGameplayKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_S
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation simd GLKit SpriteKit
SWIFT_MODULE_DEPENDS_OSX AppKit
SWIFT_MODULE_DEPENDS_IOS UIKit
SWIFT_MODULE_DEPENDS_TVOS UIKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreData CoreGraphics CoreImage Dispatch Foundation GLKit IOKit ObjectiveC os QuartzCore simd SpriteKit XPC
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd SpriteKit UIKit
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd SpriteKit UIKit
FRAMEWORK_DEPENDS_WEAK GameplayKit)

View File

@@ -5,7 +5,7 @@ add_swift_library(swiftHomeKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_O
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation
SWIFT_MODULE_DEPENDS_IOS UIKit
SWIFT_MODULE_DEPENDS_TVOS UIKit
SWIFT_MODULE_DEPENDS_WATCHOS UIKit
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore UIKit
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore UIKit
SWIFT_MODULE_DEPENDS_WATCHOS CoreGraphics Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_WEAK HomeKit)

View File

@@ -18,6 +18,6 @@ add_swift_library(swiftIntents ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_O
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation CoreLocation
SWIFT_MODULE_DEPENDS_OSX AppKit
SWIFT_MODULE_DEPENDS_IOS UIKit
SWIFT_MODULE_DEPENDS_OSX CoreGraphics CoreLocation Dispatch Foundation IOKit ObjectiveC os
SWIFT_MODULE_DEPENDS_IOS CoreLocation Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS_WEAK Intents)

View File

@@ -3,8 +3,8 @@ add_swift_library(swiftMapKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OV
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
SWIFT_MODULE_DEPENDS ObjectiveC Foundation CoreLocation
SWIFT_MODULE_DEPENDS_IOS QuartzCore CoreImage UIKit
SWIFT_MODULE_DEPENDS_OSX QuartzCore CoreImage AppKit
SWIFT_MODULE_DEPENDS_TVOS QuartzCore CoreImage UIKit
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage CoreLocation Dispatch Foundation ObjectiveC os QuartzCore UIKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreData CoreGraphics CoreImage CoreLocation Dispatch Foundation IOKit ObjectiveC os QuartzCore XPC
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage CoreLocation Dispatch Foundation ObjectiveC os QuartzCore UIKit
FRAMEWORK_DEPENDS MapKit)

View File

@@ -5,7 +5,7 @@ add_swift_library(swiftPhotos ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OV
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation CoreLocation CoreImage CoreMedia
SWIFT_MODULE_DEPENDS_IOS UIKit AVFoundation
SWIFT_MODULE_DEPENDS_TVOS UIKit AVFoundation
SWIFT_MODULE_DEPENDS_IOS AVFoundation CoreAudio CoreGraphics CoreImage CoreLocation CoreMedia Dispatch Foundation ObjectiveC os QuartzCore UIKit
SWIFT_MODULE_DEPENDS_TVOS AVFoundation CoreAudio CoreGraphics CoreImage CoreLocation CoreMedia Dispatch Foundation ObjectiveC os QuartzCore UIKit
FRAMEWORK_DEPENDS Photos)

View File

@@ -4,7 +4,9 @@ add_swift_library(swiftQuartzCore ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SD
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR
SWIFT_MODULE_DEPENDS ObjectiveC Foundation CoreGraphics
SWIFT_MODULE_DEPENDS_OSX CoreImage
SWIFT_MODULE_DEPENDS_OSX CoreGraphics CoreImage Dispatch Foundation IOKit ObjectiveC os XPC
SWIFT_MODULE_DEPENDS_IOS CoreGraphics Dispatch Foundation ObjectiveC os
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics Dispatch Foundation ObjectiveC os
FRAMEWORK_DEPENDS QuartzCore)

View File

@@ -1,9 +1,3 @@
SET(SWIFT_SCENEKIT_DEPENDENCIES_NON_WATCHOS
Foundation
GLKit
simd
CoreImage)
add_swift_library(swiftSceneKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
SceneKit.swift.gyb
Thunks.mm
@@ -11,9 +5,10 @@ add_swift_library(swiftSceneKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS_OSX ${SWIFT_SCENEKIT_DEPENDENCIES_NON_WATCHOS} AppKit
SWIFT_MODULE_DEPENDS_IOS ${SWIFT_SCENEKIT_DEPENDENCIES_NON_WATCHOS} UIKit
SWIFT_MODULE_DEPENDS_TVOS ${SWIFT_SCENEKIT_DEPENDENCIES_NON_WATCHOS} UIKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreData CoreGraphics CoreImage Dispatch Foundation GLKit IOKit ObjectiveC os QuartzCore simd XPC
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd UIKit
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd UIKit
SWIFT_MODULE_DEPENDS_WATCHOS CoreGraphics Dispatch Foundation ObjectiveC os simd
SWIFT_MODULE_DEPENDS Foundation simd
FRAMEWORK_DEPENDS_WEAK SceneKit)

View File

@@ -6,9 +6,9 @@ add_swift_library(swiftSpriteKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS OSX IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation simd
SWIFT_MODULE_DEPENDS_OSX AppKit GLKit
SWIFT_MODULE_DEPENDS_IOS UIKit GLKit
SWIFT_MODULE_DEPENDS_TVOS UIKit GLKit
SWIFT_MODULE_DEPENDS_WATCHOS UIKit
SWIFT_MODULE_DEPENDS_OSX AppKit CoreData CoreGraphics CoreImage Dispatch Foundation GLKit IOKit ObjectiveC os QuartzCore simd XPC
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd UIKit
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation GLKit ObjectiveC os QuartzCore simd UIKit
SWIFT_MODULE_DEPENDS_WATCHOS CoreGraphics Dispatch Foundation ObjectiveC os simd UIKit
FRAMEWORK_DEPENDS SpriteKit)

View File

@@ -7,8 +7,9 @@ add_swift_library(swiftUIKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVE
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR TVOS TVOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS ObjectiveC Foundation
SWIFT_MODULE_DEPENDS_IOS CoreImage QuartzCore
SWIFT_MODULE_DEPENDS_TVOS CoreImage QuartzCore
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore
SWIFT_MODULE_DEPENDS_TVOS CoreGraphics CoreImage Dispatch Foundation ObjectiveC os QuartzCore
SWIFT_MODULE_DEPENDS_WATCHOS CoreGraphics Dispatch Foundation ObjectiveC os
SWIFT_COMPILE_FLAGS_WATCHOS -Xfrontend -disable-autolink-framework -Xfrontend CoreText
FRAMEWORK_DEPENDS UIKit)

View File

@@ -5,7 +5,8 @@ add_swift_library(swiftWatchKit ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
TARGET_SDKS IOS IOS_SIMULATOR WATCHOS WATCHOS_SIMULATOR
SWIFT_MODULE_DEPENDS Foundation UIKit CoreGraphics MapKit
SWIFT_MODULE_DEPENDS_WATCHOS HomeKit SceneKit
SWIFT_MODULE_DEPENDS_IOS CoreGraphics CoreImage CoreLocation Dispatch Foundation MapKit ObjectiveC os QuartzCore UIKit
SWIFT_MODULE_DEPENDS_WATCHOS CoreGraphics CoreLocation Dispatch Foundation HomeKit MapKit ObjectiveC os SceneKit simd UIKit
FRAMEWORK_DEPENDS_WEAK WatchKit
SWIFT_COMPILE_FLAGS_WATCHOS -Xfrontend -disable-autolink-framework -Xfrontend CoreText
)

View File

@@ -5,4 +5,5 @@ add_swift_library(swiftos ${SWIFT_SDK_OVERLAY_LIBRARY_BUILD_TYPES} IS_SDK_OVERLA
SWIFT_COMPILE_FLAGS "${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}"
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
SWIFT_MODULE_DEPENDS ObjectiveC Dispatch
SWIFT_MODULE_DEPENDS_OSX XPC)
SWIFT_MODULE_DEPENDS_OSX Dispatch ObjectiveC XPC
)

View File

@@ -0,0 +1,33 @@
#!/bin/bash
#===--- find-overlay-dependencies-loop.sh - driver for find-overlay-dependency.sh---===#
#
## This source file is part of the Swift.org open source project
##
## Copyright (c) 2016 Apple Inc. and the Swift project authors
## Licensed under Apache License v2.0 with Runtime Library Exception
##
## See http://swift.org/LICENSE.txt for license information
## See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
#
#===------------------------------------------------------------------------===#
SCRIPT="$(dirname "$0")/find-overlay-dependencies.sh"
# `update` edits the cmake file in-place; `print` just prints to console
function usage() {
echo 'usage:' $0 'update|print' >&2
exit 1
}
case $# in
1) if [[ $1 != 'update' && $1 != 'print' ]]; then
usage
fi ;;
*)
usage ;;
esac
# Don't update XCTest
for overlay in $(find ./stdlib/public/SDK/ -depth 1 -type d ! -name XCTest -exec basename \{\} \;); do
$SCRIPT $overlay $1
done

View File

@@ -14,31 +14,58 @@
# This script uses zsh for its associative array support, because it is only
# intended to be run on macOS and macOS bash is very old.
if [[ $# -ne 1 ]]; then
echo 'usage:' $0 '<module-name>' >&2
function usage() {
echo 'usage:' $0 '<module-name> [update|print]' >&2
exit 1
fi
}
# `update` edits the cmake file in-place; `print` just prints to console
UPDATE_CMAKE=0
case $# in
1) ;;
2) if [[ $2 == 'update' ]]; then
UPDATE_CMAKE=1
elif [[ $2 != 'print' ]]; then
usage
fi ;;
*)
usage ;;
esac
OVERLAYS_PATH=$(dirname "$0")/../stdlib/public/SDK/
CMAKE_PATH=$OVERLAYS_PATH/$1/CMakeLists.txt
# Add both directions to associative array
typeset -A CUSTOM_NAMED_MODULES
CUSTOM_NAMED_MODULES[ObjectiveC]=objc
CUSTOM_NAMED_MODULES[objc]=ObjectiveC
CUSTOM_NAMED_MODULES[Dispatch]=dispatch
CUSTOM_NAMED_MODULES[dispatch]=Dispatch
CUSTOM_NAMED_MODULES[XPC]=xpc
CUSTOM_NAMED_MODULES[xpc]=XPC
# Exclude XCTest/ and CMakeLists.txt
ALL_OVERLAYS=()
for overlay in $(ls "$OVERLAYS_PATH"); do
for overlay in $(find "$OVERLAYS_PATH" -depth 1 -type d ! -name XCTest -exec basename \{\} \;); do
ALL_OVERLAYS+=${CUSTOM_NAMED_MODULES[$overlay]-$overlay}
done
typeset -A SDKS
SDKS[macosx]=x86_64
SDKS[iphoneos]=arm64
SDKS[appletvos]=arm64
SDKS[watchos]=armv7k
SDKS[macosx]="x86_64"
SDKS[iphoneos]="arm64"
SDKS[appletvos]="arm64"
SDKS[watchos]="armv7k"
typeset -A CMAKE_DEPENDS_NAME
CMAKE_DEPENDS_NAME[macosx]="SWIFT_MODULE_DEPENDS_OSX"
CMAKE_DEPENDS_NAME[iphoneos]="SWIFT_MODULE_DEPENDS_IOS"
CMAKE_DEPENDS_NAME[appletvos]="SWIFT_MODULE_DEPENDS_TVOS"
CMAKE_DEPENDS_NAME[watchos]="SWIFT_MODULE_DEPENDS_WATCHOS"
echo $1
for sdk in ${(k)SDKS}; do
arch=$SDKS[$sdk]
DEPENDS_ON=()
printf "%s:\n\t" "$sdk"
deps=$(echo "@import $1;" | xcrun -sdk $sdk clang -arch $arch -x objective-c - -M -fmodules 2>/dev/null)
for overlay in $ALL_OVERLAYS; do
@@ -46,7 +73,11 @@ for sdk in ${(k)SDKS}; do
egrep -v 'module.(module)?map' |
egrep -v "\b${CUSTOM_NAMED_MODULES[$1]-$1}\b" |
egrep -q "\b$overlay\b") &&
printf "%s " $overlay
DEPENDS_ON+=${CUSTOM_NAMED_MODULES[$overlay]-$overlay}
done
echo # newline
echo " $DEPENDS_ON"
if [[ $UPDATE_CMAKE == 1 ]]; then
perl -pi -e "s/^ $CMAKE_DEPENDS_NAME[$sdk].*$/ $CMAKE_DEPENDS_NAME[$sdk] $DEPENDS_ON/" $CMAKE_PATH
fi
done
echo # newline