|
@@ -94,7 +94,6 @@ PkgListSet(["PYTHON", "DIRECT", # Python support
|
|
|
"PANDAPARTICLESYSTEM", # Built in particle system
|
|
"PANDAPARTICLESYSTEM", # Built in particle system
|
|
|
"CONTRIB", # Experimental
|
|
"CONTRIB", # Experimental
|
|
|
"SSE2", "NEON", # Compiler features
|
|
"SSE2", "NEON", # Compiler features
|
|
|
- "TOUCHINPUT", # Touchinput interface (requires Windows 7)
|
|
|
|
|
])
|
|
])
|
|
|
|
|
|
|
|
CheckPandaSourceTree()
|
|
CheckPandaSourceTree()
|
|
@@ -170,7 +169,8 @@ def parseopts(args):
|
|
|
"version=","lzma","no-python","threads=","outputdir=","override=",
|
|
"version=","lzma","no-python","threads=","outputdir=","override=",
|
|
|
"static","host=","debversion=","rpmrelease=","p3dsuffix=","rtdist-version=",
|
|
"static","host=","debversion=","rpmrelease=","p3dsuffix=","rtdist-version=",
|
|
|
"directx-sdk=", "windows-sdk=", "msvc-version=", "clean", "use-icl",
|
|
"directx-sdk=", "windows-sdk=", "msvc-version=", "clean", "use-icl",
|
|
|
- "universal", "target=", "arch=", "git-commit="]
|
|
|
|
|
|
|
+ "universal", "target=", "arch=", "git-commit=",
|
|
|
|
|
+ "use-touchinput", "no-touchinput"]
|
|
|
anything = 0
|
|
anything = 0
|
|
|
optimize = ""
|
|
optimize = ""
|
|
|
target = None
|
|
target = None
|
|
@@ -316,18 +316,6 @@ def parseopts(args):
|
|
|
print("No Windows SDK version specified. Defaulting to '7.1'.")
|
|
print("No Windows SDK version specified. Defaulting to '7.1'.")
|
|
|
WINDOWS_SDK = '7.1'
|
|
WINDOWS_SDK = '7.1'
|
|
|
|
|
|
|
|
- is_win7 = False
|
|
|
|
|
- if sys.platform == 'win32':
|
|
|
|
|
- # Note: not available in cygwin.
|
|
|
|
|
- winver = sys.getwindowsversion()
|
|
|
|
|
- if winver[0] >= 6 and winver[1] >= 1:
|
|
|
|
|
- is_win7 = True
|
|
|
|
|
-
|
|
|
|
|
- if RUNTIME or not is_win7:
|
|
|
|
|
- PkgDisable("TOUCHINPUT")
|
|
|
|
|
- else:
|
|
|
|
|
- PkgDisable("TOUCHINPUT")
|
|
|
|
|
-
|
|
|
|
|
if clean_build and os.path.isdir(GetOutputDir()):
|
|
if clean_build and os.path.isdir(GetOutputDir()):
|
|
|
print("Deleting %s" % (GetOutputDir()))
|
|
print("Deleting %s" % (GetOutputDir()))
|
|
|
shutil.rmtree(GetOutputDir())
|
|
shutil.rmtree(GetOutputDir())
|
|
@@ -1055,11 +1043,12 @@ def CompileCxx(obj,src,opts):
|
|
|
cmd += "/favor:blend "
|
|
cmd += "/favor:blend "
|
|
|
cmd += "/wd4996 /wd4275 /wd4273 "
|
|
cmd += "/wd4996 /wd4275 /wd4273 "
|
|
|
|
|
|
|
|
- # Enable Windows 7 interfaces if we need Touchinput.
|
|
|
|
|
- if PkgSkip("TOUCHINPUT") == 0:
|
|
|
|
|
- cmd += "/DWINVER=0x601 "
|
|
|
|
|
- else:
|
|
|
|
|
- cmd += "/DWINVER=0x501 "
|
|
|
|
|
|
|
+ # We still target Windows XP.
|
|
|
|
|
+ cmd += "/DWINVER=0x501 "
|
|
|
|
|
+ # Work around a WinXP/2003 bug when using VS 2015+.
|
|
|
|
|
+ if SDK.get("VISUALSTUDIO_VERSION") == '14.0':
|
|
|
|
|
+ cmd += "/Zc:threadSafeInit- "
|
|
|
|
|
+
|
|
|
cmd += "/Fo" + obj + " /nologo /c"
|
|
cmd += "/Fo" + obj + " /nologo /c"
|
|
|
if GetTargetArch() != 'x64' and (not PkgSkip("SSE2") or 'SSE2' in opts):
|
|
if GetTargetArch() != 'x64' and (not PkgSkip("SSE2") or 'SSE2' in opts):
|
|
|
cmd += " /arch:SSE2"
|
|
cmd += " /arch:SSE2"
|
|
@@ -1109,12 +1098,7 @@ def CompileCxx(obj,src,opts):
|
|
|
if GetTargetArch() == 'x64':
|
|
if GetTargetArch() == 'x64':
|
|
|
cmd += "/favor:blend "
|
|
cmd += "/favor:blend "
|
|
|
cmd += "/wd4996 /wd4275 /wd4267 /wd4101 /wd4273 "
|
|
cmd += "/wd4996 /wd4275 /wd4267 /wd4101 /wd4273 "
|
|
|
-
|
|
|
|
|
- # Enable Windows 7 interfaces if we need Touchinput.
|
|
|
|
|
- if PkgSkip("TOUCHINPUT") == 0:
|
|
|
|
|
- cmd += "/DWINVER=0x601 "
|
|
|
|
|
- else:
|
|
|
|
|
- cmd += "/DWINVER=0x501 "
|
|
|
|
|
|
|
+ cmd += "/DWINVER=0x501 "
|
|
|
cmd += "/Fo" + obj + " /c"
|
|
cmd += "/Fo" + obj + " /c"
|
|
|
for x in ipath: cmd += " /I" + x
|
|
for x in ipath: cmd += " /I" + x
|
|
|
for (opt,dir) in INCDIRECTORIES:
|
|
for (opt,dir) in INCDIRECTORIES:
|
|
@@ -1682,11 +1666,7 @@ def CompileLink(dll, obj, opts):
|
|
|
if 'NOARCH:' + arch.upper() not in opts:
|
|
if 'NOARCH:' + arch.upper() not in opts:
|
|
|
cmd += " -arch %s" % arch
|
|
cmd += " -arch %s" % arch
|
|
|
|
|
|
|
|
- if "SYSROOT" in SDK:
|
|
|
|
|
- cmd += " --sysroot=%s -no-canonical-prefixes" % (SDK["SYSROOT"])
|
|
|
|
|
-
|
|
|
|
|
- # Android-specific flags.
|
|
|
|
|
- if GetTarget() == 'android':
|
|
|
|
|
|
|
+ elif GetTarget() == 'android':
|
|
|
cmd += " -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now"
|
|
cmd += " -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now"
|
|
|
if GetTargetArch() == 'armv7a':
|
|
if GetTargetArch() == 'armv7a':
|
|
|
cmd += " -march=armv7-a -Wl,--fix-cortex-a8"
|
|
cmd += " -march=armv7-a -Wl,--fix-cortex-a8"
|
|
@@ -1694,6 +1674,9 @@ def CompileLink(dll, obj, opts):
|
|
|
else:
|
|
else:
|
|
|
cmd += " -pthread"
|
|
cmd += " -pthread"
|
|
|
|
|
|
|
|
|
|
+ if "SYSROOT" in SDK:
|
|
|
|
|
+ cmd += " --sysroot=%s -no-canonical-prefixes" % (SDK["SYSROOT"])
|
|
|
|
|
+
|
|
|
if LDFLAGS != "":
|
|
if LDFLAGS != "":
|
|
|
cmd += " " + LDFLAGS
|
|
cmd += " " + LDFLAGS
|
|
|
|
|
|
|
@@ -2126,7 +2109,6 @@ DTOOL_CONFIG=[
|
|
|
("REPORT_OPENSSL_ERRORS", '1', '1'),
|
|
("REPORT_OPENSSL_ERRORS", '1', '1'),
|
|
|
("USE_PANDAFILESTREAM", '1', '1'),
|
|
("USE_PANDAFILESTREAM", '1', '1'),
|
|
|
("USE_DELETED_CHAIN", '1', '1'),
|
|
("USE_DELETED_CHAIN", '1', '1'),
|
|
|
- ("HAVE_WIN_TOUCHINPUT", 'UNDEF', 'UNDEF'),
|
|
|
|
|
("HAVE_GLX", 'UNDEF', '1'),
|
|
("HAVE_GLX", 'UNDEF', '1'),
|
|
|
("HAVE_WGL", '1', 'UNDEF'),
|
|
("HAVE_WGL", '1', 'UNDEF'),
|
|
|
("HAVE_DX9", 'UNDEF', 'UNDEF'),
|
|
("HAVE_DX9", 'UNDEF', 'UNDEF'),
|
|
@@ -2233,11 +2215,7 @@ DTOOL_CONFIG=[
|
|
|
("HAVE_CG", 'UNDEF', 'UNDEF'),
|
|
("HAVE_CG", 'UNDEF', 'UNDEF'),
|
|
|
("HAVE_CGGL", 'UNDEF', 'UNDEF'),
|
|
("HAVE_CGGL", 'UNDEF', 'UNDEF'),
|
|
|
("HAVE_CGDX9", 'UNDEF', 'UNDEF'),
|
|
("HAVE_CGDX9", 'UNDEF', 'UNDEF'),
|
|
|
- ("HAVE_FFMPEG", 'UNDEF', 'UNDEF'),
|
|
|
|
|
- ("HAVE_SWSCALE", 'UNDEF', 'UNDEF'),
|
|
|
|
|
- ("HAVE_SWRESAMPLE", 'UNDEF', 'UNDEF'),
|
|
|
|
|
("HAVE_ARTOOLKIT", 'UNDEF', 'UNDEF'),
|
|
("HAVE_ARTOOLKIT", 'UNDEF', 'UNDEF'),
|
|
|
- ("HAVE_OPENCV", 'UNDEF', 'UNDEF'),
|
|
|
|
|
("HAVE_DIRECTCAM", 'UNDEF', 'UNDEF'),
|
|
("HAVE_DIRECTCAM", 'UNDEF', 'UNDEF'),
|
|
|
("HAVE_SQUISH", 'UNDEF', 'UNDEF'),
|
|
("HAVE_SQUISH", 'UNDEF', 'UNDEF'),
|
|
|
("HAVE_CARBON", 'UNDEF', 'UNDEF'),
|
|
("HAVE_CARBON", 'UNDEF', 'UNDEF'),
|
|
@@ -2292,9 +2270,6 @@ def WriteConfigSettings():
|
|
|
else:
|
|
else:
|
|
|
dtool_config["HAVE_"+x] = 'UNDEF'
|
|
dtool_config["HAVE_"+x] = 'UNDEF'
|
|
|
|
|
|
|
|
- if not PkgSkip("OPENCV"):
|
|
|
|
|
- dtool_config["OPENCV_VER_23"] = '1' if OPENCV_VER_23 else 'UNDEF'
|
|
|
|
|
-
|
|
|
|
|
dtool_config["HAVE_NET"] = '1'
|
|
dtool_config["HAVE_NET"] = '1'
|
|
|
|
|
|
|
|
if (PkgSkip("NVIDIACG")==0):
|
|
if (PkgSkip("NVIDIACG")==0):
|
|
@@ -2351,9 +2326,6 @@ def WriteConfigSettings():
|
|
|
if (PkgSkip("PYTHON") != 0):
|
|
if (PkgSkip("PYTHON") != 0):
|
|
|
dtool_config["HAVE_ROCKET_PYTHON"] = 'UNDEF'
|
|
dtool_config["HAVE_ROCKET_PYTHON"] = 'UNDEF'
|
|
|
|
|
|
|
|
- if (PkgSkip("TOUCHINPUT") == 0 and GetTarget() == "windows"):
|
|
|
|
|
- dtool_config["HAVE_WIN_TOUCHINPUT"] = '1'
|
|
|
|
|
-
|
|
|
|
|
if (GetOptimize() <= 3):
|
|
if (GetOptimize() <= 3):
|
|
|
dtool_config["HAVE_ROCKET_DEBUGGER"] = '1'
|
|
dtool_config["HAVE_ROCKET_DEBUGGER"] = '1'
|
|
|
|
|
|
|
@@ -2781,8 +2753,13 @@ if (GetTarget() == 'darwin'):
|
|
|
# OpenAL is not yet working well on OSX for us, so let's do this for now.
|
|
# OpenAL is not yet working well on OSX for us, so let's do this for now.
|
|
|
configprc = configprc.replace("p3openal_audio", "p3fmod_audio")
|
|
configprc = configprc.replace("p3openal_audio", "p3fmod_audio")
|
|
|
|
|
|
|
|
-ConditionalWriteFile(GetOutputDir()+"/etc/Config.prc", configprc)
|
|
|
|
|
-ConditionalWriteFile(GetOutputDir()+"/etc/Confauto.prc", confautoprc)
|
|
|
|
|
|
|
+if GetTarget() == 'windows':
|
|
|
|
|
+ # Convert to Windows newlines.
|
|
|
|
|
+ ConditionalWriteFile(GetOutputDir()+"/etc/Config.prc", configprc, newline='\r\n')
|
|
|
|
|
+ ConditionalWriteFile(GetOutputDir()+"/etc/Confauto.prc", confautoprc, newline='\r\n')
|
|
|
|
|
+else:
|
|
|
|
|
+ ConditionalWriteFile(GetOutputDir()+"/etc/Config.prc", configprc)
|
|
|
|
|
+ ConditionalWriteFile(GetOutputDir()+"/etc/Confauto.prc", confautoprc)
|
|
|
|
|
|
|
|
##########################################################################################
|
|
##########################################################################################
|
|
|
#
|
|
#
|
|
@@ -2879,22 +2856,75 @@ if tp_dir is not None:
|
|
|
|
|
|
|
|
if GetTarget() == 'windows':
|
|
if GetTarget() == 'windows':
|
|
|
CopyAllFiles(GetOutputDir() + "/bin/", tp_dir + "extras/bin/")
|
|
CopyAllFiles(GetOutputDir() + "/bin/", tp_dir + "extras/bin/")
|
|
|
- if not PkgSkip("PYTHON"):
|
|
|
|
|
- pydll = "/" + SDK["PYTHONVERSION"].replace(".", "")
|
|
|
|
|
- if (GetOptimize() <= 2): pydll += "_d.dll"
|
|
|
|
|
- else: pydll += ".dll"
|
|
|
|
|
- CopyFile(GetOutputDir() + "/bin" + pydll, SDK["PYTHON"] + pydll)
|
|
|
|
|
-
|
|
|
|
|
- for fn in glob.glob(SDK["PYTHON"] + "/vcruntime*.dll"):
|
|
|
|
|
- CopyFile(GetOutputDir() + "/bin/", fn)
|
|
|
|
|
-
|
|
|
|
|
- if not RTDIST:
|
|
|
|
|
- CopyTree(GetOutputDir() + "/python", SDK["PYTHON"])
|
|
|
|
|
- if not os.path.isfile(SDK["PYTHON"] + "/ppython.exe") and os.path.isfile(SDK["PYTHON"] + "/python.exe"):
|
|
|
|
|
- CopyFile(GetOutputDir() + "/python/ppython.exe", SDK["PYTHON"] + "/python.exe")
|
|
|
|
|
- if not os.path.isfile(SDK["PYTHON"] + "/ppythonw.exe") and os.path.isfile(SDK["PYTHON"] + "/pythonw.exe"):
|
|
|
|
|
- CopyFile(GetOutputDir() + "/python/ppythonw.exe", SDK["PYTHON"] + "/pythonw.exe")
|
|
|
|
|
- ConditionalWriteFile(GetOutputDir() + "/python/panda.pth", "..\n../bin\n")
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if not PkgSkip("PYTHON") and not RTDIST:
|
|
|
|
|
+ #XXX rdb I don't think we need to copy over the Python DLL, do we?
|
|
|
|
|
+ #pydll = "/" + SDK["PYTHONVERSION"].replace(".", "")
|
|
|
|
|
+ #if (GetOptimize() <= 2): pydll += "_d.dll"
|
|
|
|
|
+ #else: pydll += ".dll"
|
|
|
|
|
+ #CopyFile(GetOutputDir() + "/bin" + pydll, SDK["PYTHON"] + pydll)
|
|
|
|
|
+
|
|
|
|
|
+ #for fn in glob.glob(SDK["PYTHON"] + "/vcruntime*.dll"):
|
|
|
|
|
+ # CopyFile(GetOutputDir() + "/bin/", fn)
|
|
|
|
|
+
|
|
|
|
|
+ # Copy the whole Python directory.
|
|
|
|
|
+ CopyTree(GetOutputDir() + "/python", SDK["PYTHON"])
|
|
|
|
|
+
|
|
|
|
|
+ # NB: Python does not always ship with the correct manifest/dll.
|
|
|
|
|
+ # Figure out the correct one to ship, and grab it from WinSxS dir.
|
|
|
|
|
+ manifest = GetOutputDir() + '/tmp/python.manifest'
|
|
|
|
|
+ if os.path.isfile(manifest):
|
|
|
|
|
+ os.unlink(manifest)
|
|
|
|
|
+ oscmd('mt -inputresource:"%s\\python.exe";#1 -out:"%s" -nologo' % (SDK["PYTHON"], manifest), True)
|
|
|
|
|
+
|
|
|
|
|
+ if os.path.isfile(manifest):
|
|
|
|
|
+ import xml.etree.ElementTree as ET
|
|
|
|
|
+ tree = ET.parse(manifest)
|
|
|
|
|
+ idents = tree.findall('./{urn:schemas-microsoft-com:asm.v1}dependency/{urn:schemas-microsoft-com:asm.v1}dependentAssembly/{urn:schemas-microsoft-com:asm.v1}assemblyIdentity')
|
|
|
|
|
+ else:
|
|
|
|
|
+ idents = ()
|
|
|
|
|
+
|
|
|
|
|
+ for ident in tree.findall('./{urn:schemas-microsoft-com:asm.v1}dependency/{urn:schemas-microsoft-com:asm.v1}dependentAssembly/{urn:schemas-microsoft-com:asm.v1}assemblyIdentity'):
|
|
|
|
|
+ sxs_name = '_'.join([
|
|
|
|
|
+ ident.get('processorArchitecture'),
|
|
|
|
|
+ ident.get('name').lower(),
|
|
|
|
|
+ ident.get('publicKeyToken'),
|
|
|
|
|
+ ident.get('version'),
|
|
|
|
|
+ ])
|
|
|
|
|
+
|
|
|
|
|
+ # Find the manifest matching these parameters.
|
|
|
|
|
+ pattern = os.path.join('C:' + os.sep, 'Windows', 'WinSxS', 'Manifests', sxs_name + '_*.manifest')
|
|
|
|
|
+ manifests = glob.glob(pattern)
|
|
|
|
|
+ if not manifests:
|
|
|
|
|
+ print("%sWARNING:%s Could not locate manifest %s. You may need to reinstall the Visual C++ Redistributable." % (GetColor("red"), GetColor(), pattern))
|
|
|
|
|
+ continue
|
|
|
|
|
+
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/python/" + ident.get('name') + ".manifest", manifests[0])
|
|
|
|
|
+
|
|
|
|
|
+ # Also copy the corresponding msvcr dll.
|
|
|
|
|
+ pattern = os.path.join('C:' + os.sep, 'Windows', 'WinSxS', sxs_name + '_*', 'msvcr*.dll')
|
|
|
|
|
+ for file in glob.glob(pattern):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/python/", file)
|
|
|
|
|
+
|
|
|
|
|
+ # Copy python.exe to ppython.exe.
|
|
|
|
|
+ if not os.path.isfile(SDK["PYTHON"] + "/ppython.exe") and os.path.isfile(SDK["PYTHON"] + "/python.exe"):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/python/ppython.exe", SDK["PYTHON"] + "/python.exe")
|
|
|
|
|
+ if not os.path.isfile(SDK["PYTHON"] + "/ppythonw.exe") and os.path.isfile(SDK["PYTHON"] + "/pythonw.exe"):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/python/ppythonw.exe", SDK["PYTHON"] + "/pythonw.exe")
|
|
|
|
|
+ ConditionalWriteFile(GetOutputDir() + "/python/panda.pth", "..\n../bin\n")
|
|
|
|
|
+
|
|
|
|
|
+# Copy over the MSVC runtime.
|
|
|
|
|
+if GetTarget() == 'windows' and "VISUALSTUDIO" in SDK:
|
|
|
|
|
+ vcver = SDK["VISUALSTUDIO_VERSION"].replace('.', '')
|
|
|
|
|
+ crtname = "Microsoft.VC%s.CRT" % (vcver)
|
|
|
|
|
+ dir = os.path.join(SDK["VISUALSTUDIO"], "VC", "redist", GetTargetArch(), crtname)
|
|
|
|
|
+
|
|
|
|
|
+ if os.path.isfile(os.path.join(dir, "msvcr" + vcver + ".dll")):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/bin/", os.path.join(dir, "msvcr" + vcver + ".dll"))
|
|
|
|
|
+ if os.path.isfile(os.path.join(dir, "msvcp" + vcver + ".dll")):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/bin/", os.path.join(dir, "msvcp" + vcver + ".dll"))
|
|
|
|
|
+ if os.path.isfile(os.path.join(dir, "vcruntime" + vcver + ".dll")):
|
|
|
|
|
+ CopyFile(GetOutputDir() + "/bin/", os.path.join(dir, "vcruntime" + vcver + ".dll"))
|
|
|
|
|
|
|
|
########################################################################
|
|
########################################################################
|
|
|
##
|
|
##
|
|
@@ -2902,8 +2932,14 @@ if tp_dir is not None:
|
|
|
##
|
|
##
|
|
|
########################################################################
|
|
########################################################################
|
|
|
|
|
|
|
|
-CopyFile(GetOutputDir()+"/", "doc/LICENSE")
|
|
|
|
|
-CopyFile(GetOutputDir()+"/", "doc/ReleaseNotes")
|
|
|
|
|
|
|
+if GetTarget() == 'windows':
|
|
|
|
|
+ # Convert to Windows newlines so they can be opened by notepad.
|
|
|
|
|
+ WriteFile(GetOutputDir() + "/LICENSE", ReadFile("doc/LICENSE"), newline='\r\n')
|
|
|
|
|
+ WriteFile(GetOutputDir() + "/ReleaseNotes", ReadFile("doc/ReleaseNotes"), newline='\r\n')
|
|
|
|
|
+else:
|
|
|
|
|
+ CopyFile(GetOutputDir()+"/", "doc/LICENSE")
|
|
|
|
|
+ CopyFile(GetOutputDir()+"/", "doc/ReleaseNotes")
|
|
|
|
|
+
|
|
|
if (PkgSkip("PANDATOOL")==0):
|
|
if (PkgSkip("PANDATOOL")==0):
|
|
|
CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".mel")
|
|
CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".mel")
|
|
|
CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".ms")
|
|
CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".ms")
|
|
@@ -4061,8 +4097,20 @@ if (not RUNTIME):
|
|
|
#
|
|
#
|
|
|
|
|
|
|
|
if (PkgSkip("VISION") == 0) and (not RUNTIME):
|
|
if (PkgSkip("VISION") == 0) and (not RUNTIME):
|
|
|
|
|
+ # We want to know whether we have ffmpeg so that we can override the .avi association.
|
|
|
|
|
+ if not PkgSkip("FFMPEG"):
|
|
|
|
|
+ DefSymbol("OPENCV", "HAVE_FFMPEG")
|
|
|
|
|
+ if not PkgSkip("OPENCV"):
|
|
|
|
|
+ DefSymbol("OPENCV", "HAVE_OPENCV")
|
|
|
|
|
+ if OPENCV_VER_23:
|
|
|
|
|
+ DefSymbol("OPENCV", "OPENCV_VER_23")
|
|
|
|
|
+
|
|
|
OPTS=['DIR:panda/src/vision', 'BUILDING:VISION', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG', 'EXCEPTIONS']
|
|
OPTS=['DIR:panda/src/vision', 'BUILDING:VISION', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG', 'EXCEPTIONS']
|
|
|
- TargetAdd('p3vision_composite1.obj', opts=OPTS, input='p3vision_composite1.cxx')
|
|
|
|
|
|
|
+ TargetAdd('p3vision_composite1.obj', opts=OPTS, input='p3vision_composite1.cxx', dep=[
|
|
|
|
|
+ 'dtool_have_ffmpeg.dat',
|
|
|
|
|
+ 'dtool_have_opencv.dat',
|
|
|
|
|
+ 'dtool_have_directcam.dat',
|
|
|
|
|
+ ])
|
|
|
|
|
|
|
|
TargetAdd('libp3vision.dll', input='p3vision_composite1.obj')
|
|
TargetAdd('libp3vision.dll', input='p3vision_composite1.obj')
|
|
|
TargetAdd('libp3vision.dll', input=COMMON_PANDA_LIBS)
|
|
TargetAdd('libp3vision.dll', input=COMMON_PANDA_LIBS)
|
|
@@ -4251,8 +4299,15 @@ if (PkgSkip("VRPN")==0 and not RUNTIME):
|
|
|
# DIRECTORY: panda/src/ffmpeg
|
|
# DIRECTORY: panda/src/ffmpeg
|
|
|
#
|
|
#
|
|
|
if PkgSkip("FFMPEG") == 0 and not RUNTIME:
|
|
if PkgSkip("FFMPEG") == 0 and not RUNTIME:
|
|
|
|
|
+ if not PkgSkip("SWSCALE"):
|
|
|
|
|
+ DefSymbol("FFMPEG", "HAVE_SWSCALE")
|
|
|
|
|
+ if not PkgSkip("SWRESAMPLE"):
|
|
|
|
|
+ DefSymbol("FFMPEG", "HAVE_SWRESAMPLE")
|
|
|
|
|
+
|
|
|
OPTS=['DIR:panda/src/ffmpeg', 'BUILDING:FFMPEG', 'FFMPEG', 'SWSCALE', 'SWRESAMPLE']
|
|
OPTS=['DIR:panda/src/ffmpeg', 'BUILDING:FFMPEG', 'FFMPEG', 'SWSCALE', 'SWRESAMPLE']
|
|
|
- TargetAdd('p3ffmpeg_composite1.obj', opts=OPTS, input='p3ffmpeg_composite1.cxx')
|
|
|
|
|
|
|
+ TargetAdd('p3ffmpeg_composite1.obj', opts=OPTS, input='p3ffmpeg_composite1.cxx', dep=[
|
|
|
|
|
+ 'dtool_have_swscale.dat', 'dtool_have_swresample.dat'])
|
|
|
|
|
+
|
|
|
TargetAdd('libp3ffmpeg.dll', input='p3ffmpeg_composite1.obj')
|
|
TargetAdd('libp3ffmpeg.dll', input='p3ffmpeg_composite1.obj')
|
|
|
TargetAdd('libp3ffmpeg.dll', input=COMMON_PANDA_LIBS)
|
|
TargetAdd('libp3ffmpeg.dll', input=COMMON_PANDA_LIBS)
|
|
|
TargetAdd('libp3ffmpeg.dll', opts=OPTS)
|
|
TargetAdd('libp3ffmpeg.dll', opts=OPTS)
|
|
@@ -4532,7 +4587,7 @@ if (GetTarget() == 'darwin' and PkgSkip("COCOA")==0 and PkgSkip("GL")==0 and not
|
|
|
if (PkgSkip('PANDAFX')==0):
|
|
if (PkgSkip('PANDAFX')==0):
|
|
|
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
|
TargetAdd('libpandagl.dll', input='libpandafx.dll')
|
|
|
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
|
TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS)
|
|
|
- TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'COCOA'])
|
|
|
|
|
|
|
+ TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'COCOA', 'CARBON'])
|
|
|
|
|
|
|
|
#
|
|
#
|
|
|
# DIRECTORY: panda/src/osxdisplay/
|
|
# DIRECTORY: panda/src/osxdisplay/
|
|
@@ -6792,9 +6847,9 @@ def MakeInstallerLinux():
|
|
|
txt = txt.replace("VERSION", DEBVERSION).replace("ARCH", pkg_arch).replace("PV", PV).replace("MAJOR", MAJOR_VERSION)
|
|
txt = txt.replace("VERSION", DEBVERSION).replace("ARCH", pkg_arch).replace("PV", PV).replace("MAJOR", MAJOR_VERSION)
|
|
|
txt = txt.replace("INSTSIZE", str(GetDirectorySize("targetroot") / 1024))
|
|
txt = txt.replace("INSTSIZE", str(GetDirectorySize("targetroot") / 1024))
|
|
|
oscmd("mkdir --mode=0755 -p targetroot/DEBIAN")
|
|
oscmd("mkdir --mode=0755 -p targetroot/DEBIAN")
|
|
|
- oscmd("cd targetroot ; (find usr -type f -exec md5sum {} \;) > DEBIAN/md5sums")
|
|
|
|
|
|
|
+ oscmd("cd targetroot && (find usr -type f -exec md5sum {} ;) > DEBIAN/md5sums")
|
|
|
if (not RUNTIME):
|
|
if (not RUNTIME):
|
|
|
- oscmd("cd targetroot ; (find etc -type f -exec md5sum {} \;) >> DEBIAN/md5sums")
|
|
|
|
|
|
|
+ oscmd("cd targetroot && (find etc -type f -exec md5sum {} ;) >> DEBIAN/md5sums")
|
|
|
WriteFile("targetroot/DEBIAN/conffiles","/etc/Config.prc\n")
|
|
WriteFile("targetroot/DEBIAN/conffiles","/etc/Config.prc\n")
|
|
|
WriteFile("targetroot/DEBIAN/postinst","#!/bin/sh\necho running ldconfig\nldconfig\n")
|
|
WriteFile("targetroot/DEBIAN/postinst","#!/bin/sh\necho running ldconfig\nldconfig\n")
|
|
|
oscmd("cp targetroot/DEBIAN/postinst targetroot/DEBIAN/postrm")
|
|
oscmd("cp targetroot/DEBIAN/postinst targetroot/DEBIAN/postrm")
|
|
@@ -6822,7 +6877,7 @@ def MakeInstallerLinux():
|
|
|
|
|
|
|
|
if RUNTIME:
|
|
if RUNTIME:
|
|
|
# The runtime doesn't export any useful symbols, so just query the dependencies.
|
|
# The runtime doesn't export any useful symbols, so just query the dependencies.
|
|
|
- oscmd("cd targetroot; %(dpkg_shlibdeps)s -x%(pkg_name)s %(lib_pattern)s %(bin_pattern)s*" % locals())
|
|
|
|
|
|
|
+ oscmd("cd targetroot && %(dpkg_shlibdeps)s -x%(pkg_name)s %(lib_pattern)s %(bin_pattern)s*" % locals())
|
|
|
depends = ReadFile("targetroot/debian/substvars").replace("shlibs:Depends=", "").strip()
|
|
depends = ReadFile("targetroot/debian/substvars").replace("shlibs:Depends=", "").strip()
|
|
|
recommends = ""
|
|
recommends = ""
|
|
|
else:
|
|
else:
|
|
@@ -6830,12 +6885,12 @@ def MakeInstallerLinux():
|
|
|
pkg_dir = "debian/panda3d" + MAJOR_VERSION
|
|
pkg_dir = "debian/panda3d" + MAJOR_VERSION
|
|
|
|
|
|
|
|
# Generate a symbols file so that other packages can know which symbols we export.
|
|
# Generate a symbols file so that other packages can know which symbols we export.
|
|
|
- oscmd("cd targetroot; dpkg-gensymbols -q -ODEBIAN/symbols -v%(pkg_version)s -p%(pkg_name)s -e%(lib_pattern)s" % locals())
|
|
|
|
|
|
|
+ oscmd("cd targetroot && dpkg-gensymbols -q -ODEBIAN/symbols -v%(pkg_version)s -p%(pkg_name)s -e%(lib_pattern)s" % locals())
|
|
|
|
|
|
|
|
# Library dependencies are required, binary dependencies are recommended.
|
|
# Library dependencies are required, binary dependencies are recommended.
|
|
|
# We explicitly exclude libphysx-extras since we don't want to depend on PhysX.
|
|
# We explicitly exclude libphysx-extras since we don't want to depend on PhysX.
|
|
|
- oscmd("cd targetroot; LD_LIBRARY_PATH=usr/%(lib_dir)s/panda3d %(dpkg_shlibdeps)s -Tdebian/substvars_dep --ignore-missing-info -x%(pkg_name)s -xlibphysx-extras %(lib_pattern)s" % locals())
|
|
|
|
|
- oscmd("cd targetroot; LD_LIBRARY_PATH=usr/%(lib_dir)s/panda3d %(dpkg_shlibdeps)s -Tdebian/substvars_rec --ignore-missing-info -x%(pkg_name)s %(bin_pattern)s" % locals())
|
|
|
|
|
|
|
+ oscmd("cd targetroot && LD_LIBRARY_PATH=usr/%(lib_dir)s/panda3d %(dpkg_shlibdeps)s -Tdebian/substvars_dep --ignore-missing-info -x%(pkg_name)s -xlibphysx-extras %(lib_pattern)s" % locals())
|
|
|
|
|
+ oscmd("cd targetroot && LD_LIBRARY_PATH=usr/%(lib_dir)s/panda3d %(dpkg_shlibdeps)s -Tdebian/substvars_rec --ignore-missing-info -x%(pkg_name)s %(bin_pattern)s" % locals())
|
|
|
|
|
|
|
|
# Parse the substvars files generated by dpkg-shlibdeps.
|
|
# Parse the substvars files generated by dpkg-shlibdeps.
|
|
|
depends = ReadFile("targetroot/debian/substvars_dep").replace("shlibs:Depends=", "").strip()
|
|
depends = ReadFile("targetroot/debian/substvars_dep").replace("shlibs:Depends=", "").strip()
|