I am sorry and thank you, @paroj!!!
I see that I was wrong and, since Ogre::Root uses the Ogre::FileSystemLayer, it is in fact designed to be system-wide installation friendly.
But now I realize why my debian system does not find the default (installed by Ogre, not me) "plugins.cfg".
https://github.com/OGRECave/ogre-next/b ... er.cpp#L80
In linux systems, Ogre does some sort of ogre magic craft to determine the final executable directory.
But for system-wide shared libraries, the executable might be installed in a place completely different from the Ogre library. It actually could be not installed... running from my build dir, for example. Or it could be installed in my home directory, while the shared library is system-wide.
So, in *nixes, the curretn "getConfigPaths()" implementation does not return the "correct" paths ("correct" as in what I expected ).
IMO, a "correct" implementation for FileSystemLayer::getConfigPaths() would:
-
List build directories in debug mode.
-
List app installed directories. (the app needs to pass this information somewhere - or, the OS dependent ogre magic craft: /proc in nixes)
List Ogre installed directories: DATA_DIR.
-
Look into current working directory.
Also, I find this line a little curious:
https://github.com/OGRECave/ogre-next/b ... ayer.h#L99
Because the current directory was already searched for and the file is "known" to not exist. I guess that at least a warning message would be in place.