chiark / gitweb /
Fix resources, imports and indentations.
[cura.git] / Cura / setup.py
1 import sys, os, zipfile
2 try:
3         import cx_Freeze
4 except:
5         print "ERROR: You need cx-Freeze installed to build this package"
6         sys.exit(1)
7
8 freezeVersion = map(int, cx_Freeze.version.split('.'))
9 if freezeVersion[0] < 4 or freezeVersion[0] == 4 and freezeVersion[1] < 2:
10         print "ERROR: Your cx-Freeze version is too old to use with Cura."
11         sys.exit(1)
12
13 sys.path.append(os.path.abspath('cura_sf'))
14
15 # Dependencies are automatically detected, but it might need fine tuning.
16 build_exe_options = {
17 "silent": True,
18 "packages": [
19         'encodings.utf_8',
20         "OpenGL", "OpenGL.arrays", "OpenGL.platform", "OpenGL.GLU",
21 ], "excludes": [
22         'Tkinter', 'tcl', 'cura_sf', 'fabmetheus_utilities', 'skeinforge_application', 'numpy',
23 ], "include_files": [
24         ('images', 'images'),
25 ], "build_exe": 'freeze_build'}
26
27 # GUI applications require a different base on Windows (the default is for a
28 # console application).
29 base = None
30 if sys.platform == "win32":
31     base = "Win32GUI"
32
33 cx_Freeze.setup(  name = "Cura",
34                 version = "RC5",
35                 description = "Cura",
36                 options = {"build_exe": build_exe_options},
37                 executables = [cx_Freeze.Executable("cura.py", base=base)])
38
39 m = cx_Freeze.ModuleFinder(excludes=["gui"])
40 m.IncludeFile(os.path.abspath("cura.py"))
41 m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py"))
42 m.IncludeFile(os.path.abspath("cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py"))
43 m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py"))
44 for name in os.listdir("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins"):
45         if name.endswith('.py'):
46                 m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/" + name))
47 m.ReportMissingModules()
48 cwd = os.path.abspath(".")
49
50 z = zipfile.ZipFile("freeze_build/cura_sf.zip", "w", zipfile.ZIP_DEFLATED)
51 for mod in m.modules:
52         if mod.file != None and mod.file.startswith(cwd):
53                 if mod.file[len(cwd)+1:] == "cura.py":
54                         z.write(mod.file[len(cwd)+1:], "__main__.py")
55                 else:
56                         z.write(mod.file[len(cwd)+1:])
57 z.write('cura_sf/fabmetheus_utilities/templates/layer_template.svg')
58 z.write('cura_sf/fabmetheus_utilities/version.txt')
59 z.write('__init__.py')
60 z.close()
61