Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

winget missing packages #129

Open
23 tasks
Jasper-Bekkers opened this issue Aug 18, 2023 · 8 comments
Open
23 tasks

winget missing packages #129

Jasper-Bekkers opened this issue Aug 18, 2023 · 8 comments

Comments

@Jasper-Bekkers
Copy link

Jasper-Bekkers commented Aug 18, 2023

  • clang
  • clang++
  • llvm-ar
  • llvm-lib
  • llvm-readobj
  • lld
  • lld-link
  • lldb
  • lldb-server
  • rustup
  • cargo
  • adb
  • javac
  • java
  • kotlin
  • gradle
  • idevice_id
  • ideviceinfo
  • ideviceinstaller
  • ideviceimagemounter
  • idevicedebug
  • idevicedebugserverproxy
  • mksquashfs
@dvc94ch
Copy link
Contributor

dvc94ch commented Aug 18, 2023

can you run x doctor on a clean windows installation? then list all the missing packages and see if you can install them with winget. would be interested to know which packages can't be installed with winget and have an issue to track that. would also be nice to update the readme for other users.

@dvc94ch dvc94ch changed the title llvm-readobj not found winget missing packages Aug 18, 2023
@Jasper-Bekkers
Copy link
Author

Hey @dvc94ch I don't quite understand why you changed my issue?

@dvc94ch
Copy link
Contributor

dvc94ch commented Aug 18, 2023

Well, we don't need an issue for every missing package, one to track missing packages is enough

@duckinator
Copy link

Due to there being no appropriate flag on the installer, you can't just do winget install LLVM.LLVM and get it in your PATH.

However, until that's resolved: winget install -e -i --id LLVM.LLVM will show the GUI for the installer, which lets you select the option to add it to the PATH.

This gets you all of the LLVM tools.


I have not tested it, but it looks like winget also has Rustlang.Rustup, which (if it works properly) should address the Rust toolchain.

@dvc94ch
Copy link
Contributor

dvc94ch commented Jan 21, 2024

Some docs would be great! I don't have a windows machine and the GitHub ci has chocolatey pre installed. But I know @MarijnS95 had some issues with installing all packages with winget

@duckinator
Copy link

It's worth someone trying this in a fresh Windows VM to make sure it actually works, but this may be all you need for Android development using a pure-Rust codebase:

winget install -e -i --id LLVM.LLVM # Make sure to enable the option to add it to your PATH.
winget install Rustlang.Rustup Google.AndroidStudio

I don't see a way to install the iOS tools, mksquashfs, kotlin, or gradle via winget.

Things to be determined:

  • do any of the Java packages on winget work for this? if so, which one?
  • does Google.AndroidStudio include adb? if not, is there a different way to get it via winget?
  • does Rustlang.Rustup actually work well enough to be used for this?

@MarijnS95
Copy link
Member

MarijnS95 commented Jan 21, 2024

@duckinator that's what we have in our own documentation, but having -i in the winget command and requiring developers to manually click the right options in the visual installer is cumbersome.

I've been following microsoft/winget-pkgs#11767 and llvm/llvm-project#54724 for a long time, but nothing appears to be moving :(.

Not that it matters much, xbuild throws a stripped NDK in a user path, which cc-rs' --sysroot fails on when the username includes spaces (#124). The only "workaround" I've considered is not stripping clang out of the NDK prebuilts, or perhaps there's a user-writable (not requiring root) path outside of %USERPROFILE% that is known to never have spaces, which xbuild could install to?

Until that's resolved, cargo-apk is still the go-to solution which does not suffer from this issue.

@duckinator
Copy link

@MarijnS95 I agree, it's pretty cumbersome and frustrating. I'm just trying to document the state of things in a public spot (to hopefully save other folks the hassle of figuring it out themselves like I did).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants