X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=cura.git;a=blobdiff_plain;f=build_app.py;h=efa07ecf5f8de96cc1e3db06204196a3b71af6af;hp=4c95c85f66524eecbef62f7f2e8c52643d6ad8ca;hb=HEAD;hpb=c749553092a76f862a96018280d5c9cb112a09b8 diff --git a/build_app.py b/build_app.py index 4c95c85f..efa07ecf 100644 --- a/build_app.py +++ b/build_app.py @@ -5,13 +5,15 @@ import os if sys.platform.startswith('darwin'): from setuptools import setup + version = os.environ['BUILD_VERSION'] + APP = ['Cura/cura.py'] - DATA_FILES = ['Cura/LICENSE', 'Cura/resources/images', 'Cura/resources/meshes', 'Cura/resources/example', 'Cura/resources/firmware'] + DATA_FILES = ['Cura/LICENSE', 'resources/images', 'resources/meshes', 'resources/example', 'resources/firmware', 'resources/locale', 'resources/machine_profiles', 'resources/quickprint', 'plugins'] PLIST = { u'CFBundleName': u'Cura', - u'CFBundleShortVersionString': u'13.06.5', - u'CFBundleVersion': u'13.06.5', - u'CFBundleIdentifier': u'com.ultimaker.Cura', + u'CFBundleShortVersionString': version, + u'CFBundleVersion': version, + u'CFBundleIdentifier': u'com.ultimaker.Cura-'+version, u'LSMinimumSystemVersion': u'10.6', u'LSApplicationCategoryType': u'public.app-category.graphics-design', u'CFBundleDocumentTypes': [ @@ -46,12 +48,27 @@ if sys.platform.startswith('darwin'): u'UTTypeConformsTo': [u'public.xml', u'public.audiovisual-content'], u'UTTypeDescription': u'Digital Asset Exchange (DAE)', u'UTTypeTagSpecification': {u'public.filename-extension': [u'dae'], u'public.mime-type': [u'model/vnd.collada+xml']} + }, + { + u'UTTypeIdentifier': u'com.ultimaker.obj', + u'UTTypeConformsTo': [u'public.data'], + u'UTTypeDescription': u'Wavefront OBJ', + u'UTTypeReferenceURL': u'https://en.wikipedia.org/wiki/Wavefront_.obj_file', + u'UTTypeTagSpecification': {u'public.filename-extension': [u'obj'], u'public.mime-type': [u'text/plain']} + }, + { + u'UTTypeIdentifier': u'com.ultimaker.amf', + u'UTTypeConformsTo': [u'public.data'], + u'UTTypeDescription': u'Additive Manufacturing File', + u'UTTypeReferenceURL': u'https://en.wikipedia.org/wiki/Additive_Manufacturing_File_Format', + u'UTTypeTagSpecification': {u'public.filename-extension': [u'amf'], u'public.mime-type': [u'text/plain']} } ] } OPTIONS = { + 'arch': 'intel', 'argv_emulation': True, - 'iconfile': 'Cura/resources/Cura.icns', + 'iconfile': 'resources/Cura.icns', 'includes': ['objc', 'Foundation'], 'resources': DATA_FILES, 'optimize': '2', @@ -68,63 +85,4 @@ if sys.platform.startswith('darwin'): setup_requires=['py2app'] ) else: - import zipfile - try: - import cx_Freeze - except: - print "ERROR: You need cx-Freeze installed to build this package" - sys.exit(1) - - freezeVersion = map(int, cx_Freeze.version.split('.')) - if freezeVersion[0] < 4 or freezeVersion[0] == 4 and freezeVersion[1] < 2: - print "ERROR: Your cx-Freeze version is too old to use with Cura." - sys.exit(1) - - sys.path.append(os.path.abspath('cura_sf')) - - # Dependencies are automatically detected, but it might need fine tuning. - build_exe_options = { - "silent": True, - "packages": [ - 'encodings.utf_8', - "OpenGL", "OpenGL.arrays", "OpenGL.platform", "OpenGL.GLU", - ], "excludes": [ - 'Tkinter', 'tcl', 'cura_sf', 'fabmetheus_utilities', 'skeinforge_application', 'numpy', - ], "include_files": [ - ('images', 'images'), - ], "build_exe": 'freeze_build'} - - # GUI applications require a different base on Windows (the default is for a - # console application). - base = None - if sys.platform == "win32": - base = "Win32GUI" - - cx_Freeze.setup( name = "Cura", - version = "RC5", - description = "Cura", - options = {"build_exe": build_exe_options}, - executables = [cx_Freeze.Executable("cura.py", base=base)]) - - m = cx_Freeze.ModuleFinder(excludes=["gui"]) - m.IncludeFile(os.path.abspath("cura.py")) - m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py")) - m.IncludeFile(os.path.abspath("cura_sf/fabmetheus_utilities/fabmetheus_tools/interpret_plugins/stl.py")) - m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/export_plugins/static_plugins/gcode_small.py")) - for name in os.listdir("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins"): - if name.endswith('.py'): - m.IncludeFile(os.path.abspath("cura_sf/skeinforge_application/skeinforge_plugins/craft_plugins/" + name)) - m.ReportMissingModules() - cwd = os.path.abspath(".") - - z = zipfile.ZipFile("freeze_build/cura_sf.zip", "w", zipfile.ZIP_DEFLATED) - for mod in m.modules: - if mod.file != None and mod.file.startswith(cwd): - if mod.file[len(cwd)+1:] == "cura.py": - z.write(mod.file[len(cwd)+1:], "__main__.py") - else: - z.write(mod.file[len(cwd)+1:]) - z.write('cura_sf/fabmetheus_utilities/templates/layer_template.svg') - z.write('cura_sf/fabmetheus_utilities/version.txt') - z.write('__init__.py') - z.close() + print 'No build_app implementation for your system.'