public static List<ProtoModule> loadModules(Properties props,
            File baseDirForSource, File baseDirForOutput)
    {
        String moduleString = props.getProperty("modules");
        if (moduleString == null || moduleString.length() == 0)
        {
            propsErr();
            return null;
        }
        CachingProtoLoader loader = "true".equals(props.getProperty("cache_protos")) ?
                new CachingProtoLoader() : null;

        Properties globalOptions = newGlobalOptions(props);

        ArrayList<ProtoModule> modules = new ArrayList<ProtoModule>();
        for (String m : COMMA.split(moduleString))
        {
            modules.add(loadModule(props, m.trim(), loader,
                    baseDirForSource, baseDirForOutput,
                    globalOptions, null, null));
        }

        return modules;
    }
The main execution point of compiling protos.

@author David Yu
@created Jan 5, 2010
protostuff-compiler/src/main/java/io/protostuff/compiler/CompilerMain.java