Small improvements to portable build script (fixes #157)
- Make notice that prebuild openslides.exe is used instead of compiling it from source a bit friendlier so it isn't confused with an error - Reduce span of try/except to avoid masking errors when we only want to gracefully handle the case that no compiler is present - Show "success" message after creating the portable zip
This commit is contained in:
parent
dda3078fe0
commit
c8ceb7ab3d
@ -190,12 +190,19 @@ def collect_site_packages(sitedir, odir):
|
|||||||
copy_pil(odir)
|
copy_pil(odir)
|
||||||
|
|
||||||
def compile_openslides_launcher():
|
def compile_openslides_launcher():
|
||||||
|
try:
|
||||||
cc = distutils.ccompiler.new_compiler()
|
cc = distutils.ccompiler.new_compiler()
|
||||||
|
if not cc.initialized:
|
||||||
|
cc.initialize()
|
||||||
|
except distutils.errors.DistutilsError:
|
||||||
|
return False
|
||||||
|
|
||||||
cc.add_include_dir(distutils.sysconfig.get_python_inc())
|
cc.add_include_dir(distutils.sysconfig.get_python_inc())
|
||||||
cc.add_library_dir(os.path.join(sys.exec_prefix, "Libs"))
|
cc.add_library_dir(os.path.join(sys.exec_prefix, "Libs"))
|
||||||
|
|
||||||
objs = cc.compile(["extras/win32-portable/openslides.c"])
|
objs = cc.compile(["extras/win32-portable/openslides.c"])
|
||||||
cc.link_executable(objs, "extras/win32-portable/openslides")
|
cc.link_executable(objs, "extras/win32-portable/openslides")
|
||||||
|
return True
|
||||||
|
|
||||||
def copy_dlls(odir):
|
def copy_dlls(odir):
|
||||||
dll_src = os.path.join(sys.exec_prefix, "DLLs")
|
dll_src = os.path.join(sys.exec_prefix, "DLLs")
|
||||||
@ -282,11 +289,8 @@ def main():
|
|||||||
exclude = get_pkg_exclude("openslides", OPENSLIDES_EXCLUDE)
|
exclude = get_pkg_exclude("openslides", OPENSLIDES_EXCLUDE)
|
||||||
copy_dir_exclude(exclude, ".", "openslides", odir)
|
copy_dir_exclude(exclude, ".", "openslides", odir)
|
||||||
|
|
||||||
try:
|
if not compile_openslides_launcher():
|
||||||
compile_openslides_launcher()
|
sys.stdout.write("Using prebuild openslides.exe\n")
|
||||||
except distutils.errors.DistutilsError:
|
|
||||||
sys.stderr.write("openslides.exe could not be build, "
|
|
||||||
"trying to use existing file\n")
|
|
||||||
|
|
||||||
shutil.copyfile("extras/win32-portable/openslides.exe",
|
shutil.copyfile("extras/win32-portable/openslides.exe",
|
||||||
os.path.join(odir, "openslides.exe"))
|
os.path.join(odir, "openslides.exe"))
|
||||||
@ -297,19 +301,21 @@ def main():
|
|||||||
shutil.copytree("extras/win32-portable/licenses",
|
shutil.copytree("extras/win32-portable/licenses",
|
||||||
os.path.join(odir, "licenses"))
|
os.path.join(odir, "licenses"))
|
||||||
|
|
||||||
fp = os.path.join("dist", "openslides-{0}-portable.zip".format(
|
zip_fp = os.path.join("dist", "openslides-{0}-portable.zip".format(
|
||||||
openslides.get_version()))
|
openslides.get_version()))
|
||||||
|
|
||||||
write_readme("extras/win32-portable/README.txt.in",
|
write_readme("extras/win32-portable/README.txt.in",
|
||||||
os.path.join(odir, "README.txt"))
|
os.path.join(odir, "README.txt"))
|
||||||
|
|
||||||
with zipfile.ZipFile(fp, "w", zipfile.ZIP_DEFLATED) as zf:
|
with zipfile.ZipFile(zip_fp, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||||
for dp, dnames, fnames in os.walk(odir):
|
for dp, dnames, fnames in os.walk(odir):
|
||||||
for fn in fnames:
|
for fn in fnames:
|
||||||
fp = os.path.join(dp, fn)
|
fp = os.path.join(dp, fn)
|
||||||
rp = relpath(odir, fp)
|
rp = relpath(odir, fp)
|
||||||
zf.write(fp, rp)
|
zf.write(fp, rp)
|
||||||
|
|
||||||
|
print("Successfully build {0}".format(zip_fp))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user