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
[question] Propagation of overridden settings #13949
Comments
Hi @marausch Thanks for your question. The per-package settings are pattern based, the only input that it takes is the package reference. And propagating settings in the graph is not possible, we have considered it a couple of times, but it will not happen. We have a lot of experience with the propagation of the Also, the definition of "settings" are "global, whole dependency graph configuration". Even if they allow some exceptions via per-package settings, the idea is that the same settings should be applied over the whole graph. What is your use case, what are you trying to achieve? What are your different settings in that dependency graph? Maybe they can be options instead? The possible alternatives here would be around the package name itself. If there is something in the package name, or even the channel, that identifies those packages as belonging to that specific subgraph, that could be leveraged. |
Hi @memsharded, First of all, thank you for your quick response. Let's try to explain our use-case in a most simplified manner. Target of our embedded software project is a device (a single board) having two different cores that interact with each other through some common hardware (IOs, shared memory).
Each APP1 and APP2 module's binary is built with a dedicated Conan profile, let's call them Profile1 and Profile2. They differ only by the compiler setting (each core has an own compiler). All this seems to work well if we do the whole build in three separate steps:
Now we are just wondering (mainly out of curiosity) if it is somehow possible to build MAIN with '-b missing', in practice the whole project at once. Kind regards |
Thanks for the detailed explanation, it is more clear now! I think that trying to force Conan to expand this graph with 2 different subgraphs with different settings might be a bit complicated. I am thinking that if the final goal is to
Then, probably what I'd try to do it is to automate the generation of that artefact. If the main issue is that it is a 3 step process a bit verbose, creating a new custom command that takes as input the 2 (or N) apps, and 2 (or N) profiles, builds/computes them, finally gathering the binaries and creating an executable, would be doable and nicely integrated. Such custom command can also take the data from a file too, so defining your own yaml or json file, with the "apps" to integrate, the profiles to use for each one, etc, should be quite easy too. As an extra bonus, if you also want to put the final artefact into an extra Conan package, you can also do it, with an extra Note: all of this looks closely related to this ticket: #13171. We will consider this in our 2.X roadmap as built-in. |
Thank you very much! |
What is your question?
Hi,
Suppose we have a profile where some settings are overridden for a certain package (as explained in section Profile patterns of Conan 2.0 documentation).
Are the values of those overridden settings propagated to the dependencies of that package?
If not, is there a way to obtain that behavior?
TIA
Have you read the CONTRIBUTING guide?
The text was updated successfully, but these errors were encountered: