yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #14745
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