Browse Source

Force version number input, ship both 'panda3d' and 'Panda3D.app' on OSX, and choose an Identifier that doesn't conflict with the app bundle's.

rdb 16 years ago
parent
commit
9fcb863c04
1 changed files with 12 additions and 6 deletions
  1. 12 6
      direct/src/plugin_installer/make_installer.py

+ 12 - 6
direct/src/plugin_installer/make_installer.py

@@ -24,7 +24,7 @@ parser.add_option('-N', '--long', dest = 'long_name',
                   default = 'Panda3D Game Engine')
                   default = 'Panda3D Game Engine')
 parser.add_option('-v', '--version', dest = 'version',
 parser.add_option('-v', '--version', dest = 'version',
                   help = 'The product version',
                   help = 'The product version',
-                  default = PandaSystem.getVersionString())
+                  default = None)
 parser.add_option('-p', '--publisher', dest = 'publisher',
 parser.add_option('-p', '--publisher', dest = 'publisher',
                   help = 'The name of the publisher',
                   help = 'The name of the publisher',
                   default = 'Carnegie Mellon Entertainment Technology Center')
                   default = 'Carnegie Mellon Entertainment Technology Center')
@@ -54,6 +54,8 @@ parser.add_option('', '--nsis', dest = 'nsis',
 
 
 this_dir = os.path.split(sys.argv[0])[0]
 this_dir = os.path.split(sys.argv[0])[0]
 
 
+assert options.version != None, "A version number must be supplied!"
+
 ##############################################################################
 ##############################################################################
 #
 #
 # Locate the relevant files.
 # Locate the relevant files.
@@ -204,8 +206,9 @@ def makeInstaller():
     # up the plugin/runtime.
     # up the plugin/runtime.
     if sys.platform == "darwin":
     if sys.platform == "darwin":
         npapi = 'nppanda3d.plugin'
         npapi = 'nppanda3d.plugin'
-        panda3d = 'Panda3D.app'
-        baseFiles = [npapi, panda3d]
+        panda3d = 'panda3d'
+        panda3dapp = 'Panda3D.app'
+        baseFiles = [npapi, panda3d, panda3dapp]
     else:
     else:
         ocx = 'p3dactivex.ocx'
         ocx = 'p3dactivex.ocx'
         npapi = 'nppanda3d.dll'
         npapi = 'nppanda3d.dll'
@@ -241,13 +244,16 @@ def makeInstaller():
             os.remove("p3d-setup.pkg")
             os.remove("p3d-setup.pkg")
         tmproot.makeDir()
         tmproot.makeDir()
         dst_npapi = Filename(tmproot, Filename("Library/Internet Plug-Ins", npapi))
         dst_npapi = Filename(tmproot, Filename("Library/Internet Plug-Ins", npapi))
-        dst_panda3d = Filename(tmproot, Filename("Applications", panda3d))
+        dst_panda3d = Filename(tmproot, Filename("usr/bin", panda3d))
+        dst_panda3dapp = Filename(tmproot, Filename("Applications", panda3dapp))
         dst_npapi.makeDir()
         dst_npapi.makeDir()
         dst_panda3d.makeDir()
         dst_panda3d.makeDir()
+        dst_panda3dapp.makeDir()
         shutil.copytree(pluginFiles[npapi], dst_npapi.toOsSpecific())
         shutil.copytree(pluginFiles[npapi], dst_npapi.toOsSpecific())
-        shutil.copytree(pluginFiles[panda3d], dst_panda3d.toOsSpecific())
+        shutil.copyfile(pluginFiles[panda3d], dst_panda3d.toOsSpecific())
+        shutil.copytree(pluginFiles[panda3dapp], dst_panda3dapp.toOsSpecific())
         CMD = "/Developer/usr/bin/packagemaker"
         CMD = "/Developer/usr/bin/packagemaker"
-        CMD += ' --id org.panda3d.runtime' #TODO: make this customizable
+        CMD += ' --id org.panda3d.pkg.runtime' #TODO: maybe more customizable?
         CMD += ' --version "%s"' % options.version
         CMD += ' --version "%s"' % options.version
         CMD += ' --title "%s"' % options.long_name
         CMD += ' --title "%s"' % options.long_name
         CMD += ' --out p3d-setup.pkg'
         CMD += ' --out p3d-setup.pkg'