mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[android] add an android NDK Swift overlay module, and use it instead of Glibc
This commit is contained in:
@@ -180,7 +180,7 @@ createClangArgs(const ASTContext &ctx, clang::driver::Driver &clangDriver) {
|
|||||||
|
|
||||||
static SmallVector<std::pair<std::string, std::string>, 2>
|
static SmallVector<std::pair<std::string, std::string>, 2>
|
||||||
getLibcFileMapping(ASTContext &ctx, StringRef modulemapFileName,
|
getLibcFileMapping(ASTContext &ctx, StringRef modulemapFileName,
|
||||||
std::optional<StringRef> maybeHeaderFileName,
|
std::optional<ArrayRef<StringRef>> maybeHeaderFileNames,
|
||||||
const llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> &vfs) {
|
const llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> &vfs) {
|
||||||
const llvm::Triple &triple = ctx.LangOpts.Target;
|
const llvm::Triple &triple = ctx.LangOpts.Target;
|
||||||
|
|
||||||
@@ -220,19 +220,21 @@ getLibcFileMapping(ASTContext &ctx, StringRef modulemapFileName,
|
|||||||
SmallVector<std::pair<std::string, std::string>, 2> vfsMappings{
|
SmallVector<std::pair<std::string, std::string>, 2> vfsMappings{
|
||||||
{std::string(injectedModuleMapPath), std::string(actualModuleMapPath)}};
|
{std::string(injectedModuleMapPath), std::string(actualModuleMapPath)}};
|
||||||
|
|
||||||
if (maybeHeaderFileName) {
|
if (maybeHeaderFileNames) {
|
||||||
|
for (const auto &filename : *maybeHeaderFileNames) {
|
||||||
// TODO: remove the SwiftGlibc.h header and reference all Glibc headers
|
// TODO: remove the SwiftGlibc.h header and reference all Glibc headers
|
||||||
// directly from the modulemap.
|
// directly from the modulemap.
|
||||||
Path actualHeaderPath = actualModuleMapPath;
|
Path actualHeaderPath = actualModuleMapPath;
|
||||||
llvm::sys::path::remove_filename(actualHeaderPath);
|
llvm::sys::path::remove_filename(actualHeaderPath);
|
||||||
llvm::sys::path::append(actualHeaderPath, maybeHeaderFileName.value());
|
llvm::sys::path::append(actualHeaderPath, filename);
|
||||||
|
|
||||||
Path injectedHeaderPath(libcDir);
|
Path injectedHeaderPath(libcDir);
|
||||||
llvm::sys::path::append(injectedHeaderPath, maybeHeaderFileName.value());
|
llvm::sys::path::append(injectedHeaderPath, filename);
|
||||||
|
|
||||||
vfsMappings.push_back(
|
vfsMappings.push_back(
|
||||||
{std::string(injectedHeaderPath), std::string(actualHeaderPath)});
|
{std::string(injectedHeaderPath), std::string(actualHeaderPath)});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return vfsMappings;
|
return vfsMappings;
|
||||||
}
|
}
|
||||||
@@ -552,9 +554,14 @@ ClangInvocationFileMapping swift::getClangInvocationFileMapping(
|
|||||||
} else if (triple.isMusl()) {
|
} else if (triple.isMusl()) {
|
||||||
libcFileMapping =
|
libcFileMapping =
|
||||||
getLibcFileMapping(ctx, "musl.modulemap", StringRef("SwiftMusl.h"), vfs);
|
getLibcFileMapping(ctx, "musl.modulemap", StringRef("SwiftMusl.h"), vfs);
|
||||||
|
} else if (triple.isAndroid()) {
|
||||||
|
// Android uses the android-specific module map that overlays the NDK.
|
||||||
|
StringRef headerFiles[] = {"SwiftAndroidNDK.h", "SwiftBionic.h"};
|
||||||
|
libcFileMapping =
|
||||||
|
getLibcFileMapping(ctx, "android.modulemap", headerFiles, vfs);
|
||||||
} else if (triple.isOSGlibc() || triple.isOSOpenBSD() ||
|
} else if (triple.isOSGlibc() || triple.isOSOpenBSD() ||
|
||||||
triple.isOSFreeBSD() || triple.isAndroid()) {
|
triple.isOSFreeBSD()) {
|
||||||
// Android/BSD/Linux Mappings
|
// BSD/Linux Mappings
|
||||||
libcFileMapping = getLibcFileMapping(ctx, "glibc.modulemap",
|
libcFileMapping = getLibcFileMapping(ctx, "glibc.modulemap",
|
||||||
StringRef("SwiftGlibc.h"), vfs);
|
StringRef("SwiftGlibc.h"), vfs);
|
||||||
|
|
||||||
|
|||||||
@@ -1757,6 +1757,9 @@ endfunction()
|
|||||||
# SWIFT_MODULE_DEPENDS_WASI
|
# SWIFT_MODULE_DEPENDS_WASI
|
||||||
# Swift modules this library depends on when built for WASI.
|
# Swift modules this library depends on when built for WASI.
|
||||||
#
|
#
|
||||||
|
# SWIFT_MODULE_DEPENDS_ANDROID
|
||||||
|
# Swift modules this library depends on when built for Android.
|
||||||
|
#
|
||||||
# FRAMEWORK_DEPENDS
|
# FRAMEWORK_DEPENDS
|
||||||
# System frameworks this library depends on.
|
# System frameworks this library depends on.
|
||||||
#
|
#
|
||||||
@@ -1880,6 +1883,7 @@ function(add_swift_target_library name)
|
|||||||
SWIFT_COMPILE_FLAGS_XROS
|
SWIFT_COMPILE_FLAGS_XROS
|
||||||
SWIFT_COMPILE_FLAGS_LINUX
|
SWIFT_COMPILE_FLAGS_LINUX
|
||||||
SWIFT_MODULE_DEPENDS
|
SWIFT_MODULE_DEPENDS
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID
|
||||||
SWIFT_MODULE_DEPENDS_CYGWIN
|
SWIFT_MODULE_DEPENDS_CYGWIN
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD
|
SWIFT_MODULE_DEPENDS_FREEBSD
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING
|
SWIFT_MODULE_DEPENDS_FREESTANDING
|
||||||
@@ -2091,12 +2095,15 @@ function(add_swift_target_library name)
|
|||||||
elseif(sdk STREQUAL "OPENBSD")
|
elseif(sdk STREQUAL "OPENBSD")
|
||||||
list(APPEND swiftlib_module_depends_flattened
|
list(APPEND swiftlib_module_depends_flattened
|
||||||
${SWIFTLIB_SWIFT_MODULE_DEPENDS_OPENBSD})
|
${SWIFTLIB_SWIFT_MODULE_DEPENDS_OPENBSD})
|
||||||
elseif(sdk STREQUAL "LINUX" OR sdk STREQUAL "ANDROID")
|
elseif(sdk STREQUAL "LINUX")
|
||||||
list(APPEND swiftlib_module_depends_flattened
|
list(APPEND swiftlib_module_depends_flattened
|
||||||
${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX})
|
${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX})
|
||||||
elseif(sdk STREQUAL "LINUX_STATIC")
|
elseif(sdk STREQUAL "LINUX_STATIC")
|
||||||
list(APPEND swiftlib_module_depends_flattened
|
list(APPEND swiftlib_module_depends_flattened
|
||||||
${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX_STATIC})
|
${SWIFTLIB_SWIFT_MODULE_DEPENDS_LINUX_STATIC})
|
||||||
|
elseif(sdk STREQUAL "ANDROID")
|
||||||
|
list(APPEND swiftlib_module_depends_flattened
|
||||||
|
${SWIFTLIB_SWIFT_MODULE_DEPENDS_ANDROID})
|
||||||
elseif(sdk STREQUAL "CYGWIN")
|
elseif(sdk STREQUAL "CYGWIN")
|
||||||
list(APPEND swiftlib_module_depends_flattened
|
list(APPEND swiftlib_module_depends_flattened
|
||||||
${SWIFTLIB_SWIFT_MODULE_DEPENDS_CYGWIN})
|
${SWIFTLIB_SWIFT_MODULE_DEPENDS_CYGWIN})
|
||||||
@@ -2920,6 +2927,7 @@ function(add_swift_target_executable name)
|
|||||||
DEPENDS
|
DEPENDS
|
||||||
LINK_LIBRARIES
|
LINK_LIBRARIES
|
||||||
SWIFT_MODULE_DEPENDS
|
SWIFT_MODULE_DEPENDS
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID
|
||||||
SWIFT_MODULE_DEPENDS_CYGWIN
|
SWIFT_MODULE_DEPENDS_CYGWIN
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD
|
SWIFT_MODULE_DEPENDS_FREEBSD
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING
|
SWIFT_MODULE_DEPENDS_FREESTANDING
|
||||||
@@ -3030,12 +3038,15 @@ function(add_swift_target_executable name)
|
|||||||
elseif(sdk STREQUAL "OPENBSD")
|
elseif(sdk STREQUAL "OPENBSD")
|
||||||
list(APPEND swiftexe_module_depends_flattened
|
list(APPEND swiftexe_module_depends_flattened
|
||||||
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_OPENBSD})
|
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_OPENBSD})
|
||||||
elseif(sdk STREQUAL "LINUX" OR sdk STREQUAL "ANDROID")
|
elseif(sdk STREQUAL "LINUX")
|
||||||
list(APPEND swiftexe_module_depends_flattened
|
list(APPEND swiftexe_module_depends_flattened
|
||||||
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_LINUX})
|
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_LINUX})
|
||||||
elseif(sdk STREQUAL "LINUX_STATIC")
|
elseif(sdk STREQUAL "LINUX_STATIC")
|
||||||
list(APPEND swiftexe_module_depends_flattened
|
list(APPEND swiftexe_module_depends_flattened
|
||||||
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_LINUX_STATIC})
|
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_LINUX_STATIC})
|
||||||
|
elseif(sdk STREQUAL "ANDROID")
|
||||||
|
list(APPEND swiftexe_module_depends_flattened
|
||||||
|
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_ANDROID})
|
||||||
elseif(sdk STREQUAL "CYGWIN")
|
elseif(sdk STREQUAL "CYGWIN")
|
||||||
list(APPEND swiftexe_module_depends_flattened
|
list(APPEND swiftexe_module_depends_flattened
|
||||||
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_CYGWIN})
|
${SWIFTEXE_TARGET_SWIFT_MODULE_DEPENDS_CYGWIN})
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ add_swift_target_library(swiftRuntimeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES
|
|||||||
ExclusivityTests.cpp
|
ExclusivityTests.cpp
|
||||||
|
|
||||||
SWIFT_MODULE_DEPENDS StdlibUnittest
|
SWIFT_MODULE_DEPENDS StdlibUnittest
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ add_swift_target_library(swiftStdlibCollectionUnittest ${SWIFT_STDLIB_LIBRARY_BU
|
|||||||
WriteBackMutableSlice.swift
|
WriteBackMutableSlice.swift
|
||||||
|
|
||||||
SWIFT_MODULE_DEPENDS StdlibUnittest
|
SWIFT_MODULE_DEPENDS StdlibUnittest
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ add_swift_target_library(swiftStdlibUnicodeUnittest ${SWIFT_STDLIB_LIBRARY_BUILD
|
|||||||
WordBreaking.swift
|
WordBreaking.swift
|
||||||
|
|
||||||
SWIFT_MODULE_DEPENDS StdlibUnittest
|
SWIFT_MODULE_DEPENDS StdlibUnittest
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ add_swift_target_library(swiftStdlibUnittest ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES}
|
|||||||
SWIFT_MODULE_DEPENDS_XROS ${swift_stdlib_unittest_darwin_dependencies}
|
SWIFT_MODULE_DEPENDS_XROS ${swift_stdlib_unittest_darwin_dependencies}
|
||||||
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_stdlib_unittest_darwin_dependencies}
|
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_stdlib_unittest_darwin_dependencies}
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ add_swift_target_library(swiftSwiftPrivate ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
|
|||||||
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_swiftprivate_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_swiftprivate_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_swiftprivate_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_swiftprivate_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif canImport(WASILibc)
|
#elseif canImport(WASILibc)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ add_swift_target_library(swiftSwiftPrivateLibcExtras ${SWIFT_STDLIB_LIBRARY_BUIL
|
|||||||
SWIFT_MODULE_DEPENDS_XROS ${swift_private_libc_extras_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_XROS ${swift_private_libc_extras_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_private_libc_extras_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_private_libc_extras_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
|
|||||||
SWIFT_MODULE_DEPENDS_XROS ${swift_private_thread_extras_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_XROS ${swift_private_thread_extras_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_private_thread_extras_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_MACCATALYST ${swift_private_thread_extras_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
SWIFT_MODULE_DEPENDS_FREESTANDING "${SWIFT_FREESTANDING_TEST_DEPENDENCIES}"
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
|
|||||||
@@ -21,6 +21,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ if (SWIFT_INCLUDE_TESTS AND SWIFT_BUILD_DYNAMIC_STDLIB)
|
|||||||
SWIFT_MODULE_DEPENDS_TVOS ${swift_reflection_test_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_TVOS ${swift_reflection_test_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_reflection_test_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_reflection_test_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_XROS ${swift_reflection_test_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_XROS ${swift_reflection_test_darwin_depencencies}
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
|
|||||||
@@ -131,6 +131,8 @@ import SwiftShims
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
let rtldDefault: UnsafeMutableRawPointer? = nil
|
let rtldDefault: UnsafeMutableRawPointer? = nil
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ add_swift_target_library(swift_Concurrency ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
|
|||||||
${SWIFT_RUNTIME_CONCURRENCY_C_SOURCES}
|
${SWIFT_RUNTIME_CONCURRENCY_C_SOURCES}
|
||||||
${SWIFT_RUNTIME_CONCURRENCY_SWIFT_SOURCES}
|
${SWIFT_RUNTIME_CONCURRENCY_SWIFT_SOURCES}
|
||||||
|
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ add_swift_target_library(swift_Differentiation ${SWIFT_STDLIB_LIBRARY_BUILD_TYPE
|
|||||||
SWIFT_MODULE_DEPENDS_TVOS ${swiftDifferentiationDarwinDependencies}
|
SWIFT_MODULE_DEPENDS_TVOS ${swiftDifferentiationDarwinDependencies}
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS ${swiftDifferentiationDarwinDependencies}
|
SWIFT_MODULE_DEPENDS_WATCHOS ${swiftDifferentiationDarwinDependencies}
|
||||||
SWIFT_MODULE_DEPENDS_XROS ${swiftDifferentiationDarwinDependencies}
|
SWIFT_MODULE_DEPENDS_XROS ${swiftDifferentiationDarwinDependencies}
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
SWIFT_MODULE_DEPENDS_LINUX_STATIC Musl
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
|
|||||||
@@ -18,12 +18,14 @@ import Swift
|
|||||||
import Darwin.C.tgmath
|
import Darwin.C.tgmath
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
#elseif os(Linux) || os(FreeBSD) || os(OpenBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Haiku)
|
#elseif os(Linux) || os(FreeBSD) || os(OpenBSD) || os(PS4) || os(Cygwin) || os(Haiku)
|
||||||
import Glibc
|
import Glibc
|
||||||
#elseif os(WASI)
|
#elseif os(WASI)
|
||||||
import WASILibc
|
import WASILibc
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
import CRT
|
import CRT
|
||||||
|
#elseif os(Android)
|
||||||
|
import Android
|
||||||
#else
|
#else
|
||||||
#error("Unsupported platform")
|
#error("Unsupported platform")
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ add_swift_target_library(swiftDistributed ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS
|
|||||||
SWIFT_MODULE_DEPENDS_OSX ${swift_distributed_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_OSX ${swift_distributed_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_TVOS ${swift_distributed_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_TVOS ${swift_distributed_darwin_depencencies}
|
||||||
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_distributed_darwin_depencencies}
|
SWIFT_MODULE_DEPENDS_WATCHOS ${swift_distributed_darwin_depencencies}
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import Darwin
|
|||||||
import Glibc
|
import Glibc
|
||||||
#elseif canImport(Musl)
|
#elseif canImport(Musl)
|
||||||
import Musl
|
import Musl
|
||||||
|
#elseif canImport(Android)
|
||||||
|
import Android
|
||||||
#elseif os(Windows)
|
#elseif os(Windows)
|
||||||
import WinSDK
|
import WinSDK
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
88
stdlib/public/Platform/Android.swift
Normal file
88
stdlib/public/Platform/Android.swift
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// This source file is part of the Swift.org open source project
|
||||||
|
//
|
||||||
|
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
||||||
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
||||||
|
//
|
||||||
|
// See https://swift.org/LICENSE.txt for license information
|
||||||
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
@_exported import SwiftAndroid // Clang module
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.pi' or '.pi' to get the value of correct type and avoid casting.")
|
||||||
|
public let M_PI = Double.pi
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.pi / 2' or '.pi / 2' to get the value of correct type and avoid casting.")
|
||||||
|
public let M_PI_2 = Double.pi / 2
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.pi / 4' or '.pi / 4' to get the value of correct type and avoid casting.")
|
||||||
|
public let M_PI_4 = Double.pi / 4
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 2.squareRoot()'.")
|
||||||
|
public let M_SQRT2 = 2.squareRoot()
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 0.5.squareRoot()'.")
|
||||||
|
public let M_SQRT1_2 = 0.5.squareRoot()
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'T.radix' to get the radix of a FloatingPoint type 'T'.")
|
||||||
|
public let FLT_RADIX = Double.radix
|
||||||
|
|
||||||
|
// Where does the 1 come from? C counts the usually-implicit leading
|
||||||
|
// significand bit, but Swift does not. Neither is really right or wrong.
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.significandBitCount + 1'.")
|
||||||
|
public let FLT_MANT_DIG = Float.significandBitCount + 1
|
||||||
|
|
||||||
|
// Where does the 1 come from? C models floating-point numbers as having a
|
||||||
|
// significand in [0.5, 1), but Swift (following IEEE 754) considers the
|
||||||
|
// significand to be in [1, 2). This rationale applies to FLT_MIN_EXP
|
||||||
|
// as well.
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.greatestFiniteMagnitude.exponent + 1'.")
|
||||||
|
public let FLT_MAX_EXP = Float.greatestFiniteMagnitude.exponent + 1
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.leastNormalMagnitude.exponent + 1'.")
|
||||||
|
public let FLT_MIN_EXP = Float.leastNormalMagnitude.exponent + 1
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.greatestFiniteMagnitude' or '.greatestFiniteMagnitude'.")
|
||||||
|
public let FLT_MAX = Float.greatestFiniteMagnitude
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.ulpOfOne' or '.ulpOfOne'.")
|
||||||
|
public let FLT_EPSILON = Float.ulpOfOne
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.leastNormalMagnitude' or '.leastNormalMagnitude'.")
|
||||||
|
public let FLT_MIN = Float.leastNormalMagnitude
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Float.leastNonzeroMagnitude' or '.leastNonzeroMagnitude'.")
|
||||||
|
public let FLT_TRUE_MIN = Float.leastNonzeroMagnitude
|
||||||
|
|
||||||
|
|
||||||
|
// Where does the 1 come from? C counts the usually-implicit leading
|
||||||
|
// significand bit, but Swift does not. Neither is really right or wrong.
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.significandBitCount + 1'.")
|
||||||
|
public let DBL_MANT_DIG = Double.significandBitCount + 1
|
||||||
|
|
||||||
|
// Where does the 1 come from? C models floating-point numbers as having a
|
||||||
|
// significand in [0.5, 1), but Swift (following IEEE 754) considers the
|
||||||
|
// significand to be in [1, 2). This rationale applies to DBL_MIN_EXP
|
||||||
|
// as well.
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.greatestFiniteMagnitude.exponent + 1'.")
|
||||||
|
public let DBL_MAX_EXP = Double.greatestFiniteMagnitude.exponent + 1
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.leastNormalMagnitude.exponent + 1'.")
|
||||||
|
public let DBL_MIN_EXP = Double.leastNormalMagnitude.exponent + 1
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.greatestFiniteMagnitude' or '.greatestFiniteMagnitude'.")
|
||||||
|
public let DBL_MAX = Double.greatestFiniteMagnitude
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.ulpOfOne' or '.ulpOfOne'.")
|
||||||
|
public let DBL_EPSILON = Double.ulpOfOne
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.leastNormalMagnitude' or '.leastNormalMagnitude'.")
|
||||||
|
public let DBL_MIN = Double.leastNormalMagnitude
|
||||||
|
|
||||||
|
@available(swift, deprecated: 3.0, message: "Please use 'Double.leastNonzeroMagnitude' or '.leastNonzeroMagnitude'.")
|
||||||
|
public let DBL_TRUE_MIN = Double.leastNonzeroMagnitude
|
||||||
|
|
||||||
|
public let M_LN2 = SwiftAndroid.M_LN2
|
||||||
|
public let M_LOG10E = SwiftAndroid.M_LOG10E
|
||||||
|
public let M_2_SQRTPI = SwiftAndroid.M_2_SQRTPI
|
||||||
@@ -127,9 +127,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(swiftGlibc_target_sdks ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU)
|
set(swiftGlibc_target_sdks CYGWIN FREEBSD OPENBSD LINUX HAIKU)
|
||||||
if(SWIFT_FREESTANDING_FLAVOR STREQUAL "linux")
|
if(SWIFT_FREESTANDING_FLAVOR STREQUAL "linux")
|
||||||
set(swiftGlibc_target_sdks ANDROID CYGWIN FREEBSD OPENBSD LINUX HAIKU FREESTANDING)
|
set(swiftGlibc_target_sdks CYGWIN FREEBSD OPENBSD LINUX HAIKU FREESTANDING)
|
||||||
endif()
|
endif()
|
||||||
add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
add_swift_target_library(swiftGlibc ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
||||||
${swift_platform_sources}
|
${swift_platform_sources}
|
||||||
@@ -273,12 +273,28 @@ add_custom_target(musl_modulemap DEPENDS ${musl_modulemap_target_list})
|
|||||||
set_property(TARGET musl_modulemap PROPERTY FOLDER "Miscellaneous")
|
set_property(TARGET musl_modulemap PROPERTY FOLDER "Miscellaneous")
|
||||||
add_dependencies(sdk-overlay musl_modulemap)
|
add_dependencies(sdk-overlay musl_modulemap)
|
||||||
|
|
||||||
|
add_swift_target_library(swiftAndroid ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_SDK_OVERLAY
|
||||||
|
Android.swift
|
||||||
|
${swift_platform_sources}
|
||||||
|
POSIXError.swift
|
||||||
|
|
||||||
|
GYB_SOURCES
|
||||||
|
${swift_platform_gyb_sources}
|
||||||
|
|
||||||
|
SWIFT_COMPILE_FLAGS
|
||||||
|
${SWIFT_RUNTIME_SWIFT_COMPILE_FLAGS}
|
||||||
|
${SWIFT_STANDARD_LIBRARY_SWIFT_FLAGS}
|
||||||
|
${swift_platform_compile_flags}
|
||||||
|
LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
|
||||||
|
TARGET_SDKS "ANDROID"
|
||||||
|
INSTALL_IN_COMPONENT sdk-overlay
|
||||||
|
DEPENDS android_modulemap)
|
||||||
|
|
||||||
set(glibc_modulemap_target_list)
|
set(glibc_modulemap_target_list)
|
||||||
foreach(sdk ${SWIFT_SDKS})
|
foreach(sdk ${SWIFT_SDKS})
|
||||||
if(NOT "${sdk}" STREQUAL "LINUX" AND
|
if(NOT "${sdk}" STREQUAL "LINUX" AND
|
||||||
NOT "${sdk}" STREQUAL "FREEBSD" AND
|
NOT "${sdk}" STREQUAL "FREEBSD" AND
|
||||||
NOT "${sdk}" STREQUAL "OPENBSD" AND
|
NOT "${sdk}" STREQUAL "OPENBSD" AND
|
||||||
NOT "${sdk}" STREQUAL "ANDROID" AND
|
|
||||||
NOT "${sdk}" STREQUAL "CYGWIN" AND
|
NOT "${sdk}" STREQUAL "CYGWIN" AND
|
||||||
NOT "${sdk}" STREQUAL "HAIKU")
|
NOT "${sdk}" STREQUAL "HAIKU")
|
||||||
continue()
|
continue()
|
||||||
@@ -376,6 +392,79 @@ add_custom_target(glibc_modulemap DEPENDS ${glibc_modulemap_target_list})
|
|||||||
set_property(TARGET glibc_modulemap PROPERTY FOLDER "Miscellaneous")
|
set_property(TARGET glibc_modulemap PROPERTY FOLDER "Miscellaneous")
|
||||||
add_dependencies(sdk-overlay glibc_modulemap)
|
add_dependencies(sdk-overlay glibc_modulemap)
|
||||||
|
|
||||||
|
set(android_modulemap_target_list)
|
||||||
|
if("ANDROID" IN_LIST SWIFT_SDKS)
|
||||||
|
set(android_modulemap_source "android.modulemap")
|
||||||
|
set(android_ndk_header_source "SwiftAndroidNDK.h")
|
||||||
|
set(android_bionic_header_source "SwiftBionic.h")
|
||||||
|
|
||||||
|
foreach(arch ${SWIFT_SDK_ANDROID_ARCHITECTURES})
|
||||||
|
set(arch_subdir "${SWIFT_SDK_ANDROID_LIB_SUBDIR}/${arch}")
|
||||||
|
set(module_dir "${SWIFTLIB_DIR}/${arch_subdir}")
|
||||||
|
set(module_dir_static "${SWIFTSTATICLIB_DIR}/${arch_subdir}")
|
||||||
|
|
||||||
|
add_custom_command_target(
|
||||||
|
copy_android_modulemap_resource
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} ${module_dir_static}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_modulemap_source}" ${module_dir}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_modulemap_source}" ${module_dir_static}
|
||||||
|
OUTPUT ${module_dir}/${android_modulemap_source} ${module_dir_static}/${android_modulemap_source}
|
||||||
|
COMMENT "Copying Android modulemap to resource directories")
|
||||||
|
add_custom_command_target(
|
||||||
|
copy_android_ndk_neader_resource
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} ${module_dir_static}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_ndk_header_source}" ${module_dir}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_ndk_header_source}" ${module_dir_static}
|
||||||
|
OUTPUT ${module_dir}/${android_ndk_header_source} ${module_dir_static}/${android_ndk_header_source}
|
||||||
|
COMMENT "Copying Android NDK header to resource directories")
|
||||||
|
add_custom_command_target(
|
||||||
|
copy_android_bionic_neader_resource
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "make_directory" ${module_dir} ${module_dir_static}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_bionic_header_source}" ${module_dir}
|
||||||
|
COMMAND
|
||||||
|
"${CMAKE_COMMAND}" "-E" "copy_if_different"
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/${android_bionic_header_source}" ${module_dir_static}
|
||||||
|
OUTPUT ${module_dir}/${android_bionic_header_source} ${module_dir_static}/${android_bionic_header_source}
|
||||||
|
COMMENT "Copying Android NDK header to resource directories")
|
||||||
|
|
||||||
|
add_dependencies(sdk-overlay ${copy_android_modulemap_resource}
|
||||||
|
${copy_android_ndk_neader_resource}
|
||||||
|
${copy_android_bionic_neader_resource})
|
||||||
|
list(APPEND android_modulemap_target_list ${copy_android_modulemap_resource}
|
||||||
|
${copy_android_ndk_neader_resource}
|
||||||
|
${copy_android_bionic_neader_resource})
|
||||||
|
|
||||||
|
swift_install_in_component(FILES "${android_modulemap_source}"
|
||||||
|
"${android_ndk_header_source}"
|
||||||
|
"${android_bionic_header_source}"
|
||||||
|
DESTINATION "lib/swift/${arch_subdir}"
|
||||||
|
COMPONENT sdk-overlay)
|
||||||
|
if(SWIFT_BUILD_STATIC_STDLIB)
|
||||||
|
swift_install_in_component(FILES "${android_modulemap_source}"
|
||||||
|
"${android_ndk_header_source}"
|
||||||
|
"${android_bionic_header_source}"
|
||||||
|
DESTINATION "lib/swift_static/${arch_subdir}"
|
||||||
|
COMPONENT sdk-overlay)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
add_custom_target(android_modulemap DEPENDS ${android_modulemap_target_list})
|
||||||
|
set_property(TARGET android_modulemap PROPERTY FOLDER "Miscellaneous")
|
||||||
|
add_dependencies(sdk-overlay android_modulemap)
|
||||||
|
|
||||||
set(wasilibc_modulemap_target_list)
|
set(wasilibc_modulemap_target_list)
|
||||||
if("WASI" IN_LIST SWIFT_SDKS)
|
if("WASI" IN_LIST SWIFT_SDKS)
|
||||||
set(wasilibc_modulemap_source "wasi-libc.modulemap")
|
set(wasilibc_modulemap_source "wasi-libc.modulemap")
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ public var S_IFIFO: Int32 { return Int32(0x1000) }
|
|||||||
public var S_IREAD: Int32 { return Int32(0x0100) }
|
public var S_IREAD: Int32 { return Int32(0x0100) }
|
||||||
public var S_IWRITE: Int32 { return Int32(0x0080) }
|
public var S_IWRITE: Int32 { return Int32(0x0080) }
|
||||||
public var S_IEXEC: Int32 { return Int32(0x0040) }
|
public var S_IEXEC: Int32 { return Int32(0x0040) }
|
||||||
#else
|
#elseif !os(Android)
|
||||||
public var S_IFMT: mode_t { return mode_t(0o170000) }
|
public var S_IFMT: mode_t { return mode_t(0o170000) }
|
||||||
public var S_IFIFO: mode_t { return mode_t(0o010000) }
|
public var S_IFIFO: mode_t { return mode_t(0o010000) }
|
||||||
public var S_IFCHR: mode_t { return mode_t(0o020000) }
|
public var S_IFCHR: mode_t { return mode_t(0o020000) }
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ message(STATUS "Using Experimental String Processing library for RegexBuilder ($
|
|||||||
add_swift_target_library(swiftRegexBuilder ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
|
add_swift_target_library(swiftRegexBuilder ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
|
||||||
"${REGEX_BUILDER_SOURCES}"
|
"${REGEX_BUILDER_SOURCES}"
|
||||||
|
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ message(STATUS "Using Experimental String Processing library for _StringProcessi
|
|||||||
add_swift_target_library(swift_StringProcessing ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
|
add_swift_target_library(swift_StringProcessing ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
|
||||||
"${STRING_PROCESSING_SOURCES}"
|
"${STRING_PROCESSING_SOURCES}"
|
||||||
|
|
||||||
|
SWIFT_MODULE_DEPENDS_ANDROID Android
|
||||||
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
SWIFT_MODULE_DEPENDS_LINUX Glibc
|
||||||
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
|
||||||
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
SWIFT_MODULE_DEPENDS_OPENBSD Glibc
|
||||||
|
|||||||
Reference in New Issue
Block a user