| // 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"); | |
| } |