MorphOS Developer
Posts: 173 from 2003/3/17
Quote:
MartinW wrote:
Not surprisingly, I think this is operator error. On multiple counts! The Flow UI is kind of confusing though in my defence.
Thanks for your feedback. I can see that it would be good with some documentation for people to get up to speed with how FlowStudio's build infrastructure works. Having said this, I really made a best effort to make the GUI easily accessible for simple projects while still making it possible to use it for really complex projects. I'm sure it's possible to improve on this but the trade-offs are not so easy.
FlowStudio, as well as several other large MorphOS applications, are built using this functionality but I have also tested very simple projects so I'm quite confident it works more or less as intended
Quote:
1: There are multiple places, seemingly to enter the same information.
You have Project Settings, Compiler and Linker tabs. These appear to me to be completely ignored in favour of the same tabs under the specific target when you edit the target. I'm thinking maybe they specify some defaults though because the targets do seem to come pre-populated if I've already populated though tabs, apart from "Linker Libraries" that I don't think it understands (see point 3).
No, by default there is only one single place where you have to enter a given set of information. Unless you have specific needs, you should not even change target specific settings (which you get to by double clicking on a target). Moreover, until you have specifically ticked "Customized tool settings" for a target, the compiler and linker settings for a target will be shaded to indicate that the global settings will be used.
Quote:
2: I had specified gcc11 for the compiler and simply gcc (well, ppc-morphs-gcc) for the linker. That definitely caused at least one error / failure.
That is a bit surprising. Typically, ppc-morphos-gcc should be able to link objects created by other versions of gcc as well. I haven't tested your specific case though
Quote:
3: Final and probably bigger one is the way that you enter the libraries in the linker tab. When I go to enter a library I have a little folder widget which brings up an ambient file browser and seems to expect me to pick an actual static library file such as `libSDL3.a`. Then it populates the full paths. That's fine but for a novice like me, I don't know which path to pick (libnix? libb32? etc.) and it all fails horribly. BUT, I just realised that instead of clicking the widget I can just enter the name as I would in a Makefile - '-lSDL3', '-lGL' and so on for each entry. Add -L/gg/etc as a linker flag and indeed it does then all seem to work just fine. But it feels like I'm not doing what the application is expecting there.
This is an area where I had planned a more extensive GUI functionality (to list available link libraries and so on) but I never got around to implement it.The way it works now, it is best to just type e.g. -lGL manually if you want to use the default path but in case you have a custom linklib that you want to add, it might be convenient to use the ASL requester. For instance, in the FlowStudio link settings I have linklibs like "../../development/tools/astyle/build/gcc/bin/libastyle.a" which I added using the requester.