mirror of
https://github.com/apple/swift.git
synced 2026-10-26 20:15:53 +01:00
Restructure `ucrt` module to allow us to drop the `-fbuiltin-modules-in-system-headers`. This clean up is helpful for modularisation and brings Windows in parity with other platforms. Fixes: #91573
366 lines
5.6 KiB
Plaintext
366 lines
5.6 KiB
Plaintext
//===--- ucrt.modulemap ---------------------------------------------------===//
|
|
//
|
|
// 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
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// These internal top-level modules break cycles among the UCRT, Clang builtin,
|
|
// and C++ standard-library headers. Keep the ownership graph independent of the
|
|
// installed Windows SDK version.
|
|
module _complex [system] {
|
|
header "complex.h"
|
|
export *
|
|
}
|
|
|
|
module _fenv [system] {
|
|
header "fenv.h"
|
|
export *
|
|
}
|
|
|
|
module _float [system] {
|
|
header "float.h"
|
|
export *
|
|
}
|
|
|
|
module _malloc [system] {
|
|
header "malloc.h"
|
|
export *
|
|
}
|
|
|
|
module _stdlib [system] {
|
|
header "stdlib.h"
|
|
export *
|
|
}
|
|
|
|
module ucrt [system] {
|
|
header "SwiftUCRT.h"
|
|
config_macros NDEBUG
|
|
|
|
export *
|
|
|
|
module C {
|
|
module assert {
|
|
header "assert.h"
|
|
export *
|
|
}
|
|
|
|
module ctype {
|
|
header "ctype.h"
|
|
export *
|
|
}
|
|
|
|
module errno {
|
|
textual header "errno.h"
|
|
}
|
|
|
|
module inttypes {
|
|
header "inttypes.h"
|
|
export *
|
|
}
|
|
|
|
module locale {
|
|
header "locale.h"
|
|
export *
|
|
}
|
|
|
|
module math {
|
|
header "math.h"
|
|
export *
|
|
}
|
|
|
|
module signal {
|
|
header "signal.h"
|
|
export *
|
|
}
|
|
|
|
module stdalign {
|
|
header "stdalign.h"
|
|
export *
|
|
}
|
|
|
|
module stddef {
|
|
textual header "stddef.h"
|
|
}
|
|
|
|
module stdio {
|
|
header "stdio.h"
|
|
export *
|
|
|
|
// NOTE(compnerd) this is a horrible workaround for the fact that
|
|
// Microsoft has fully inlined nearly all of the printf family of
|
|
// functions in the headers which results in the definitions being elided
|
|
// resulting in undefined symbols. The legacy_stdio_definitions provides
|
|
// out-of-line definitions for these functions.
|
|
link "legacy_stdio_definitions"
|
|
}
|
|
|
|
module stdnoreturn {
|
|
textual header "stdnoreturn.h"
|
|
}
|
|
|
|
module string {
|
|
header "string.h"
|
|
export *
|
|
}
|
|
|
|
module time {
|
|
header "time.h"
|
|
export *
|
|
}
|
|
|
|
module tgmath {
|
|
textual header "tgmath.h"
|
|
}
|
|
|
|
module uchar {
|
|
header "uchar.h"
|
|
export *
|
|
}
|
|
|
|
module wchar {
|
|
header "wchar.h"
|
|
export *
|
|
}
|
|
|
|
module wctype {
|
|
header "wctype.h"
|
|
export *
|
|
}
|
|
}
|
|
|
|
module POSIX {
|
|
module fcntl {
|
|
header "fcntl.h"
|
|
export *
|
|
}
|
|
|
|
module sys {
|
|
module locking {
|
|
header "sys/locking.h"
|
|
export *
|
|
}
|
|
|
|
module stat {
|
|
header "sys/stat.h"
|
|
export *
|
|
}
|
|
|
|
module direct {
|
|
header "direct.h"
|
|
export *
|
|
}
|
|
|
|
module timeb {
|
|
header "sys/timeb.h"
|
|
export *
|
|
}
|
|
|
|
module types {
|
|
header "sys/types.h"
|
|
export *
|
|
}
|
|
|
|
module utime {
|
|
header "sys/utime.h"
|
|
export *
|
|
}
|
|
}
|
|
}
|
|
|
|
module conio {
|
|
header "conio.h"
|
|
export *
|
|
}
|
|
|
|
module dos {
|
|
header "dos.h"
|
|
export *
|
|
}
|
|
|
|
module debug {
|
|
header "crtdbg.h"
|
|
export *
|
|
}
|
|
|
|
module fpieee {
|
|
header "fpieee.h"
|
|
export *
|
|
}
|
|
|
|
module io {
|
|
header "io.h"
|
|
export *
|
|
}
|
|
|
|
module memory {
|
|
header "memory.h"
|
|
export *
|
|
}
|
|
|
|
module minmax {
|
|
header "minmax.h"
|
|
export *
|
|
}
|
|
|
|
module multibyte {
|
|
module ctype {
|
|
header "mbctype.h"
|
|
export *
|
|
}
|
|
|
|
module string {
|
|
header "mbstring.h"
|
|
export *
|
|
}
|
|
}
|
|
|
|
module new {
|
|
header "new.h"
|
|
export *
|
|
}
|
|
|
|
module process {
|
|
header "process.h"
|
|
export *
|
|
}
|
|
|
|
explicit module safeint {
|
|
requires cplusplus
|
|
header "safeint.h"
|
|
// This is the private implementation of safeint.h, not an independent
|
|
// public header surface.
|
|
private textual header "safeint_internal.h"
|
|
export *
|
|
}
|
|
|
|
module search {
|
|
header "search.h"
|
|
export *
|
|
}
|
|
|
|
module share {
|
|
header "share.h"
|
|
export *
|
|
}
|
|
|
|
module startup {
|
|
header "corecrt_startup.h"
|
|
export *
|
|
}
|
|
|
|
module tchar {
|
|
header "tchar.h"
|
|
export *
|
|
}
|
|
}
|
|
|
|
module corecrt [system] {
|
|
export *
|
|
|
|
module base {
|
|
header "corecrt.h"
|
|
export *
|
|
}
|
|
|
|
module stdio_config {
|
|
header "corecrt_stdio_config.h"
|
|
export *
|
|
}
|
|
|
|
module conio {
|
|
header "corecrt_wconio.h"
|
|
export *
|
|
}
|
|
|
|
module direct {
|
|
header "corecrt_wdirect.h"
|
|
export *
|
|
}
|
|
|
|
module io {
|
|
header "corecrt_io.h"
|
|
export *
|
|
}
|
|
|
|
module wio {
|
|
header "corecrt_wio.h"
|
|
export *
|
|
}
|
|
|
|
module malloc {
|
|
header "corecrt_malloc.h"
|
|
export *
|
|
}
|
|
|
|
module math {
|
|
header "corecrt_math.h"
|
|
export *
|
|
}
|
|
|
|
module math_defines {
|
|
textual header "corecrt_math_defines.h"
|
|
}
|
|
|
|
module memory {
|
|
header "corecrt_memory.h"
|
|
export *
|
|
}
|
|
|
|
module memcpy {
|
|
header "corecrt_memcpy_s.h"
|
|
export *
|
|
}
|
|
|
|
module process {
|
|
header "corecrt_wprocess.h"
|
|
export *
|
|
}
|
|
|
|
module search {
|
|
header "corecrt_search.h"
|
|
export *
|
|
}
|
|
|
|
module share {
|
|
header "corecrt_share.h"
|
|
export *
|
|
}
|
|
|
|
module ctype {
|
|
header "corecrt_wctype.h"
|
|
export *
|
|
}
|
|
|
|
module stdio {
|
|
header "corecrt_wstdio.h"
|
|
export *
|
|
}
|
|
|
|
module stdlib {
|
|
header "corecrt_wstdlib.h"
|
|
export *
|
|
}
|
|
|
|
module string {
|
|
header "corecrt_wstring.h"
|
|
export *
|
|
}
|
|
|
|
module time {
|
|
header "corecrt_wtime.h"
|
|
export *
|
|
}
|
|
}
|
|
|
|
module _corecrt_terminate [system] {
|
|
requires cplusplus
|
|
header "corecrt_terminate.h"
|
|
export *
|
|
}
|