|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import common_ship |
|
|
|
import multiprocessing |
|
import os |
|
import shutil |
|
import subprocess |
|
import sys |
|
|
|
os.chdir(common_ship.topDir) |
|
|
|
def dllVersion(path): |
|
version = subprocess.check_output( |
|
["powershell.exe", |
|
"[System.Diagnostics.FileVersionInfo]::GetVersionInfo(\"" + path + "\").FileVersion"]) |
|
return version.strip() |
|
|
|
|
|
print "Determining Cygwin/MSYS2 DLL versions..." |
|
sys.stdout.flush() |
|
BUILD_TARGETS = [ |
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
"name": "msys2-" + dllVersion("C:\\msys32\\usr\\bin\\msys-2.0.dll") + "-ia32", |
|
"path": "C:\\msys32\\mingw32\\bin;C:\\msys32\\usr\\bin", |
|
}, |
|
{ |
|
"name": "msys2-" + dllVersion("C:\\msys64\\usr\\bin\\msys-2.0.dll") + "-x64", |
|
"path": "C:\\msys64\\mingw64\\bin;C:\\msys64\\usr\\bin", |
|
}, |
|
{ |
|
"name": "cygwin-" + dllVersion("C:\\cygwin\\bin\\cygwin1.dll") + "-ia32", |
|
"path": "C:\\cygwin\\bin", |
|
}, |
|
{ |
|
"name": "cygwin-" + dllVersion("C:\\cygwin64\\bin\\cygwin1.dll") + "-x64", |
|
"path": "C:\\cygwin64\\bin", |
|
}, |
|
] |
|
|
|
def buildTarget(target): |
|
packageName = "winpty-" + common_ship.winptyVersion + "-" + target["name"] |
|
if os.path.exists("ship\\packages\\" + packageName): |
|
shutil.rmtree("ship\\packages\\" + packageName) |
|
oldPath = os.environ["PATH"] |
|
os.environ["PATH"] = target["path"] + ";" + common_ship.defaultPathEnviron |
|
subprocess.check_call(["sh.exe", "configure"]) |
|
makeBinary = target.get("make_binary", "make.exe") |
|
subprocess.check_call([makeBinary, "clean"]) |
|
makeBaseCmd = [ |
|
makeBinary, |
|
"USE_PCH=0", |
|
"COMMIT_HASH=" + common_ship.commitHash, |
|
"PREFIX=ship/packages/" + packageName |
|
] |
|
subprocess.check_call(makeBaseCmd + ["all", "tests", "-j%d" % multiprocessing.cpu_count()]) |
|
subprocess.check_call(["build\\trivial_test.exe"]) |
|
subprocess.check_call(makeBaseCmd + ["install"]) |
|
subprocess.check_call(["tar.exe", "cvfz", |
|
packageName + ".tar.gz", |
|
packageName], cwd=os.path.join(os.getcwd(), "ship", "packages")) |
|
os.environ["PATH"] = oldPath |
|
|
|
def main(): |
|
oldPath = os.environ["PATH"] |
|
for t in BUILD_TARGETS: |
|
os.environ["PATH"] = t["path"] + ";" + common_ship.defaultPathEnviron |
|
subprocess.check_output(["tar.exe", "--help"]) |
|
subprocess.check_output(["make.exe", "--help"]) |
|
for t in BUILD_TARGETS: |
|
buildTarget(t) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|