Files
Saleem Abdulrasool 8bf8281136 Windows: remove the builtin header module workaround
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
2026-10-08 23:29:24 -07:00

909 lines
14 KiB
Plaintext

//===--- vcruntime.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
//
//===----------------------------------------------------------------------===//
module _visualc_intrinsics [system] {
explicit module arm {
requires armv7
header "armintr.h"
export *
}
explicit module aarch64 {
requires aarch64
explicit module intrinsics {
header "arm64intr.h"
export *
}
explicit module neon {
requires neon
header "arm64_neon.h"
export *
}
}
// arm_neon.h is the public entry point for both the historical ARM32
// implementation and current ARM64 toolsets, where it includes
// arm64_neon.h.
explicit module neon {
requires neon
header "arm_neon.h"
export *
}
explicit module intel {
requires x86
export *
header "immintrin.h"
explicit module mmx {
header "mmintrin.h"
export *
}
explicit module sse {
header "xmmintrin.h"
export *
}
explicit module sse2 {
header "emmintrin.h"
export *
}
explicit module sse3 {
header "pmmintrin.h"
export *
}
explicit module ssse3 {
header "tmmintrin.h"
export *
}
explicit module sse4_1 {
header "smmintrin.h"
export *
}
explicit module sse4_2 {
header "nmmintrin.h"
export *
}
explicit module sse4a {
header "ammintrin.h"
export *
}
explicit module aes_pclmul {
header "wmmintrin.h"
export *
}
}
}
module SAL [system] {
header "sal.h"
export *
module Concurrency {
header "concurrencysal.h"
export *
}
}
module vcruntime [system] {
header "vcruntime.h"
export *
module iso646 {
header "iso646.h"
export *
}
module limits {
// Clang's _Builtin_limits module owns the modular limits declarations and
// includes the toolset header as needed. Keep the latter textual to avoid
// exposing a second Swift-visible copy of constants such as LONG_MAX.
textual header "limits.h"
}
module stdarg {
header "stdarg.h"
export *
}
module stdbool {
header "stdbool.h"
export *
}
module stdint {
header "stdint.h"
export *
}
module string {
header "vcruntime_string.h"
export *
}
module vadefs {
header "vadefs.h"
export *
}
// setjmp.h includes vcruntime.h for its ABI and SAL definitions. Keep it in
// a submodule so that include resolves through the parent module instead of
// depending on the order in which the fused module headers are parsed.
module setjmp {
header "setjmp.h"
export *
}
}
module std_config [system] {
export *
module definitions {
header "crtdefs.h"
export *
}
module version {
header "crtversion.h"
export *
}
}
module std [system] {
requires cplusplus
module compat {
module cassert {
textual header "cassert"
}
module ccomplex {
header "ccomplex"
export *
}
module cctype {
header "cctype"
export *
}
module cerrno {
header "cerrno"
export *
}
module cfenv {
header "cfenv"
export *
}
module cfloat {
header "cfloat"
export *
}
module cinttypes {
header "cinttypes"
export *
}
module ciso646 {
header "ciso646"
export *
}
module climits {
header "climits"
export *
}
module clocale {
header "clocale"
export *
}
module cmath {
header "cmath"
export *
}
module csetjmp {
header "csetjmp"
export *
}
module csignal {
header "csignal"
export *
}
module cstdalign {
header "cstdalign"
export *
}
module cstdarg {
header "cstdarg"
export *
}
module cstdbool {
header "cstdbool"
export *
}
module cstddef {
header "cstddef"
export *
}
module cstdint {
header "cstdint"
export *
}
module cstdio {
header "cstdio"
export *
}
module cstdlib {
header "cstdlib"
export *
}
module cstring {
header "cstring"
export *
}
module ctgmath {
header "ctgmath"
export *
}
module ctime {
header "ctime"
export *
}
module cuchar {
requires cplusplus11
header "cuchar"
export *
}
module cwchar {
header "cwchar"
export *
}
module cwctype {
header "cwctype"
export *
}
}
module algorithm {
header "algorithm"
export *
}
module any {
requires cplusplus17
header "any"
export *
}
module array {
requires cplusplus11
header "array"
export *
}
module atomic {
requires cplusplus11
header "atomic"
export *
}
module barrier {
requires cplusplus20
header "barrier"
export *
}
module bit {
requires cplusplus20
header "bit"
export *
}
module bitset {
header "bitset"
export *
}
module charconv {
requires cplusplus17
header "charconv"
export *
}
module chrono {
requires cplusplus11
header "chrono"
export *
}
module codecvt {
header "codecvt"
export *
}
module compare {
requires cplusplus20
header "compare"
export *
}
module complex {
header "complex"
export *
}
module concepts {
requires cplusplus20
header "concepts"
export *
}
module condition_variable {
requires cplusplus11
header "condition_variable"
export *
}
module coroutine {
requires cplusplus20
header "coroutine"
export *
}
module deque {
header "deque"
export *
}
module exception {
header "exception"
export *
}
module execution {
requires cplusplus17
header "execution"
export *
}
module expected {
requires cplusplus23
header "expected"
export *
}
module filesystem {
requires cplusplus17
header "filesystem"
export *
}
module format {
requires cplusplus20
header "format"
export *
}
module forward_list {
requires cplusplus11
header "forward_list"
export *
}
module fstream {
header "fstream"
export *
}
module functional {
header "functional"
export *
}
module future {
requires cplusplus11
header "future"
export *
}
module initializer_list {
requires cplusplus11
header "initializer_list"
export *
}
module iomanip {
header "iomanip"
export *
}
module ios {
header "ios"
export *
}
module iosfwd {
header "iosfwd"
export *
}
module iostream {
header "iostream"
export *
}
module istream {
header "istream"
export *
}
module iterator {
header "iterator"
export *
}
module latch {
requires cplusplus20
header "latch"
export *
}
module limits {
header "limits"
export *
}
module list {
header "list"
export *
}
module locale {
header "locale"
export *
}
module map {
header "map"
export *
}
module memory {
header "memory"
export *
}
module memory_resource {
requires cplusplus17
header "memory_resource"
export *
}
module mutex {
requires cplusplus11
header "mutex"
export *
}
module new {
header "new"
export *
}
module numbers {
requires cplusplus20
header "numbers"
export *
}
module numeric {
header "numeric"
export *
}
module optional {
requires cplusplus17
header "optional"
export *
}
module ostream {
header "ostream"
export *
}
module queue {
header "queue"
export *
}
module random {
requires cplusplus11
header "random"
export *
}
module ranges {
requires cplusplus20
header "ranges"
export *
}
module ratio {
requires cplusplus11
header "ratio"
export *
}
module regex {
requires cplusplus11
header "regex"
export *
}
module scoped_allocator {
requires cplusplus11
header "scoped_allocator"
export *
}
module semaphore {
requires cplusplus20
header "semaphore"
export *
}
module set {
header "set"
export *
}
module shared_mutex {
requires cplusplus14
header "shared_mutex"
export *
}
module source_location {
requires cplusplus20
header "source_location"
export *
}
module span {
requires cplusplus20
header "span"
export *
}
module spanstream {
requires cplusplus23
header "spanstream"
export *
}
module sstream {
header "sstream"
export *
}
module stack {
header "stack"
export *
}
module stacktrace {
requires cplusplus23
header "stacktrace"
export *
}
module stdexcept {
header "stdexcept"
export *
}
module stop_token {
requires cplusplus20
header "stop_token"
export *
}
module streambuf {
header "streambuf"
export *
}
module string {
header "string"
export *
}
module string_view {
requires cplusplus17
header "string_view"
export *
}
module strstream {
header "strstream"
export *
}
module syncstream {
requires cplusplus20
header "syncstream"
export *
}
module system_error {
requires cplusplus11
header "system_error"
export *
}
module thread {
requires cplusplus11
header "thread"
export *
}
module tuple {
requires cplusplus11
header "tuple"
export *
}
module type_traits {
requires cplusplus11
header "type_traits"
export *
}
module typeindex {
requires cplusplus11
header "typeindex"
export *
}
module typeinfo {
header "typeinfo"
export *
}
module unordered_map {
requires cplusplus11
header "unordered_map"
export *
}
module unordered_set {
requires cplusplus11
header "unordered_set"
export *
}
module utility {
header "utility"
export *
}
module valarray {
header "valarray"
export *
}
module variant {
requires cplusplus17
header "variant"
export *
}
module vector {
header "vector"
export *
}
module version {
requires cplusplus20
header "version"
export *
}
module _Private [system] {
requires cplusplus
explicit module __msvc_bit_utils {
header "__msvc_bit_utils.hpp"
export *
}
explicit module __msvc_chrono {
header "__msvc_chrono.hpp"
export *
}
explicit module __msvc_cxx_stdatomic {
header "__msvc_cxx_stdatomic.hpp"
export *
}
explicit module __msvc_filebuf {
header "__msvc_filebuf.hpp"
export *
}
explicit module __msvc_format_ucd_tables {
header "__msvc_format_ucd_tables.hpp"
export *
}
explicit module __msvc_formatter {
header "__msvc_formatter.hpp"
requires cplusplus20
export *
}
explicit module __msvc_heap_algorithms {
header "__msvc_heap_algorithms.hpp"
export *
}
explicit module __msvc_int128 {
header "__msvc_int128.hpp"
export *
}
explicit module __msvc_iter_core {
header "__msvc_iter_core.hpp"
export *
}
explicit module __msvc_minmax {
header "__msvc_minmax.hpp"
export *
}
explicit module __msvc_ostream {
header "__msvc_ostream.hpp"
export *
}
explicit module __msvc_print {
header "__msvc_print.hpp"
requires cplusplus20
export *
}
explicit module __msvc_ranges_to {
header "__msvc_ranges_to.hpp"
requires cplusplus20
export *
}
explicit module __msvc_ranges_tuple_formatter {
header "__msvc_ranges_tuple_formatter.hpp"
requires cplusplus20
export *
}
explicit module __msvc_sanitizer_annotate_container {
header "__msvc_sanitizer_annotate_container.hpp"
export *
}
explicit module __msvc_string_view {
header "__msvc_string_view.hpp"
export *
}
explicit module __msvc_system_error_abi {
header "__msvc_system_error_abi.hpp"
export *
}
explicit module __msvc_threads_core {
header "__msvc_threads_core.hpp"
export *
}
explicit module __msvc_tzdb {
header "__msvc_tzdb.hpp"
export *
}
explicit module __msvc_xlocinfo_types {
header "__msvc_xlocinfo_types.hpp"
export *
}
explicit module xatomic {
header "xatomic.h"
export *
}
explicit module xhash {
header "xhash"
export *
}
explicit module xmemory {
header "xmemory"
export *
}
explicit module xsmf_control {
header "xsmf_control.h"
export *
}
explicit module xstring {
header "xstring"
export *
}
explicit module xtree {
header "xtree"
export *
}
explicit module xtr1common {
header "xtr1common"
export *
}
explicit module xutility {
header "xutility"
export *
}
explicit module yvals {
header "yvals.h"
export *
}
explicit module yvals_core {
header "yvals_core.h"
export *
}
}
}