gtkradiant/install.py

90 lines
2.6 KiB
Python
Raw Normal View History

import os
import shutil
def copyFile(source, target):
assert os.path.isfile(source)
targetFile = target
if os.path.isdir(targetFile):
targetFile = os.path.join(target, os.path.basename(source))
print source, "->", targetFile
shutil.copyfile(source, targetFile)
def copyFileIfExists(source, target):
if os.path.exists(source):
copyFile(source, target)
def copySvn(source, target):
assert os.path.isdir(source)
if not os.path.exists(target):
os.mkdir(target)
for name in os.listdir(source):
absolute = os.path.join(source, name)
absTarget = os.path.join(target, name)
if os.path.isdir(absolute):
if name != ".svn":
copySvn(absolute, absTarget)
else:
copyFile(absolute, absTarget)
def copyGame(source, game, target):
assert os.path.isdir(source)
assert os.path.isdir(target)
root = os.path.join(source, os.path.normpath(game[0]))
if os.path.exists(root):
gamename = game[1] + ".game"
copySvn(os.path.join(root, gamename), os.path.join(target, gamename))
gamesDir = os.path.join(target, "games")
if not os.path.exists(gamesDir):
os.mkdir(gamesDir)
copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename))
thisDir = os.path.dirname(__file__)
gamesRoot = os.path.join(thisDir, "games")
installRoot = os.path.join(thisDir, "install")
if not os.path.exists(installRoot):
os.mkdir(installRoot)
# copy generic data
copySvn(os.path.join(thisDir, os.path.normpath("setup/data/tools")), installRoot)
# root, gamename
games = [
("Doom3Pack/tools", "doom3"),
("ETPack", "et"),
("HalfLifePack", "hl"),
("Her2Pack", "heretic2"),
("JAPack/Tools", "ja"),
("JK2Pack", "jk2"),
("Q1Pack", "q1"),
("Q2Pack", "q2"),
("Q3Pack/tools", "q3"),
("Q4Pack/tools", "q4"),
("Sof2Pack", "sof2"),
("STVEFPack", "stvef"),
("WolfPack/bin", "wolf")
]
# copy games
for game in games:
copyGame(gamesRoot, game, installRoot)
# copy win32 dlls
gtk2Root = os.path.normpath(os.path.join(thisDir, "../gtk2-2.4"))
if os.path.exists(gtk2Root):
copySvn(os.path.join(gtk2Root, "install"), installRoot)
libxml2 = os.path.normpath(os.path.join(thisDir, "../libxml2-2.6/win32/install/libxml2.dll"))
copyFileIfExists(libxml2, installRoot)
libpng = os.path.normpath(os.path.join(thisDir, "../libpng-1.2/lib/libpng13.dll"))
copyFileIfExists(libpng, installRoot)
libmhash = os.path.normpath(os.path.join(thisDir, "../mhash-0.9/win32/libmhash/Release/libmhash.dll"))
copyFileIfExists(libmhash, installRoot)
zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll"))
copyFileIfExists(zlib, installRoot)