| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/usr/bin/python
- # Packages the editor by copying all relevant files to the Builds directory.
- # This will not execute the editor build, and is implied the editor has been
- # been built before executing this script.
- # Usage: "package_editor $Configuration"
- # Where: $Configuration - e.g. Debug, OptimizedDebug, Release
- import os
- import sys
- import shutil
- configuration = 'Release' #sys.argv[1]
- dataEntriesToIgnore = ['Raw', 'Settings.asset']
- binEntriesToIgnore = ['Game.exe', 'Game.pdb']
- dataFolder = 'Data'
- bsfDataFolder = 'Source\\bsf\\Data'
- assembliesFolder = 'Assemblies'
- monoFolder = 'Mono'
- libFolder = 'x64\\' + configuration + '\\'
- inputDataFolder = '..\\' + dataFolder
- inputBsfDataFolder = '..\\' + bsfDataFolder
- inputBinFolder = '..\\build\\bin\\'
- inputAssembliesFolder = inputBinFolder + assembliesFolder
- inputMonoFolder = inputBinFolder + monoFolder
- inputLibFolder = inputBinFolder + libFolder
- outputBaseFolder = '..\\Builds\Banshee3D\\'
- outputEditorDataFolder = outputBaseFolder + 'EditorData'
- outputDataFolder = outputBaseFolder + dataFolder
- outputBinFolder = outputBaseFolder + '\\bin\\'
- outputAssembliesFolder = outputBinFolder + assembliesFolder
- outputMonoFolder = outputBinFolder + monoFolder
- outputLibFolder = outputBaseFolder
- def copytree(src, dst):
- if not os.path.exists(dst):
- os.makedirs(dst)
-
- for item in os.listdir(src):
- if item in dataEntriesToIgnore:
- print("Ignoring " + item)
- continue
-
- s = os.path.join(src, item)
- d = os.path.join(dst, item)
- print(s)
- if os.path.isdir(s):
- copytree(s, d)
- else:
- shutil.copy2(s, d)
-
- def package_editor():
- if os.path.exists(outputBaseFolder):
- shutil.rmtree(outputBaseFolder)
- copytree(inputDataFolder, outputEditorDataFolder)
- copytree(inputBsfDataFolder, outputDataFolder)
- copytree(inputAssembliesFolder, outputAssembliesFolder)
- copytree(inputMonoFolder, outputMonoFolder)
- for root, dirs, files in os.walk(inputLibFolder):
- for file in files:
- if(file.lower().endswith(('.dll', '.exe', '.pdb', '.so', '.dylib'))):
- if(not file in binEntriesToIgnore):
- filePath = os.path.join(root, file)
- shutil.copy(filePath, outputLibFolder)
- package_editor()
|