Commits

Anthony Tuininga  committed ec6bf00

Added support for filtering which versions to create -- needed on Windows where
the build environment differs from Python 3.3 and higher.

  • Participants
  • Parent commits bf436af

Comments (0)

Files changed (1)

 pythonVersions = os.environ["CX_FREEZE_PYTHON_VERSIONS"].split(",")
 pythonFormat = os.environ["CX_FREEZE_PYTHON_FORMAT"]
 
+minVersion = maxVersion = None
+for argNum, argValue in enumerate(sys.argv[1:]):
+    if argValue == "--min-version" and argNum + 2 < len(sys.argv):
+        minVersion = tuple(int(s) for s in sys.argv[argNum + 2].split("."))
+    elif argValue == "--max-version" and argNum + 2 < len(sys.argv):
+        maxVersion = tuple(int(s) for s in sys.argv[argNum + 2].split("."))
+
 for version in pythonVersions:
     majorVersion, minorVersion = [int(s) for s in version.split(".")]
+    if minVersion is not None and (majorVersion, minorVersion) < minVersion:
+        print "Skipping version (less than min)", version
+        continue
+    elif maxVersion is not None and (majorVersion, minorVersion) > maxVersion:
+        print "Skipping version (greater than max)", version
+        continue
     python = pythonFormat % (majorVersion, minorVersion)
     messageFragment = "for Python %s.%s" % (majorVersion, minorVersion)
     sys.stdout.write("Creating release %s.\n" % messageFragment)
     if sys.platform == "win32":
-        if majorVersion == 2 and minorVersion == 4:
-            subCommand = "bdist_wininst"
-        else:
-            subCommand = "bdist_msi"
-        command = "%s setup.py %s" % (python, subCommand)
+        command = "%s setup.py bdist_msi" % python
         sys.stdout.write("Running command %s\n" % command)
         if os.system(command) != 0:
             sys.exit("Stopping. Build %s failed.\n" % messageFragment)