Whoops, fix build error on windows

This commit is contained in:
rdb 2009-09-30 17:32:23 +00:00
parent 3337558bba
commit 0715e7eb14
1 changed files with 47 additions and 26 deletions

View File

@ -55,6 +55,27 @@ for (ver,key) in MAYAVERSIONINFO:
for (ver,key1,key2,subdir) in MAXVERSIONINFO:
MAXVERSIONS.append(ver)
########################################################################
##
## Visual Studio Manifest Manipulation.
##
########################################################################
VC90CRTVERSIONRE=re.compile("name=['\"]Microsoft.VC90.CRT['\"]\\s+version=['\"]([0-9.]+)['\"]")
def GetVC90CRTVersion(fn):
manifest = ReadFile(fn)
version = VC90CRTVERSIONRE.search(manifest)
if (version == None):
exit("Cannot locate version number in "+fn)
return version.group(1)
def SetVC90CRTVersion(fn, ver):
manifest = ReadFile(fn)
subst = " name='Microsoft.VC90.CRT' version='"+ver+"' "
manifest = VC90CRTVERSIONRE.sub(subst, manifest)
WriteFile(fn, manifest)
########################################################################
##
## Thirdparty libraries paths
@ -218,11 +239,14 @@ def oscmd(cmd, ignoreError = False):
res = os.system(cmd)
if (res == 11):
if (LocateBinary("gdb") and GetVerbose()):
print GetColor("red") + "Received SIGSEGV, getting traceback..." + GetColor()
print GetColor("red") + "Received SIGSEGV, retrieving traceback..." + GetColor()
os.system("gdb -batch -ex 'handle SIG33 pass nostop noprint' -ex 'set pagination 0' -ex 'run' -ex 'bt full' -ex 'info registers' -ex 'thread apply all backtrace' -ex 'quit' --args %s < /dev/null" % cmd)
else:
print GetColor("red") + "Received SIGSEGV" + GetColor()
if res != 0 and not ignoreError:
if "interrogate" in cmd.split(" ", 1)[0] and GetVerbose():
print GetColor("red") + "Interrogate failed, retrieving debug output..." + GetColor()
os.system(cmd.split(" ", 1)[0] + " -v " + cmd.split(" ", 1)[1])
exit("")
########################################################################
@ -710,27 +734,6 @@ def CheckPandaSourceTree():
(os.path.exists(os.path.join(dir, "panda","src","pandabase","pandabase.h"))==0)):
exit("Current directory is not the root of the panda tree.")
########################################################################
##
## Visual Studio Manifest Manipulation.
##
########################################################################
VC90CRTVERSIONRE=re.compile("name=['\"]Microsoft.VC90.CRT['\"]\\s+version=['\"]([0-9.]+)['\"]")
def GetVC90CRTVersion(fn):
manifest = ReadFile(fn)
version = VC90CRTVERSIONRE.search(manifest)
if (version == None):
exit("Cannot locate version number in "+fn)
return version.group(1)
def SetVC90CRTVersion(fn, ver):
manifest = ReadFile(fn)
subst = " name='Microsoft.VC90.CRT' version='"+ver+"' "
manifest = VC90CRTVERSIONRE.sub(subst, manifest)
WriteFile(fn, manifest)
########################################################################
##
## Gets or sets the output directory, by default "built".
@ -909,7 +912,7 @@ def PkgConfigEnable(opt, pkgname, tool = "pkg-config"):
LD_CACHE = None
STATIC_CACHE = None
def GetLdCache():
def GetLibCache():
# Returns a list of cached libraries, not prefixed by lib and not suffixed by .so* or .a!
global LD_CACHE
if (LD_CACHE == None):
@ -935,8 +938,23 @@ def GetLdCache():
LD_CACHE.append(lib)
return LD_CACHE
def ChooseLib(*libs):
# Chooses a library from the parameters, in order of preference. Returns the first if none of them were found.
for l in libs:
libname = l
if (l.startswith("lib")):
libname = l[3:]
if (libname in GetLibCache()):
return libname
else:
print GetColor("cyan") + "Couldn't find library lib" + libname + GetColor()
if (len(libs) > 0):
return libs[0]
def PkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, framework = None, tool = "pkg-config"):
global PKG_LIST_ALL
if (pkg in PkgListGet() and PkgSkip(pkg)):
return
if (pkgconfig == ""):
pkgconfig = None
if (framework == ""):
@ -1011,11 +1029,14 @@ def PkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, fram
# Okay, our pkg-config attempts failed. Let's try locating the libs by ourselves.
have_pkg = True
for l in libs:
if (l in GetLdCache()):
LibName(pkg, "-l" + l)
libname = l
if (l.startswith("lib")):
libname = l[3:]
if (libname in GetLibCache()):
LibName(pkg, "-l" + libname)
else:
if (VERBOSE):
print GetColor("cyan") + "Couldn't find library lib" + l + GetColor()
print GetColor("cyan") + "Couldn't find library lib" + libname + GetColor()
have_pkg = False
for i in incs: