chiark / gitweb /
plugins: Support user configuration of default values
[cura.git] / build_app.py
index 4c95c85f66524eecbef62f7f2e8c52643d6ad8ca..efa07ecf5f8de96cc1e3db06204196a3b71af6af 100644 (file)
@@ -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.'