| // Check that linking to a framework actually makes it to the linker. |
| |
| //@ only-apple |
| |
| use run_make_support::{cmd, rustc}; |
| |
| fn main() { |
| rustc().input("dep-link-framework.rs").run(); |
| rustc().input("dep-link-weak-framework.rs").run(); |
| |
| rustc().input("empty.rs").run(); |
| cmd("otool").arg("-L").arg("no-link").run_fail().assert_stdout_not_contains("CoreFoundation"); |
| |
| rustc().input("link-framework.rs").run(); |
| cmd("otool") |
| .arg("-L") |
| .arg("link-framework") |
| .run() |
| .assert_stdout_contains("CoreFoundation") |
| .assert_stdout_not_contains("weak"); |
| |
| rustc().input("link-weak-framework.rs").run(); |
| cmd("otool") |
| .arg("-L") |
| .arg("link-weak-framework") |
| .run() |
| .assert_stdout_contains("CoreFoundation") |
| .assert_stdout_contains("weak"); |
| |
| // When linking the framework both normally, and weakly, the weak linking takes preference. |
| rustc().input("link-both.rs").run(); |
| cmd("otool") |
| .arg("-L") |
| .arg("link-both") |
| .run() |
| .assert_stdout_contains("CoreFoundation") |
| .assert_stdout_contains("weak"); |
| } |