On Sun, 17 Mar 2013 21:01:15 GMT, Robert wrote:

If the libraries are built as source libraries, their main file is
irrelevant, only the one of the main project is needed to have something
for rdmd. If on the other hand they are static/dynamic libraries, their
main files will be used individually to build each of them - no
conflicts there.

My thinking was if it is a source library, dub should not provide the main-containing file of vibe to the compiler if the application provides its own, but it should do that if the application does not provide its own main. But you are right, if we simply build static/dynamic libraries and use them, the linker takes care of that automatically.

I think this is a misunderstanding of what we both thought what a "main file" is (containing main() vs. being the root of the dependency hierarchy). So in particular the difficult problem is not to know if an application has a "main file", but if that file actually contains main() or not.