← Back to team overview

yade-dev team mailing list archive

Re: YADE_REQUIRE_FEATURE and Linking.

 

Hi Janek,

On 2/15/19 7:06 PM, Janek Kozicki wrote:
   ./scripts/linkdeps.py:          m=re.match('^YADE_REQUIRE_FEATURE\((.*)\).*',l)
....
which means that the only mention of YADE_REQUIRE_FEATURE is in
documentation, and that Chia Weng Boon tried to use it in
PotentialBlocks code, but it is commented out.

So should we remove this section? But why is it present in ./scripts/linkdeps.py ?

It could be that the mechanism is functional but not effectively used. Not sure. Worth a try before removing.

You should get an idea of the the mechanism effectively used at the moment just reading CMakeLists.txt. On this basis cmake will define c++ preprocessor macros which can be used for #ifdef's.

The next section about Linking is also incorrect, because when I do this command

   find -name "*.so" -exec basename {} \; | sort | uniq

in the build tree, I obtain:

_GLViewer.so
_customConverters.so
_packObb.so
_packPredicates.so
_packSpheres.so
_polyhedra_utils.so
_utils.so
boot.so
libyade.so
wrapper.so

which is different from what is described in https://yade-dev.gitlab.io/trunk/prog.html#linking
The above libs correspond to python modules which can be imported in python scripts, they are not loaded at runtime (well, utils is loaded at runtime but that's because the startup script has some "import utils" inside). We oscillated between monolithic build and independent plugins a couple time if I remember well. We are more on the monolithic side at the moment. Why the split is as it is now is not something I can justify fully, I would have to check case by case. I suspect in some cases - e.g. polyhedra - it's just because the developper liked it this way. I know utils is high demanding in terms of RAM so utils+libyade in one single lib would probably increase the memory requirement for compiling yade.

What should we do with this?
I think developer manual could assume monolithic build and so there is no real need for a "linking" section. The possibility of adding independent python modules with boost::python could be mentioned, with an example selected in the above.

PS: I am not sure where I should post these concerns:

* https://gitlab.com/yade-dev/trunk/merge_requests/69
* https://gitlab.com/yade-dev/trunk/issues
* here, on yade-dev


Too many communication channels are not good. One has too monitor them all.

For me it doesn't make a real difference since I'm receiving them all, but I'm "owner" of the gitlab group, I don't know what happens for others.

Cheers

Bruno








References