cargo-mobile icon indicating copy to clipboard operation
cargo-mobile copied to clipboard

cargo-mobile installation fails on newly released Apple Mac m1

Open nikhil-advait opened this issue 5 years ago • 6 comments

Hello Francesca, Team, Really appreciate your work. cargo-mobile is really good!

I tried to run cargo mobile on my apple MacBook Air m1 that has arm chip. I have rust 1.49 beta installed (which is natively supported for m1 via rustup, I haven't tested 1.49 beta intel version through rosetta though).

cargo install --git https://github.com/BrainiumLLC/cargo-mobile

Below is the error log -

   Compiling structopt v0.3.21
   Compiling toml v0.5.7
   Compiling path_abs v0.5.0
   Compiling handlebars v3.5.1
   Compiling bicycle v0.1.0 (https://github.com/BrainiumLLC/bicycle?rev=28080e0c6fa4067d9dd1b0f2b7322b6b32178e1f#28080e0c)
   Compiling cargo-mobile v0.1.0 (/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/d5a6ede)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-arch" "arm64" "-L" "/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.0.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.1.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.10.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.11.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.12.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.13.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.14.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.15.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.2.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.3.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-install38xKVF/release/deps/cargo_apple.cargo_apple.2mp5i5cw-cgu.4.rcgu.o" "/var/folders/b_/p49y76gj0fqcg9

Thanks, Nikhil

nikhil-advait avatar Dec 15 '20 04:12 nikhil-advait

Thanks for reporting this!

Could you try cargo install -vv --git https://github.com/BrainiumLLC/cargo-mobile so we can get more info?

francesca64 avatar Dec 15 '20 18:12 francesca64

Seems like -vv flag does point to problem. Please find below logs obtained after giving -vv flag:

[cargo-mobile 0.1.0] cargo:rerun-if-changed=/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/64d68a9/templates/apps/bevy-demo/.gitignore.hbs
[cargo-mobile 0.1.0] cargo:rerun-if-changed=/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/64d68a9/templates/apps/bevy-demo/src/lib.rs.hbs
[cargo-mobile 0.1.0] cargo:rerun-if-changed=/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/64d68a9/templates/apps/bevy.toml
     Running `CARGO=/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/bin/cargo CARGO_CRATE_NAME=cargo_mobile CARGO_MANIFEST_DIR=/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/64d68a9 CARGO_PKG_AUTHORS='Brainium Studios LLC:Francesca Lovebloom <[email protected]>' CARGO_PKG_DESCRIPTION='Rust on mobile made easy'\!'' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=Apache-2.0/MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=cargo-mobile CARGO_PKG_REPOSITORY='https://github.com/BrainiumLLC/cargo-mobile' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 DYLD_FALLBACK_LIBRARY_PATH='/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps:/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/lib:/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/lib:/Users/nikhil/lib:/usr/local/lib:/usr/lib' OUT_DIR=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/build/cargo-mobile-b9d377f423f0b8be/out rustc --crate-name cargo_mobile --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' -C metadata=5c60297625325658 -C extra-filename=-5c60297625325658 --out-dir /var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps -L dependency=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps --extern bicycle=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libbicycle-501ec4aff0451ca4.rmeta --extern bossy=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libbossy-c0c947f8d4ccacee.rmeta --extern cocoa=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcocoa-9f2fa012c102fdb3.rmeta --extern colored=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcolored-4e35ee9c37a30fc3.rmeta --extern core_foundation=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcore_foundation-d0506f383406caef.rmeta --extern deunicode=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libdeunicode-03147bd6e397a686.rmeta --extern english_numbers=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libenglish_numbers-c659f064626f835b.rmeta --extern env_logger=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libenv_logger-caf0ebef84452066.rmeta --extern heck=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libheck-88b67f7bb8883566.rmeta --extern home=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libhome-e93e586616c73b2d.rmeta --extern ignore=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libignore-ca9689071b392dbf.rmeta --extern indexmap=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libindexmap-749d133e26f6bd62.rmeta --extern java_properties=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libjava_properties-4c0cd86c5983bea1.rmeta --extern log=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/liblog-16302f5ae92f6ee0.rmeta --extern objc=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libobjc-e5d69c2c5a8bed6e.rmeta --extern objc_id=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libobjc_id-7291f3197726fa90.rmeta --extern once_cell_regex=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libonce_cell_regex-19828580c88fb53b.rmeta --extern openssl=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libopenssl-e4cb617ad5e6f633.rmeta --extern path_abs=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libpath_abs-9a6bdd4dfc9781ba.rmeta --extern publicsuffix=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libpublicsuffix-9676e37b4094c1a8.rmeta --extern reserved_names=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libreserved_names-df8f876821ae56af.rmeta --extern serde=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libserde-3ee5fbb43b065b6d.rmeta --extern serde_json=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libserde_json-66bcfceb1ed1f0a5.rmeta --extern structopt=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libstructopt-e1303f2c7163bc75.rmeta --extern textwrap=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libtextwrap-9309173f45d6be88.rmeta --extern thiserror=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libthiserror-b42525098e85cb2e.rmeta --extern toml=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libtoml-87d7b460d1ad4b81.rmeta --extern yes_or_no=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libyes_or_no-1da0d74946941c20.dylib -L 'native=/usr/local/opt/[email protected]/lib'`
error: expected `,`, or `}`, found keyword `pub`
   --> src/util/mod.rs:138:49
    |
138 |     pub flavor: Option<(String, Option<String>)>
    |                                                 ^ help: try adding a comma: `,`

error: aborting due to previous error

error: could not compile `cargo-mobile`

Caused by:
  process didn't exit successfully: `CARGO=/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/bin/cargo CARGO_CRATE_NAME=cargo_mobile CARGO_MANIFEST_DIR=/Users/nikhil/.cargo/git/checkouts/cargo-mobile-b8b95f6242c7b8a6/64d68a9 CARGO_PKG_AUTHORS='Brainium Studios LLC:Francesca Lovebloom <[email protected]>' CARGO_PKG_DESCRIPTION='Rust on mobile made easy'\!'' CARGO_PKG_HOMEPAGE='' CARGO_PKG_LICENSE=Apache-2.0/MIT CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=cargo-mobile CARGO_PKG_REPOSITORY='https://github.com/BrainiumLLC/cargo-mobile' CARGO_PKG_VERSION=0.1.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=1 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE=1 DYLD_FALLBACK_LIBRARY_PATH='/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps:/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/lib:/Users/nikhil/.rustup/toolchains/beta-aarch64-apple-darwin/lib:/Users/nikhil/lib:/usr/local/lib:/usr/lib' OUT_DIR=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/build/cargo-mobile-b9d377f423f0b8be/out rustc --crate-name cargo_mobile --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no --cfg 'feature="default"' -C metadata=5c60297625325658 -C extra-filename=-5c60297625325658 --out-dir /var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps -L dependency=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps --extern bicycle=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libbicycle-501ec4aff0451ca4.rmeta --extern bossy=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libbossy-c0c947f8d4ccacee.rmeta --extern cocoa=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcocoa-9f2fa012c102fdb3.rmeta --extern colored=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcolored-4e35ee9c37a30fc3.rmeta --extern core_foundation=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libcore_foundation-d0506f383406caef.rmeta --extern deunicode=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libdeunicode-03147bd6e397a686.rmeta --extern english_numbers=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libenglish_numbers-c659f064626f835b.rmeta --extern env_logger=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libenv_logger-caf0ebef84452066.rmeta --extern heck=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libheck-88b67f7bb8883566.rmeta --extern home=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libhome-e93e586616c73b2d.rmeta --extern ignore=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libignore-ca9689071b392dbf.rmeta --extern indexmap=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libindexmap-749d133e26f6bd62.rmeta --extern java_properties=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libjava_properties-4c0cd86c5983bea1.rmeta --extern log=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/liblog-16302f5ae92f6ee0.rmeta --extern objc=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libobjc-e5d69c2c5a8bed6e.rmeta --extern objc_id=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libobjc_id-7291f3197726fa90.rmeta --extern once_cell_regex=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libonce_cell_regex-19828580c88fb53b.rmeta --extern openssl=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libopenssl-e4cb617ad5e6f633.rmeta --extern path_abs=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libpath_abs-9a6bdd4dfc9781ba.rmeta --extern publicsuffix=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libpublicsuffix-9676e37b4094c1a8.rmeta --extern reserved_names=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libreserved_names-df8f876821ae56af.rmeta --extern serde=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libserde-3ee5fbb43b065b6d.rmeta --extern serde_json=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libserde_json-66bcfceb1ed1f0a5.rmeta --extern structopt=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libstructopt-e1303f2c7163bc75.rmeta --extern textwrap=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libtextwrap-9309173f45d6be88.rmeta --extern thiserror=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libthiserror-b42525098e85cb2e.rmeta --extern toml=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libtoml-87d7b460d1ad4b81.rmeta --extern yes_or_no=/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM/release/deps/libyes_or_no-1da0d74946941c20.dylib -L 'native=/usr/local/opt/[email protected]/lib'` (exit code: 1)
warning: build failed, waiting for other jobs to finish...
error: failed to compile `cargo-mobile v0.1.0 (https://github.com/BrainiumLLC/cargo-mobile#64d68a93)`, intermediate artifacts can be found at `/var/folders/b_/p49y76gj0fqcg9gsgtywgk6m0000gn/T/cargo-installkmPmEM`

Caused by:
  build failed
nikhil@Nikhils-MacBook-Air ~ % 

Below is rustc version:

nikhil@Nikhils-MacBook-Air ~ % rustc -V
rustc 1.49.0-beta.4 (877c7cbe1 2020-12-10)
nikhil@Nikhils-MacBook-Air ~ % 

nikhil-advait avatar Dec 16 '20 08:12 nikhil-advait

I fixed the compilation error locally for the mod.rs and tried to build carog-mobile locally. Later I debugged more and realised that this is dependencies issue. Basically rustc is arch64 and to compile cargo-mobile we need openssl too which on my machine is intel x64 and hence it fails. I think I should try with intel rust and see.

@francesca64 Please feel free to close the issue if you deem so. If I get any more info I will try to add in comment. But I guess sooner or later somebody with Mac m1 may come here.

Thanks!

nikhil-advait avatar Dec 16 '20 10:12 nikhil-advait

Thanks for the details, and sorry about the compilation error! I pushed up a fix for that, along with CI to catch things like that.

As for openssl, there's fortunately already an upstream PR for this: sfackler/rust-openssl#1388

We're ordering an M1 Mac mini, so we'll be able to ensure M1 support soon.

francesca64 avatar Dec 16 '20 23:12 francesca64

I am currently experiencing an issue building on a M1 mac as well, but my error seems to be related to shaderc-sys v0.6.3, according to xcode. It says I dont have cmake installed even though I do, so it might just be caused from my setup.


warning: System installed library not found.  Falling back to build from source

error: failed to run custom build command for `shaderc-sys v0.6.3`

Caused by:
  process didn't exit successfully: `/Volumes/MacStorage/github/bevy-ios/target/debug/build/shaderc-sys-04f40a1eae86f043/build-script-build` (exit code: 101)
  --- stdout
  cargo:warning=System installed library not found.  Falling back to build from source

  --- stderr
  thread 'main' panicked at '

  couldn't find required command: "cmake"

triscuitcircuit avatar Feb 20 '21 09:02 triscuitcircuit

@triscuitcircuit does anything discussed here help? https://github.com/bevyengine/bevy/issues/928#issuecomment-763000067

francesca64 avatar Feb 22 '21 21:02 francesca64