Changeset 19031

Show
Ignore:
Timestamp:
07/12/06 09:56:35 (2 years ago)
Author:
patrick
Message:

When a module's version changes, remove old versioned files (.lib, .dll,
etc.) from the build tree.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • juggler/trunk/build_windows.py

    r19030 r19031  
    385385   cache_file.close() 
    386386 
    387 def generateVersionHeaders(vcDir): 
     387def updateVersions(vcDir): 
    388388   class JugglerModule: 
    389389      def __init__(self, srcDir, vcDir, projDir, versionEnvVar, 
     
    396396         self.version_env_var_dot = versionEnvVar + '_DOT' 
    397397         self.param_files         = [] 
     398         self.proj_dir            = os.path.join(gJugglerDir, vcDir, projDir) 
    398399 
    399400         if genFiles is not None: 
    400401            for f in genFiles: 
    401                output = os.path.join(gJugglerDir, vcDir, projDir, f[0]) 
     402               output = os.path.join(self.proj_dir, f[0]) 
    402403 
    403404               if len(f) == 1 or f[1] is None: 
     
    408409               self.param_files.append((output, template)) 
    409410 
    410       def generateParamFiles(self): 
     411      def updateParamFiles(self): 
    411412         for (output, template) in self.param_files: 
    412413            if os.path.exists(output): 
     
    426427         os.environ[self.version_env_var_dot] = '%d.%d.%d' % \ 
    427428                                                   (major, minor, patch) 
     429 
     430      def removeOldVersions(self): 
     431         output_files = [] 
     432         for ext in ['lib', 'dll', 'exp', 'ilk', 'pdb']: 
     433            output_files += glob.glob(os.path.join(self.proj_dir, '*', '*', 
     434                                                   '*.' + ext)) 
     435 
     436         mtime = os.path.getmtime 
     437         for f in output_files: 
     438            if mtime(self.version_file) > mtime(f): 
     439               try: 
     440                  os.remove(f) 
     441               except: 
     442                  print "Failed to remove", f 
    428443 
    429444      version_re      = re.compile(r'((\d+)\.(\d+)\.(\d+)-(\d+))\s') 
     
    551566   for m in mods: 
    552567      m.setVersionEnvVar() 
    553       m.generateParamFiles() 
     568      m.updateParamFiles() 
     569      m.removeOldVersions() 
    554570 
    555571def generateAntBuildFiles(vcDir): 
     
    19912007 
    19922008   def runVisualStudio(self): 
    1993       #print "generateVersionHeaders()" 
     2009      #print "updateVersions()" 
    19942010      self.printMessage("Generating Version Headers.") 
    1995       generateVersionHeaders(self.mVcDir) 
     2011      updateVersions(self.mVcDir) 
    19962012      self.printMessage("Generating Ant Build Files.") 
    19972013      generateAntBuildFiles(self.mVcDir) 
     
    20802096      (cl_ver_major, cl_ver_minor, vc_dir) = chooseVisualStudioDir() 
    20812097      options = setVars(cl_ver_major, cl_ver_minor) 
    2082       generateVersionHeaders(vc_dir) 
     2098      updateVersions(vc_dir) 
    20832099      generateAntBuildFiles(vc_dir) 
    20842100