@@ -1728,6 +1728,39 @@ final class SwiftDriverTests: XCTestCase {
1728
1728
XCTAssertFalse ( cmd. contains ( . flag( " -shared " ) ) )
1729
1729
}
1730
1730
1731
+ do {
1732
+ // -fobjc-link-runtime default
1733
+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " ] , env: env)
1734
+ let plannedJobs = try driver. planBuild ( )
1735
+ XCTAssertEqual ( 3 , plannedJobs. count)
1736
+ let linkJob = plannedJobs [ 2 ]
1737
+ XCTAssertEqual ( linkJob. kind, . link)
1738
+ let cmd = linkJob. commandLine
1739
+ XCTAssertFalse ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1740
+ }
1741
+
1742
+ do {
1743
+ // -fobjc-link-runtime enable
1744
+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " , " -link-objc-runtime " ] , env: env)
1745
+ let plannedJobs = try driver. planBuild ( )
1746
+ XCTAssertEqual ( 3 , plannedJobs. count)
1747
+ let linkJob = plannedJobs [ 2 ]
1748
+ XCTAssertEqual ( linkJob. kind, . link)
1749
+ let cmd = linkJob. commandLine
1750
+ XCTAssertTrue ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1751
+ }
1752
+
1753
+ do {
1754
+ // -fobjc-link-runtime disable override
1755
+ var driver = try Driver ( args: commonArgs + [ " -emit-library " , " -target " , " x86_64-apple-macosx10.15 " , " -link-objc-runtime " , " -no-link-objc-runtime " ] , env: env)
1756
+ let plannedJobs = try driver. planBuild ( )
1757
+ XCTAssertEqual ( 3 , plannedJobs. count)
1758
+ let linkJob = plannedJobs [ 2 ]
1759
+ XCTAssertEqual ( linkJob. kind, . link)
1760
+ let cmd = linkJob. commandLine
1761
+ XCTAssertFalse ( cmd. contains ( . flag( " -fobjc-link-runtime " ) ) )
1762
+ }
1763
+
1731
1764
do {
1732
1765
// Xlinker flags
1733
1766
// Ensure that Xlinker flags are passed as such to the clang linker invocation.
0 commit comments