package_editor.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/python
  2. # Packages the editor by copying all relevant files to the Builds directory.
  3. # This will not execute the editor build, and is implied the editor has been
  4. # been built before executing this script.
  5. # Usage: "package_editor $Configuration"
  6. # Where: $Configuration - e.g. Debug, OptimizedDebug
  7. import os
  8. import sys
  9. import shutil
  10. configuration = 'OptimizedDebug' #sys.argv[1]
  11. dataEntriesToIgnore = ['Examples', 'Raw', 'Settings.asset']
  12. binEntriesToIgnore = ['Game.exe', 'Game.pdb', 'ExampleProject.exe', 'ExampleProject.pdb',
  13. 'BansheeD3D9RenderAPI.dll', 'BansheeD3D9RenderAPI.pdb']
  14. dataFolder = 'Data'
  15. assembliesFolder = 'Assemblies'
  16. monoFolder = 'Mono'
  17. libFolder = 'x64\\' + configuration + '\\'
  18. inputDataFolder = '..\\' + dataFolder
  19. inputBinFolder = '..\\bin\\'
  20. inputAssembliesFolder = inputBinFolder + assembliesFolder
  21. inputMonoFolder = inputBinFolder + monoFolder
  22. inputLibFolder = inputBinFolder + libFolder
  23. outputBaseFolder = '..\\Builds\Banshee Editor\\'
  24. outputDataFolder = outputBaseFolder + dataFolder
  25. outputBinFolder = outputBaseFolder + '\\bin\\'
  26. outputAssembliesFolder = outputBinFolder + assembliesFolder
  27. outputMonoFolder = outputBinFolder + monoFolder
  28. outputLibFolder = outputBaseFolder
  29. def ignore_data(path, entries):
  30. if path != inputDataFolder:
  31. return []
  32. return list(set(dataEntriesToIgnore) & set(entries))
  33. def package_editor():
  34. if os.path.exists(outputBaseFolder):
  35. shutil.rmtree(outputBaseFolder)
  36. os.makedirs(outputBaseFolder)
  37. shutil.copytree(inputDataFolder, outputDataFolder, False, ignore_data)
  38. shutil.copytree(inputAssembliesFolder, outputAssembliesFolder)
  39. shutil.copytree(inputMonoFolder, outputMonoFolder)
  40. for root, dirs, files in os.walk(inputLibFolder):
  41. for file in files:
  42. if(file.lower().endswith(('.dll', '.exe', '.pdb', '.so'))):
  43. if(not file in binEntriesToIgnore):
  44. filePath = os.path.join(root, file)
  45. shutil.copy(filePath, outputLibFolder)
  46. package_editor()