def build(self, force=False):
        """
        Generates the resource file and module for the given path.
        
        :param      force | <bool>
        """
        basepath = self.resourcePath()
        if basepath is None:
            return
        
        outpath = self.pluginPath()
        logger = self.logger()
        
        for rsc in os.listdir(basepath):
            rscpath = os.path.join(basepath, rsc)
            if os.path.isfile(rscpath):
                continue

            opts = (projexui.qt.QT_WRAPPER.lower(), rsc)
            xml_file = os.path.join(basepath, '{1}.qrc'.format(*opts))
            py_file = os.path.join(outpath, '{0}_{1}_rc.py'.format(*opts))
            
            # determine the update for the build system
            if os.path.exists(py_file):
                modtime = os.path.getmtime(py_file)
                outdated = force
            else:
                modtime = None
                outdated = True
            
            # generate the XML data for the filepath
            basepath = os.path.normpath(os.path.abspath(basepath))
            rscpath = os.path.join(basepath, rsc)
            xroot = ElementTree.Element('RCC')
            for root, folders, files in os.walk(rscpath):
                if not files:
                    continue
                
                xresource = ElementTree.SubElement(xroot, 'qresource')
                opts = [rsc, root[len(rscpath)+1:].replace(os.path.sep, '/')]
                xresource.set('prefix', '{0}/{1}'.format(*opts).strip('/'))
                
                # add the files to the resource file
                for file in files:
                    filename = os.path.join(root, file)
                    if not outdated and modtime < os.path.getmtime(filename):
                        outdated = True
                    
                    xfile = ElementTree.SubElement(xresource, 'file')
                    xfile.set('alias', file)
                    xfile.text = os.path.relpath(filename, basepath)
            
            # if the resource file is out dated, then save and generate it
            if outdated and len(xroot):
                logger.info('Generating {0} resource file..'.format(xml_file))
                projex.text.xmlindent(xroot)
                ElementTree.ElementTree(xroot).write(xml_file)
                
                projexui.buildResourceFile(xml_file, py_file)
Generates the resource file and module for the given path.
        
        :param      force | <bool>