mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Allow module aliases to be expressed in the explicit Swift module map JSON file.
For build systems that already generate these files, it makes sense to include the aliases so that the map file serves as a comprehensive index of how the module inputs are referenced.
This commit is contained in:
committed by
Tony Allevato
parent
2b0f9aa765
commit
8752920875
@@ -0,0 +1,66 @@
|
||||
/// Test setting a module alias in the explicit module loader's JSON directly.
|
||||
// UNSUPPORTED: OS=windows-msvc
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: mkdir -p %t/inputs
|
||||
// RUN: mkdir -p %t/outputs
|
||||
|
||||
/// Create a module Bar
|
||||
// RUN: echo 'public func bar() {}' > %t/inputs/FileBar.swift
|
||||
// RUN: %target-swift-frontend -module-name Bar %t/inputs/FileBar.swift -emit-module -emit-module-path %t/inputs/Bar.swiftmodule
|
||||
// RUN: %target-swift-emit-pcm -module-name SwiftShims %swift-lib-dir/swift/shims/module.modulemap -o %t/inputs/SwiftShims.pcm
|
||||
// RUN: %target-swift-emit-pcm -module-name _SwiftConcurrencyShims %swift-lib-dir/swift/shims/module.modulemap -o %t/inputs/_SwiftConcurrencyShims.pcm
|
||||
|
||||
/// Check Bar.swiftmodule is created
|
||||
// RUN: test -f %t/inputs/Bar.swiftmodule
|
||||
|
||||
/// Next create an explicit module dependency map to build module Foo
|
||||
// RUN: echo 'import Cat' > %t/inputs/FileFoo.swift
|
||||
|
||||
// RUN: echo "[{" > %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"Bar\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"modulePath\": \"%/t/inputs/Bar.swiftmodule\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleAlias\": \"Cat\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"Swift\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"modulePath\": \"%/stdlib_module\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"SwiftOnoneSupport\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"modulePath\": \"%/ononesupport_module\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"_Concurrency\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"modulePath\": \"%/concurrency_module\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"SwiftShims\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"clangModuleMapPath\": \"%swift-lib-dir/swift/shims/module.modulemap\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"clangModulePath\": \"%t/inputs/SwiftShims.pcm\"" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"_SwiftConcurrencyShims\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"clangModuleMapPath\": \"%swift-lib-dir/swift/shims/module.modulemap\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"clangModulePath\": \"%t/inputs/_SwiftConcurrencyShims.pcm\"" >> %/t/inputs/map.json
|
||||
// RUN: echo "}," >> %/t/inputs/map.json
|
||||
// RUN: echo "{" >> %/t/inputs/map.json
|
||||
// RUN: echo "\"moduleName\": \"_StringProcessing\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"modulePath\": \"%/string_processing_module\"," >> %/t/inputs/map.json
|
||||
// RUN: echo "\"isFramework\": false" >> %/t/inputs/map.json
|
||||
// RUN: echo "}]" >> %/t/inputs/map.json
|
||||
|
||||
/// Create a module Foo that imports Cat aliased to Bar in the JSON above
|
||||
// RUN: %target-swift-frontend -module-name Foo %t/inputs/FileFoo.swift -I %t/inputs -emit-module -emit-module-path %t/outputs/Foo.swiftmodule -disable-implicit-swift-modules -explicit-swift-module-map-file %t/inputs/map.json -Rmodule-loading 2> %t/outputs/load-result.output
|
||||
|
||||
// RUN: test -f %t/outputs/Foo.swiftmodule
|
||||
// RUN: test -f %t/inputs/Bar.swiftmodule
|
||||
// RUN: not test -f %t/inputs/Cat.swiftmodule
|
||||
|
||||
// RUN: %FileCheck %s -input-file %t/outputs/load-result.output -check-prefix CHECK
|
||||
// CHECK: remark: loaded module {{.*}}Bar.swiftmodule
|
||||
Reference in New Issue
Block a user