You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Based on earlier feedback, the idea of multi-architecture packages in conan is too complex. For such an attempt see the combination of #9636 and #9904 to alter every recipe in a dependency graph. It works but is very complicated.
Instead, run lipo during deploy. In that pull @memsharded said "I'd say... leveraging the Conan 2.0 new custom modular commands, start working on a deploy-aggregator with lipo command."
I don't see anything like than in 2.0 but maybe you mean adding a command like:
The deploy generator only has access to one arch, hence the new command to pass multiple archs to one. Is the -g flag useful for other lipo generators, like maybe Android?
I have a working directory copier with lipo in this repo. (It's more complicated than it seems. For example, recognizing what files are binaries, and consolidating different sets of files between the archs.)
I have a custom wrapper that might be useful to others. I'm using in production but I don't know if it's clean enough for others to use. The idea is to lipo all the locally installed package and patch the generated files to point to the fat library paths instead. Then your application's conanfile can build universal in Xcode or whatever, but packages still don't contain universal binaries. I'm not currently working on porting this to 2.0's custom commands, but it could be a starting point for someone else.
We are opening now a new repo for kind of auxiliary, incubator, integrations commands in https://github.com/conan-io/command-extensions. I think we could use this repo to incubate these kind of deployers, as they can be easily installed with conan config install. This will allow for faster iteration, easier customizations for user cases in forks than if it is built-in.
What do you think? Anyone wants to contribute an initial PR with some proposal that gets the ball rolling?
The new repo is a great idea.
I'm not available for at least a couple months, but I'll take a look in May or so if no one has tried. The BuildConan repo above could be useful if someone else wants to look sooner.
Based on earlier feedback, the idea of multi-architecture packages in conan is too complex. For such an attempt see the combination of #9636 and #9904 to alter every recipe in a dependency graph. It works but is very complicated.
Instead, run lipo during deploy. In that pull @memsharded said "I'd say... leveraging the Conan 2.0 new custom modular commands, start working on a deploy-aggregator with lipo command."
I don't see anything like than in 2.0 but maybe you mean adding a command like:
which is similar to:
The deploy generator only has access to one arch, hence the new command to pass multiple archs to one. Is the -g flag useful for other lipo generators, like maybe Android?
I have a working directory copier with lipo in this repo. (It's more complicated than it seems. For example, recognizing what files are binaries, and consolidating different sets of files between the archs.)
https://github.com/gmeeker/conan-lipo-middleware
I believe this obsoletes #9636 and #9904 as well as conan-io/conan-extensions#59 and #6384
I believe this issue is waiting on finished Conan 2.0 documentation for custom commands:
https://docs.conan.io/en/latest/migrating_to_2.0/commands.html#custom-commands
I have a custom wrapper that might be useful to others. I'm using in production but I don't know if it's clean enough for others to use. The idea is to lipo all the locally installed package and patch the generated files to point to the fat library paths instead. Then your application's conanfile can build universal in Xcode or whatever, but packages still don't contain universal binaries. I'm not currently working on porting this to 2.0's custom commands, but it could be a starting point for someone else.
https://github.com/gmeeker/BuildConan.git
The text was updated successfully, but these errors were encountered: