-
-
Notifications
You must be signed in to change notification settings - Fork 375
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
Passing pip arguments through on build #1906
Comments
Hello @oddbookworm, |
That doesn't seem to have done anything Here's what I did in
And here's the new log, which doesn't reflect that path at all |
Can you try |
That did result in something different, but probably not what you meant for it to do
|
Ok; so, for an Android Gradle build, the requirements are installed from a generated |
I'm not sure it's generating it correctly though... this is what
|
That path before the |
I think I broke gradle lol. I tried this as the "generated" requirements.txt
Now, it seems to get stuck in some kind of loop when locking and unlocking workers and the daemon registry |
ahh....the format of the This detection is based on the presence of a slash in the value for the requirement. That may make this approach untenable... As for manually modifying the |
Lemme try something, instead of no slashes let me just use |
pyproject.toml
hopefully the heart of the error message
|
Adding what lines are emitting error messages would be useful... |
hmm....looks like the Another option is to bypass Briefcase's abstraction of specifying requirements in |
I'm not sure if I'm doing it right, but in the provided
(error)
and
(error)
|
Chaquopy is using a vendored version of |
Another option altogether here (and perhaps the more reasonable approach) is to build a wheel for pygame-ce first; then that wheel's file path can just be specified in There are general directions at Chaquopy for building Android wheels for arbitrary packages. |
We build wheels for all sorts of systems, so maybe that would be fine. However, we build all of our wheels using CI and I don't think github CI supports android builds. IMO that's not a very sustainable approach for us to take because we'd need to host the build somewhere and ensure that someone builds it regularly by hand. I am going to tag in @ankith26 though, who is our "build system and CI guru" |
Using this
Gave me the same "gradle infinite loop" as when I tried that same thing before here |
If we figure out the process, setting up CI to repeat the process shouldn't be hard. As for passing arguments to meson, you can always edit |
This caused the same infinite looping problem, but I thought to try to use pygame-ce 2.4.1 instead of latest. 2.4.1 was before we migrated to meson and uses the old setup.py build process. Turns out, we're not getting a useful compiler from chaquopy |
|
I guess we are just going to have to build our own wheels |
We already have a repository for Android wheels, and Briefcase uses it automatically when building Android apps. If you follow these instructions to create a recipe, and make a PR in the Chaquopy repository, we'll happily host the wheels for you. |
(Moved to chaquo/chaquopy#1278) |
Let's keep this page focused on the pip arguments issue, and discuss pygame-ce specifically in chaquo/chaquopy#1278. |
What is the problem or limitation you are having?
I'm trying to build pygame-ce for android, which uses the meson-python build system. It's failing somewhere in there, but I can't figure out why. Meson-python always cleans up the temp directory it defaults to, which deletes the log it tells you to reference to see what went wrong. There's this open issue there, but it would be nice to be able to pass args directly to pip during the
briefcase build
stage. Specifically, the arg for this isRelated issue from meson-python: mesonbuild/meson-python#246
Describe the solution you'd like
I found the
--config
option, but it doesn't seem to like passing in something akin to the argument above. So either I'd like it to accept something like--config "-Cbuild-dir"="build/dir/desired"
or some alternative way to tell briefcase to pass a specific command to pipDescribe alternatives you've considered
There's really not much I've been able to think of. Briefcase invokes pip directly internally, and this isn't currently controllable except for that argument at build time
Additional context
I suspect the issue is with dependencies not being available for android build, but without some way to get that log that gets instantly deleted, I don't know how else to confirm my suspicion.
If it's at all helpful, here's a full-verbosity log from my last build attempt
briefcase.2024_07_07-20_40_45.build.log
I'm using a custom pygame-ce build that puts android back as "supported" on the entrypoint so that it'll even attempt to build
The text was updated successfully, but these errors were encountered: