code: def build(self):
          '''Do the build.
  
          The target can set build_mode to 'release' or 'debug' before calling
          this method.
  
          (:meth:`prepare_for_build` must have been call before.)
          '''
          assert(self.target is not None)
          assert(hasattr(self.target, '_build_prepared'))
  
          if hasattr(self.target, '_build_done'):
              return
  
          # increment the build number
          self.build_id = int(self.state.get('cache.build_id', '0')) + 1
          self.state['cache.build_id'] = str(self.build_id)
  
          self.info('Build the application #{}'.format(self.build_id))
          self.build_application()
  
          self.info('Package the application')
          self.target.build_package()
  
          # flag to prevent multiple build
          self.target._build_done = Truf build(self):
          '''Do the build.
  
          The target can set build_mode to 'release' or 'debug' before calling
          this method.
  
          (:meth:`prepare_for_build` must have been call before.)
          '''
          assert(self.target is not None)
          assert(hasattr(self.target, '_build_prepared'))
  
          if hasattr(self.target, '_build_done'):
              return
  
          # increment the build number
          self.build_id = int(self.state.get('cache.build_id', '0')) + 1
          self.state['cache.build_id'] = str(self.build_id)
  
          self.info('Build the application #{}'.format(self.build_id))
          self.build_application()
  
          self.info('Package the application')
          self.target.build_package()
  
          # flag to prevent multiple build
          self.target._build_done = True
docs: Do the build.
  
          The target can set build_mode to 'release' or 'debug' before calling
          this method.
  
          (:meth:`prepare_for_build` must have been call before.)