1755b2055SDouglas Gregorframework module DependsOnModule {
2322f633cSDouglas Gregor  umbrella header "DependsOnModule.h"
3755b2055SDouglas Gregor  header "other.h"
473441091SDouglas Gregor  module * {
573441091SDouglas Gregor    export *
673441091SDouglas Gregor  }
71fb5c3a6SDouglas Gregor  explicit module CXX {
81fb5c3a6SDouglas Gregor    requires cplusplus
91fb5c3a6SDouglas Gregor    header "cxx_other.h"
101fb5c3a6SDouglas Gregor  }
11a3feee2aSRichard Smith  explicit module NotCXX {
12a3feee2aSRichard Smith    requires !cplusplus
13a3feee2aSRichard Smith    header "not_cxx.h"
14a3feee2aSRichard Smith  }
15a3feee2aSRichard Smith  explicit module NotObjC {
16a3feee2aSRichard Smith    requires !objc
17a3feee2aSRichard Smith    header "not_objc.h"
18a3feee2aSRichard Smith  }
19532d2104SBen Langmuir  explicit module CustomReq1 {
20532d2104SBen Langmuir    requires custom_req1
21532d2104SBen Langmuir  }
22532d2104SBen Langmuir  explicit module CustomReq2 {
23532d2104SBen Langmuir    requires custom_req2
24532d2104SBen Langmuir  }
25e38cea02SEric Fiselier  explicit module Coroutines {
26e38cea02SEric Fiselier    requires coroutines
27e38cea02SEric Fiselier    header "coroutines.h"
28e38cea02SEric Fiselier  }
29e38cea02SEric Fiselier  explicit module NotCoroutines {
30e38cea02SEric Fiselier    requires !coroutines
31e38cea02SEric Fiselier    header "not_coroutines.h"
32e38cea02SEric Fiselier  }
33f2161a70SDouglas Gregor  explicit framework module SubFramework {
34322f633cSDouglas Gregor    umbrella header "SubFramework.h"
35dd005f69SDouglas Gregor
36dd005f69SDouglas Gregor    module * {
37dd005f69SDouglas Gregor      export *
38dd005f69SDouglas Gregor    }
39f2161a70SDouglas Gregor  }
40*6d9cf8aaSBruno Cardoso Lopes  explicit module CXX11 {
41*6d9cf8aaSBruno Cardoso Lopes    requires cplusplus11
42*6d9cf8aaSBruno Cardoso Lopes  }
43*6d9cf8aaSBruno Cardoso Lopes  explicit module CXX14 {
44*6d9cf8aaSBruno Cardoso Lopes    requires cplusplus14
45*6d9cf8aaSBruno Cardoso Lopes  }
46*6d9cf8aaSBruno Cardoso Lopes  explicit module CXX17 {
47*6d9cf8aaSBruno Cardoso Lopes    requires cplusplus17
48*6d9cf8aaSBruno Cardoso Lopes  }
49*6d9cf8aaSBruno Cardoso Lopes  explicit module C99 {
50*6d9cf8aaSBruno Cardoso Lopes    requires c99
51*6d9cf8aaSBruno Cardoso Lopes  }
52*6d9cf8aaSBruno Cardoso Lopes  explicit module C11 {
53*6d9cf8aaSBruno Cardoso Lopes    requires c11
54*6d9cf8aaSBruno Cardoso Lopes  }
55*6d9cf8aaSBruno Cardoso Lopes  explicit module C17 {
56*6d9cf8aaSBruno Cardoso Lopes    requires c17
57*6d9cf8aaSBruno Cardoso Lopes  }
58755b2055SDouglas Gregor}
59