diff --git a/makepanda/getversion.py b/makepanda/getversion.py index 5e0d4fa4fb..9fc1714220 100755 --- a/makepanda/getversion.py +++ b/makepanda/getversion.py @@ -4,8 +4,8 @@ # and returns it on the command-line. This is useful for the # automated scripts that build the Panda3D releases. -from makepandacore import ParsePandaVersion, GetMetadataValue import sys +from makepandacore import GetMetadataValue version = GetMetadataValue('version') diff --git a/makepanda/installpanda.py b/makepanda/installpanda.py index 6d99d5ab36..fda6793375 100644 --- a/makepanda/installpanda.py +++ b/makepanda/installpanda.py @@ -8,17 +8,18 @@ # ######################################################################## -import os, sys, platform +import os +import sys from distutils.sysconfig import get_python_lib from optparse import OptionParser from makepandacore import * MIME_INFO = ( - ("egg", "model/x-egg", "EGG model file", "pview"), - ("bam", "model/x-bam", "Panda3D binary model file", "pview"), - ("egg.pz", "model/x-compressed-egg", "Compressed EGG model file", "pview"), - ("bam.pz", "model/x-compressed-bam", "Compressed Panda3D binary model file", "pview"), + ("egg", "model/x-egg", "EGG model file", "pview"), + ("bam", "model/x-bam", "Panda3D binary model file", "pview"), + ("egg.pz", "model/x-compressed-egg", "Compressed EGG model file", "pview"), + ("bam.pz", "model/x-compressed-bam", "Compressed Panda3D binary model file", "pview"), ) APP_INFO = ( @@ -46,6 +47,7 @@ def WriteApplicationsFile(fname, appinfo, mimeinfo): fhandle.write("\n\n") fhandle.close() + def WriteMimeXMLFile(fname, info): fhandle = open(fname, "w") fhandle.write("\n") @@ -58,6 +60,7 @@ def WriteMimeXMLFile(fname, info): fhandle.write("\n") fhandle.close() + def WriteMimeFile(fname, info): fhandle = open(fname, "w") for ext, mime, desc, app in info: @@ -68,6 +71,7 @@ def WriteMimeFile(fname, info): fhandle.write("\n") fhandle.close() + def WriteKeysFile(fname, info): fhandle = open(fname, "w") for ext, mime, desc, app in info: @@ -80,6 +84,7 @@ def WriteKeysFile(fname, info): fhandle.write("\n") fhandle.close() + def GetDebLibDir(): """ Returns the lib dir according to the debian system. """ # We're on Debian or Ubuntu, which use multiarch directories. @@ -94,6 +99,7 @@ def GetDebLibDir(): return "lib" + def GetRPMLibDir(): """ Returns the lib dir according to the rpm system. """ handle = os.popen("rpm -E '%_lib'") @@ -105,11 +111,12 @@ def GetRPMLibDir(): else: return "lib" + def GetLibDir(): - """ Returns the directory to install architecture-dependent + """Returns the directory to install architecture-dependent libraries in, relative to the prefix directory. This may be something like "lib" or "lib64" or in some cases, something - similar to "lib/x86_64-linux-gnu". """ + similar to "lib/x86_64-linux-gnu".""" if sys.platform in ("darwin", "win32", "cygwin"): return "lib" @@ -142,128 +149,160 @@ def GetLibDir(): return "lib" def InstallPanda(destdir="", prefix="/usr", outputdir="built", libdir=GetLibDir(), python_versions=[]): - if (not prefix.startswith("/")): + if not prefix.startswith("/"): prefix = "/" + prefix libdir = prefix + "/" + libdir + dest_prefix = destdir + prefix + dest_libdir = destdir + libdir + # Create the directory structure that we will be putting our files in. # Don't use os.makedirs or mkdir -p; neither properly set permissions for # created intermediate directories. - MakeDirectory(destdir+prefix+"/bin", mode=0o755, recursive=True) - MakeDirectory(destdir+prefix+"/include", mode=0o755) - MakeDirectory(destdir+prefix+"/include/panda3d", mode=0o755) - MakeDirectory(destdir+prefix+"/share", mode=0o755) - MakeDirectory(destdir+prefix+"/share/panda3d", mode=0o755) - MakeDirectory(destdir+prefix+"/share/mime-info", mode=0o755) - MakeDirectory(destdir+prefix+"/share/mime", mode=0o755) - MakeDirectory(destdir+prefix+"/share/mime/packages", mode=0o755) - MakeDirectory(destdir+prefix+"/share/application-registry", mode=0o755) - MakeDirectory(destdir+prefix+"/share/applications", mode=0o755) - MakeDirectory(destdir+libdir+"/panda3d", mode=0o755, recursive=True) + MakeDirectory(dest_prefix + "/bin", mode=0o755, recursive=True) + MakeDirectory(dest_prefix + "/include", mode=0o755) + MakeDirectory(dest_prefix + "/include/panda3d", mode=0o755) + MakeDirectory(dest_prefix + "/share", mode=0o755) + MakeDirectory(dest_prefix + "/share/panda3d", mode=0o755) + MakeDirectory(dest_prefix + "/share/mime-info", mode=0o755) + MakeDirectory(dest_prefix + "/share/mime", mode=0o755) + MakeDirectory(dest_prefix + "/share/mime/packages", mode=0o755) + MakeDirectory(dest_prefix + "/share/application-registry", mode=0o755) + MakeDirectory(dest_prefix + "/share/applications", mode=0o755) + MakeDirectory(dest_libdir + "/panda3d", mode=0o755, recursive=True) for python_version in python_versions: - MakeDirectory(destdir+python_version["purelib"], mode=0o755, recursive=True) - MakeDirectory(destdir+python_version["platlib"]+"/panda3d", mode=0o755, recursive=True) + MakeDirectory(destdir + python_version["purelib"], mode=0o755, recursive=True) + MakeDirectory(destdir + python_version["platlib"] + "/panda3d", mode=0o755, recursive=True) - if (sys.platform.startswith("freebsd")): - MakeDirectory(destdir+prefix+"/etc", mode=0o755) - MakeDirectory(destdir+"/usr/local/libdata/ldconfig", mode=0o755, recursive=True) + if sys.platform.startswith("freebsd"): + MakeDirectory(dest_prefix + "/etc", mode=0o755) + MakeDirectory(destdir + "/usr/local/libdata/ldconfig", mode=0o755, recursive=True) else: - MakeDirectory(destdir+"/etc/ld.so.conf.d", mode=0o755, recursive=True) + MakeDirectory(destdir + "/etc/ld.so.conf.d", mode=0o755, recursive=True) # Write the Config.prc file. - Configrc = ReadFile(outputdir+"/etc/Config.prc") - Configrc = Configrc.replace("model-path $THIS_PRC_DIR/..", "model-path "+prefix+"/share/panda3d") - if (sys.platform.startswith("freebsd")): - WriteFile(destdir+prefix+"/etc/Config.prc", Configrc) - oscmd("cp "+outputdir+"/etc/Confauto.prc "+destdir+prefix+"/etc/Confauto.prc") + Configrc = ReadFile(outputdir + "/etc/Config.prc") + Configrc = Configrc.replace("model-path $THIS_PRC_DIR/..", "model-path " + prefix + "/share/panda3d") + if sys.platform.startswith("freebsd"): + WriteFile(dest_prefix + "/etc/Config.prc", Configrc) + oscmd(f"cp {outputdir}/etc/Confauto.prc {dest_prefix}/etc/Confauto.prc") else: WriteFile(destdir+"/etc/Config.prc", Configrc) - oscmd("cp "+outputdir+"/etc/Confauto.prc "+destdir+"/etc/Confauto.prc") + oscmd(f"cp {outputdir}/etc/Confauto.prc {destdir}/etc/Confauto.prc") - oscmd("cp -R "+outputdir+"/include/* "+destdir+prefix+"/include/panda3d/") - oscmd("cp -R "+outputdir+"/pandac "+destdir+prefix+"/share/panda3d/") - oscmd("cp -R "+outputdir+"/models "+destdir+prefix+"/share/panda3d/") - if os.path.isdir("samples"): oscmd("cp -R samples "+destdir+prefix+"/share/panda3d/") - if os.path.isdir(outputdir+"/direct"): oscmd("cp -R "+outputdir+"/direct "+destdir+prefix+"/share/panda3d/") - if os.path.isdir(outputdir+"/Pmw"): oscmd("cp -R "+outputdir+"/Pmw "+destdir+prefix+"/share/panda3d/") - if os.path.isdir(outputdir+"/plugins"): oscmd("cp -R "+outputdir+"/plugins "+destdir+prefix+"/share/panda3d/") + oscmd(f"cp -R {outputdir}/include/* {dest_prefix}/include/panda3d/") + oscmd(f"cp -R {outputdir}/pandac {dest_prefix}/share/panda3d/") + oscmd(f"cp -R {outputdir}/models {dest_prefix}/share/panda3d/") + if os.path.isdir("samples"): + oscmd(f"cp -R samples {dest_prefix}/share/panda3d/") + if os.path.isdir(outputdir + "/direct"): + oscmd(f"cp -R {outputdir}/direct {dest_prefix}/share/panda3d/") + if os.path.isdir(outputdir + "/Pmw"): + oscmd(f"cp -R {outputdir}/Pmw {dest_prefix}/share/panda3d/") + if os.path.isdir(outputdir + "/plugins"): + oscmd(f"cp -R {outputdir}/plugins {dest_prefix}/share/panda3d/") for python_version in python_versions: for base in os.listdir(outputdir + "/panda3d"): suffix = python_version["ext_suffix"] platlib = python_version["platlib"] if base.endswith(".py") or (base.endswith(suffix) and '.' not in base[:-len(suffix)]): - oscmd("cp "+outputdir+"/panda3d/"+base+" "+destdir+platlib+"/panda3d/"+base) + oscmd(f"cp {outputdir}/panda3d/{base} {destdir}{platlib}/panda3d/{base}") - WriteMimeFile(destdir+prefix+"/share/mime-info/panda3d.mime", MIME_INFO) - WriteKeysFile(destdir+prefix+"/share/mime-info/panda3d.keys", MIME_INFO) - WriteMimeXMLFile(destdir+prefix+"/share/mime/packages/panda3d.xml", MIME_INFO) - WriteApplicationsFile(destdir+prefix+"/share/application-registry/panda3d.applications", APP_INFO, MIME_INFO) - if os.path.isfile(outputdir+"/bin/pview"): - oscmd("cp makepanda/pview.desktop "+destdir+prefix+"/share/applications/pview.desktop") + WriteMimeFile(dest_prefix + "/share/mime-info/panda3d.mime", MIME_INFO) + WriteKeysFile(dest_prefix + "/share/mime-info/panda3d.keys", MIME_INFO) + WriteMimeXMLFile(dest_prefix + "/share/mime/packages/panda3d.xml", MIME_INFO) + WriteApplicationsFile(dest_prefix + "/share/application-registry/panda3d.applications", APP_INFO, MIME_INFO) + if os.path.isfile(outputdir + "/bin/pview"): + oscmd(f"cp makepanda/pview.desktop {dest_prefix}/share/applications/pview.desktop") - oscmd("cp doc/ReleaseNotes "+destdir+prefix+"/share/panda3d/ReleaseNotes") + oscmd(f"cp doc/ReleaseNotes {dest_prefix}/share/panda3d/ReleaseNotes") for python_version in python_versions: - pth_file = python_version["purelib"] + "/panda3d.pth" - oscmd("echo '"+prefix+"/share/panda3d' > "+destdir+pth_file) + oscmd(f"echo '{prefix}/share/panda3d' > {destdir}{python_version['purelib']}/panda3d.pth") - if os.path.isdir(outputdir+"/panda3d.dist-info"): - oscmd("cp -R "+outputdir+"/panda3d.dist-info "+destdir+python_version["platlib"]) + if os.path.isdir(outputdir + "/panda3d.dist-info"): + oscmd(f"cp -R {outputdir}/panda3d.dist-info {destdir}{python_version['platlib']}") - if (sys.platform.startswith("freebsd")): - oscmd("echo '"+libdir+"/panda3d'> "+destdir+"/usr/local/libdata/ldconfig/panda3d") + if sys.platform.startswith("freebsd"): + oscmd(f"echo '{libdir}/panda3d' > {destdir}/usr/local/libdata/ldconfig/panda3d") else: - oscmd("echo '"+libdir+"/panda3d'> "+destdir+"/etc/ld.so.conf.d/panda3d.conf") + oscmd(f"echo '{libdir}/panda3d' > {destdir}/etc/ld.so.conf.d/panda3d.conf") - for base in os.listdir(outputdir+"/lib"): + for base in os.listdir(outputdir + "/lib"): if not base.endswith(".a"): # We really need to specify -R in order not to follow symlinks on non-GNU - oscmd("cp -R -P "+outputdir+"/lib/"+base+" "+destdir+libdir+"/panda3d/"+base) + oscmd(f"cp -R -P {outputdir}/lib/{base} {dest_libdir}/panda3d/{base}") - for base in os.listdir(outputdir+"/bin"): + for base in os.listdir(outputdir + "/bin"): if not base.startswith("deploy-stub"): - oscmd("cp -R -P "+outputdir+"/bin/"+base+" "+destdir+prefix+"/bin/"+base) + oscmd(f"cp -R -P {outputdir}/bin/{base} {dest_prefix}/bin/{base}") - DeleteVCS(destdir+prefix+"/share/panda3d") - DeleteBuildFiles(destdir+prefix+"/share/panda3d") - DeleteEmptyDirs(destdir+prefix+"/share/panda3d") - DeleteVCS(destdir+prefix+"/include/panda3d") - DeleteBuildFiles(destdir+prefix+"/include/panda3d") - DeleteEmptyDirs(destdir+prefix+"/include/panda3d") + DeleteVCS(dest_prefix + "/share/panda3d") + DeleteBuildFiles(dest_prefix + "/share/panda3d") + DeleteEmptyDirs(dest_prefix + "/share/panda3d") + DeleteVCS(dest_prefix + "/include/panda3d") + DeleteBuildFiles(dest_prefix + "/include/panda3d") + DeleteEmptyDirs(dest_prefix + "/include/panda3d") # Change permissions on include directory. - os.chmod(destdir + prefix + "/include/panda3d", 0o755) - for root, dirs, files in os.walk(destdir + prefix + "/include/panda3d"): + os.chmod(dest_prefix + "/include/panda3d", 0o755) + for root, dirs, files in os.walk(dest_prefix + "/include/panda3d"): for basename in dirs: os.chmod(os.path.join(root, basename), 0o755) for basename in files: os.chmod(os.path.join(root, basename), 0o644) # rpmlint doesn't like this file, for some reason. - if (os.path.isfile(destdir+prefix+"/share/panda3d/direct/leveleditor/copyfiles.pl")): - os.remove(destdir+prefix+"/share/panda3d/direct/leveleditor/copyfiles.pl") + if os.path.isfile(dest_prefix + "/share/panda3d/direct/leveleditor/copyfiles.pl"): + os.remove(dest_prefix + "/share/panda3d/direct/leveleditor/copyfiles.pl") -if (__name__ == "__main__"): - if (sys.platform.startswith("win") or sys.platform == "darwin"): + +if __name__ == "__main__": + if sys.platform.startswith("win") or sys.platform == "darwin": exit("This script is not supported on Windows or Mac OS X at the moment!") destdir = os.environ.get("DESTDIR", "/") parser = OptionParser() - parser.add_option('', '--outputdir', dest = 'outputdir', help = 'Makepanda\'s output directory (default: built)', default = 'built') - parser.add_option('', '--destdir', dest = 'destdir', help = 'Destination directory [default=%s]' % destdir, default = destdir) - parser.add_option('', '--prefix', dest = 'prefix', help = 'Prefix [default=/usr/local]', default = '/usr/local') - parser.add_option('', '--verbose', dest = 'verbose', help = 'Print commands that are executed [default=no]', action = 'store_true', default = False) + parser.add_option( + '', + '--outputdir', + dest='outputdir', + help='Makepanda\'s output directory (default: built)', + default='built', + ) + parser.add_option( + '', + '--destdir', + dest='destdir', + help='Destination directory [default=%s]' % destdir, + default=destdir, + ) + parser.add_option( + '', + '--prefix', + dest='prefix', + help='Prefix [default=/usr/local]', + default='/usr/local', + ) + parser.add_option( + '', + '--verbose', + dest='verbose', + help='Print commands that are executed [default=no]', + action='store_true', + default=False, + ) (options, args) = parser.parse_args() destdir = options.destdir - if (destdir.endswith("/")): + if destdir.endswith("/"): destdir = destdir[:-1] - if (destdir == "/"): + if destdir == "/": destdir = "" - if (destdir != "" and not os.path.isdir(destdir)): + if destdir != "" and not os.path.isdir(destdir): exit("Directory '%s' does not exist!" % destdir) SetOutputDir(options.outputdir) @@ -272,10 +311,12 @@ if (__name__ == "__main__"): SetVerbose(True) print("Installing Panda3D SDK into " + destdir + options.prefix) - InstallPanda(destdir=destdir, - prefix=options.prefix, - outputdir=options.outputdir, - python_versions=ReadPythonVersionInfoFile()) + InstallPanda( + destdir=destdir, + prefix=options.prefix, + outputdir=options.outputdir, + python_versions=ReadPythonVersionInfoFile(), + ) print("Installation finished!") if not destdir: diff --git a/makepanda/makepackage.py b/makepanda/makepackage.py index f4f0e172a9..f87d71d713 100755 --- a/makepanda/makepackage.py +++ b/makepanda/makepackage.py @@ -1,13 +1,13 @@ #!/usr/bin/env python -from makepandacore import * -from installpanda import * import sys import os import shutil import glob import re import subprocess +from makepandacore import * +from installpanda import * INSTALLER_DEB_FILE = """ @@ -61,8 +61,8 @@ This package contains the SDK for development with Panda3D. /usr/%_lib/panda3d /usr/include/panda3d """ -INSTALLER_SPEC_FILE_PVIEW = \ -"""/usr/share/applications/pview.desktop +INSTALLER_SPEC_FILE_PVIEW = """\ +/usr/share/applications/pview.desktop /usr/share/mime-info/panda3d.mime /usr/share/mime-info/panda3d.keys /usr/share/mime/packages/panda3d.xml @@ -70,7 +70,8 @@ INSTALLER_SPEC_FILE_PVIEW = \ """ # plist file for Mac OSX -Info_plist = """ +Info_plist = """\ + @@ -114,17 +115,18 @@ deps: {DEPENDS} # Since we're adding a bunch of install scripts to the macOS intaller, we'll # put the platform-checking code in some variables to reduce repetition. -MACOS_SCRIPT_PREFIX = \ -"""#!/bin/bash +MACOS_SCRIPT_PREFIX = """\ +#!/bin/bash IFS=. read -a version_info <<< "`sw_vers -productVersion`" if (( ${version_info[0]} == 10 && ${version_info[1]} < 15 )); then """ -MACOS_SCRIPT_POSTFIX = \ -"""fi +MACOS_SCRIPT_POSTFIX = """\ +fi """ + def MakeInstallerNSIS(version, file, title, installdir, compressor="lzma", **kwargs): outputdir = GetOutputDir() @@ -138,30 +140,32 @@ def MakeInstallerNSIS(version, file, title, installdir, compressor="lzma", **kwa else: regview = '32' - print("Building "+title+" installer at %s" % (file)) + print("Building " + title + " installer at %s" % (file)) if compressor != "lzma": print("Note: you are using zlib, which is faster, but lzma gives better compression.") if os.path.exists("nsis-output.exe"): os.remove("nsis-output.exe") - WriteFile(outputdir+"/tmp/__init__.py", "") + WriteFile(outputdir + "/tmp/__init__.py", "") nsis_defs = { 'COMPRESSOR': compressor, - 'TITLE' : title, + 'TITLE': title, 'INSTALLDIR': installdir, - 'OUTFILE' : '..\\' + file, - 'BUILT' : '..\\' + outputdir, - 'SOURCE' : '..', - 'REGVIEW' : regview, - 'MAJOR_VER' : '.'.join(version.split('.')[:2]), + 'OUTFILE': '..\\' + file, + 'BUILT': '..\\' + outputdir, + 'SOURCE': '..', + 'REGVIEW': regview, + 'MAJOR_VER': '.'.join(version.split('.')[:2]), } # Are we shipping a version of Python? if os.path.isfile(os.path.join(outputdir, "python", "python.exe")): - py_dlls = glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9].dll")) \ - + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9]_d.dll")) \ - + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9][0-9].dll")) \ - + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9][0-9]_d.dll")) + py_dlls = ( + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9].dll")) + + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9]_d.dll")) + + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9][0-9].dll")) + + glob.glob(os.path.join(outputdir, "python", "python[0-9][0-9][0-9]_d.dll")) + ) assert py_dlls py_dll = os.path.basename(py_dlls[0]) py_dllver = py_dll.strip(".DHLNOPTY_dhlnopty") @@ -189,6 +193,7 @@ def MakeDebugSymbolArchive(zipname, dirname): outputdir = GetOutputDir() import zipfile + zip = zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED) for fn in glob.glob(os.path.join(outputdir, 'bin', '*.pdb')): @@ -248,24 +253,32 @@ def MakeInstallerLinux(version, debversion=None, rpmrelease=1, if dpkg_present: # Invoke installpanda.py to install it into a temporary dir lib_dir = GetDebLibDir() - InstallPanda(destdir="targetroot", prefix="/usr", - outputdir=outputdir, libdir=lib_dir, - python_versions=install_python_versions) + InstallPanda( + destdir="targetroot", + prefix="/usr", + outputdir=outputdir, + libdir=lib_dir, + python_versions=install_python_versions, + ) oscmd("chmod -R 755 targetroot/usr/share/panda3d") oscmd("mkdir -m 0755 -p targetroot/usr/share/man/man1") oscmd("install -m 0644 doc/man/*.1 targetroot/usr/share/man/man1/") - oscmd("dpkg --print-architecture > "+outputdir+"/tmp/architecture.txt") - pkg_arch = ReadFile(outputdir+"/tmp/architecture.txt").strip() + oscmd("dpkg --print-architecture > " + outputdir + "/tmp/architecture.txt") + pkg_arch = ReadFile(outputdir + "/tmp/architecture.txt").strip() txt = INSTALLER_DEB_FILE[1:] - txt = txt.replace("VERSION", debversion).replace("ARCH", pkg_arch).replace("MAJOR", major_version) + txt = ( + txt.replace("VERSION", debversion) + .replace("ARCH", pkg_arch) + .replace("MAJOR", major_version) + ) txt = txt.replace("INSTSIZE", str(GetDirectorySize("targetroot") // 1024)) oscmd("mkdir -m 0755 -p targetroot/DEBIAN") oscmd("cd targetroot && (find usr -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/postinst","#!/bin/sh\necho running ldconfig\nldconfig\n") + WriteFile("targetroot/DEBIAN/conffiles", "/etc/Config.prc\n") + WriteFile("targetroot/DEBIAN/postinst", "#!/bin/sh\necho running ldconfig\nldconfig\n") oscmd("cp targetroot/DEBIAN/postinst targetroot/DEBIAN/postrm") # Determine the package name and the locations that @@ -289,12 +302,12 @@ def MakeInstallerLinux(version, debversion=None, rpmrelease=1, pkg_dir = "debian/panda3d" + major_version # 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(f"cd targetroot && dpkg-gensymbols -q -ODEBIAN/symbols -v{pkg_version} -p{pkg_name} -e{lib_pattern}") # Library dependencies are required, binary dependencies are recommended. # 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(f"cd targetroot && LD_LIBRARY_PATH=usr/{lib_dir}/panda3d {dpkg_shlibdeps} -Tdebian/substvars_dep --ignore-missing-info -x{pkg_name} -xlibphysx-extras {lib_pattern}") + oscmd(f"cd targetroot && LD_LIBRARY_PATH=usr/{lib_dir}/panda3d {dpkg_shlibdeps} -Tdebian/substvars_rec --ignore-missing-info -x{pkg_name} {bin_pattern}") # Parse the substvars files generated by dpkg-shlibdeps. depends = ReadFile("targetroot/debian/substvars_dep").replace("shlibs:Depends=", "").strip() @@ -324,13 +337,17 @@ def MakeInstallerLinux(version, debversion=None, rpmrelease=1, elif rpmbuild_present: # Invoke installpanda.py to install it into a temporary dir - InstallPanda(destdir="targetroot", prefix="/usr", - outputdir=outputdir, libdir=GetRPMLibDir(), - python_versions=install_python_versions) + InstallPanda( + destdir="targetroot", + prefix="/usr", + outputdir=outputdir, + libdir=GetRPMLibDir(), + python_versions=install_python_versions, + ) oscmd("chmod -R 755 targetroot/usr/share/panda3d") - oscmd("rpm -E '%_target_cpu' > "+outputdir+"/tmp/architecture.txt") - arch = ReadFile(outputdir+"/tmp/architecture.txt").strip() + oscmd("rpm -E '%_target_cpu' > " + outputdir + "/tmp/architecture.txt") + arch = ReadFile(outputdir + "/tmp/architecture.txt").strip() pandasource = os.path.abspath(os.getcwd()) txt = INSTALLER_SPEC_FILE[1:] @@ -378,9 +395,12 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): dmg_name += "-py" + python_versions[0]["version"] dmg_name += ".dmg" - if (os.path.isfile(dmg_name)): oscmd("rm -f %s" % dmg_name) - if (os.path.exists("dstroot")): oscmd("rm -rf dstroot") - if (os.path.exists("Panda3D-rw.dmg")): oscmd('rm -f Panda3D-rw.dmg') + if os.path.isfile(dmg_name): + oscmd("rm -f %s" % dmg_name) + if os.path.exists("dstroot"): + oscmd("rm -rf dstroot") + if os.path.exists("Panda3D-rw.dmg"): + oscmd('rm -f Panda3D-rw.dmg') oscmd("mkdir -p dstroot/base/%s/lib" % installdir) oscmd("mkdir -p dstroot/base/%s/etc" % installdir) @@ -389,15 +409,15 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): oscmd("cp -R %s/models dstroot/base/%s/models" % (outputdir, installdir)) oscmd("cp -R doc/LICENSE dstroot/base/%s/LICENSE" % installdir) oscmd("cp -R doc/ReleaseNotes dstroot/base/%s/ReleaseNotes" % installdir) - if os.path.isdir(outputdir+"/Frameworks") and os.listdir(outputdir+"/Frameworks"): + if os.path.isdir(outputdir + "/Frameworks") and os.listdir(outputdir + "/Frameworks"): oscmd("cp -R %s/Frameworks dstroot/base/%s/Frameworks" % (outputdir, installdir)) - if os.path.isdir(outputdir+"/plugins"): + if os.path.isdir(outputdir + "/plugins"): oscmd("cp -R %s/plugins dstroot/base/%s/plugins" % (outputdir, installdir)) # Libraries that shouldn't be in base, but are instead in other modules. no_base_libs = ['libp3ffmpeg', 'libp3fmod_audio', 'libfmodex', 'libfmodexL'] - for base in os.listdir(outputdir+"/lib"): + for base in os.listdir(outputdir + "/lib"): if not base.endswith(".a") and base.split('.')[0] not in no_base_libs: libname = ("dstroot/base/%s/lib/" % installdir) + base # We really need to specify -R in order not to follow symlinks @@ -412,7 +432,7 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): oscmd("mkdir -m 0755 -p dstroot/tools/usr/local/share/man/man1") oscmd("install -m 0644 doc/man/*.1 dstroot/tools/usr/local/share/man/man1/") - for base in os.listdir(outputdir+"/bin"): + for base in os.listdir(outputdir + "/bin"): if not base.startswith("deploy-stub"): binname = ("dstroot/tools/%s/bin/" % installdir) + base # OSX needs the -R argument to copy symbolic links correctly, it doesn't have -d. How weird. @@ -436,7 +456,7 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): if os.path.isdir(outputdir + "/panda3d.dist-info"): oscmd("cp -R %s/panda3d.dist-info dstroot/pythoncode/%s/panda3d.dist-info" % (outputdir, installdir)) - for base in os.listdir(outputdir+"/panda3d"): + for base in os.listdir(outputdir + "/panda3d"): if base.endswith('.py'): libname = ("dstroot/pythoncode/%s/panda3d/" % installdir) + base oscmd("cp -R " + outputdir + "/panda3d/" + base + " " + libname) @@ -519,8 +539,10 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): # if they're running macOS 10.14 or less. We also remove the old # installation. script_components = set() + def write_script(component, phase, contents): - if installdir == "/Developer/Panda3D": return + if installdir == "/Developer/Panda3D": + return script_components.add(component) oscmd("mkdir -p dstroot/scripts/%s" % component) @@ -565,9 +587,12 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): pkgs.append("pythoncode") for version_info in python_versions: pkgs.append("pybindings" + version_info["version"]) - if not PkgSkip("FFMPEG"): pkgs.append("ffmpeg") - #if not PkgSkip("OPENAL"): pkgs.append("openal") - if not PkgSkip("FMODEX"): pkgs.append("fmodex") + if not PkgSkip("FFMPEG"): + pkgs.append("ffmpeg") + #if not PkgSkip("OPENAL"): + # pkgs.append("openal") + if not PkgSkip("FMODEX"): + pkgs.append("fmodex") for pkg in pkgs: identifier = "org.panda3d.panda3d.%s.pkg" % pkg @@ -584,7 +609,7 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): pkg_scripts = '' if os.path.exists("/usr/bin/pkgbuild"): - cmd = '/usr/bin/pkgbuild --identifier ' + identifier + ' --version ' + version + ' --root dstroot/' + pkg + '/ dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/' + pkg + '.pkg' + pkg_scripts + cmd = f'/usr/bin/pkgbuild --identifier {identifier} --version {version} --root dstroot/{pkg}/ dstroot/Panda3D/Panda3D.mpkg/Contents/Packages/{pkg}.pkg {pkg_scripts}' else: exit("pkgbuild could not be found!") oscmd(cmd) @@ -620,7 +645,7 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs): dist.write(' \n') if python_versions: dist.write(' \n') - for version_info in sorted(python_versions, key=lambda info:info["version"], reverse=True): + for version_info in sorted(python_versions, key=lambda info: info["version"], reverse=True): dist.write(' \n' % (version_info["version"])) dist.write(' \n') dist.write(' \n') @@ -700,7 +725,12 @@ def MakeInstallerFreeBSD(version, python_versions=[], **kwargs): oscmd("mkdir targetroot") # Invoke installpanda.py to install it into a temporary dir - InstallPanda(destdir="targetroot", prefix="/usr/local", outputdir=outputdir, python_versions=python_versions) + InstallPanda( + destdir="targetroot", + prefix="/usr/local", + outputdir=outputdir, + python_versions=python_versions, + ) if not os.path.exists("/usr/sbin/pkg"): exit("Cannot create an installer without pkg") @@ -894,7 +924,10 @@ def MakeInstallerAndroid(version, **kwargs): # And now make a site-packages directory containing our direct/panda3d/pandac modules. for tree in "panda3d", "direct", "pandac": - copy_python_tree(os.path.join(outputdir, tree), os.path.join(stdlib_target, "site-packages", tree)) + copy_python_tree( + os.path.join(outputdir, tree), + os.path.join(stdlib_target, "site-packages", tree), + ) # Copy the models and config files to the virtual assets filesystem. oscmd("mkdir apkroot/assets") @@ -981,13 +1014,57 @@ if __name__ == "__main__": version = GetMetadataValue('version') parser = OptionParser() - parser.add_option('', '--version', dest='version', help='Panda3D version number (default: %s)' % (version), default=version) - parser.add_option('', '--debversion', dest='debversion', help='Version number for .deb file', default=None) - parser.add_option('', '--rpmrelease', dest='rpmrelease', help='Release number for .rpm file', default='1') - parser.add_option('', '--outputdir', dest='outputdir', help='Makepanda\'s output directory (default: built)', default='built') - parser.add_option('', '--verbose', dest='verbose', help='Enable verbose output', action='store_true', default=False) - parser.add_option('', '--lzma', dest='compressor', help='Use LZMA compression', action='store_const', const='lzma', default='zlib') - parser.add_option('', '--installdir', dest='installdir', help='Where on the system the installer should put the SDK (Windows, macOS)') + parser.add_option( + '', + '--version', + dest='version', + help='Panda3D version number (default: %s)' % (version), + default=version, + ) + parser.add_option( + '', + '--debversion', + dest='debversion', + help='Version number for .deb file', + default=None, + ) + parser.add_option( + '', + '--rpmrelease', + dest='rpmrelease', + help='Release number for .rpm file', + default='1', + ) + parser.add_option( + '', + '--outputdir', + dest='outputdir', + help='Makepanda\'s output directory (default: built)', + default='built', + ) + parser.add_option( + '', + '--verbose', + dest='verbose', + help='Enable verbose output', + action='store_true', + default=False, + ) + parser.add_option( + '', + '--lzma', + dest='compressor', + help='Use LZMA compression', + action='store_const', + const='lzma', + default='zlib', + ) + parser.add_option( + '', + '--installdir', + dest='installdir', + help='Where on the system the installer should put the SDK (Windows, macOS)', + ) (options, args) = parser.parse_args() SetVerbose(options.verbose) @@ -1014,11 +1091,13 @@ if __name__ == "__main__": if not match: exit("version requires three digits") - MakeInstaller(version=match.group(), - outputdir=options.outputdir, - optimize=GetOptimize(), - compressor=options.compressor, - debversion=options.debversion, - rpmrelease=options.rpmrelease, - python_versions=ReadPythonVersionInfoFile(), - installdir=options.installdir) + MakeInstaller( + version=match.group(), + outputdir=options.outputdir, + optimize=GetOptimize(), + compressor=options.compressor, + debversion=options.debversion, + rpmrelease=options.rpmrelease, + python_versions=ReadPythonVersionInfoFile(), + installdir=options.installdir, + ) diff --git a/makepanda/makepanda.py b/makepanda/makepanda.py index 05b937f264..848562d989 100755 --- a/makepanda/makepanda.py +++ b/makepanda/makepanda.py @@ -14,7 +14,13 @@ if sys.version_info < (3, 6): exit(1) try: - import os, platform, time, stat, re, getopt, threading, signal, shutil + import os + import time + import re + import getopt + import threading + import signal + import shutil import plistlib import queue except KeyboardInterrupt: @@ -24,11 +30,8 @@ except: print("Please install the development package of Python and try again.") exit(1) -from makepandacore import * from distutils.util import get_platform -import time -import os -import sys +from makepandacore import * try: import zlib @@ -64,7 +67,6 @@ RPMRELEASE="1" GIT_COMMIT=None MAJOR_VERSION=None OSX_ARCHS=[] -global STRDXSDKVERSION, BOOUSEINTELCOMPILER STRDXSDKVERSION = 'default' WINDOWS_SDK = None MSVC_VERSION = None @@ -115,7 +117,7 @@ signal.signal(signal.SIGINT, keyboardInterruptHandler) ######################################################################## def usage(problem): - if (problem): + if problem: print("") print("Error parsing command-line input: %s" % (problem)) @@ -535,12 +537,12 @@ if (COMPILER == "MSVC"): PkgDisable("EGL") PkgDisable("COCOA") DefSymbol("FLEX", "YY_NO_UNISTD_H") - if (PkgSkip("PYTHON")==0): + if not PkgSkip("PYTHON"): IncDirectory("ALWAYS", SDK["PYTHON"] + "/include") LibDirectory("ALWAYS", SDK["PYTHON"] + "/libs") SmartPkgEnable("EIGEN", "eigen3", (), ("Eigen/Dense",), target_pkg = 'ALWAYS') for pkg in PkgListGet(): - if (PkgSkip(pkg)==0): + if not PkgSkip(pkg): if (pkg[:4]=="MAYA"): IncDirectory(pkg, SDK[pkg] + "/include") DefSymbol(pkg, "MAYAVERSION", pkg) @@ -559,14 +561,14 @@ if (COMPILER == "MSVC"): elif GetThirdpartyDir() is not None: IncDirectory(pkg, GetThirdpartyDir() + pkg.lower() + "/include") for pkg in DXVERSIONS: - if (PkgSkip(pkg)==0): + if not PkgSkip(pkg): vnum=pkg[2:] if GetTargetArch() == 'x64': - LibDirectory(pkg, SDK[pkg] + '/lib/x64') + LibDirectory(pkg, SDK[pkg] + '/lib/x64') else: - LibDirectory(pkg, SDK[pkg] + '/lib/x86') - LibDirectory(pkg, SDK[pkg] + '/lib') + LibDirectory(pkg, SDK[pkg] + '/lib/x86') + LibDirectory(pkg, SDK[pkg] + '/lib') LibName(pkg, 'd3dVNUM.lib'.replace("VNUM", vnum)) LibName(pkg, 'd3dxVNUM.lib'.replace("VNUM", vnum)) @@ -707,13 +709,13 @@ if (COMPILER == "MSVC"): path = GetThirdpartyDir() + "opus/lib/{0}.lib".format(lib) LibName("OPUS", path) for pkg in MAYAVERSIONS: - if (PkgSkip(pkg)==0): + if not PkgSkip(pkg): LibName(pkg, '"' + SDK[pkg] + '/lib/Foundation.lib"') LibName(pkg, '"' + SDK[pkg] + '/lib/OpenMaya.lib"') LibName(pkg, '"' + SDK[pkg] + '/lib/OpenMayaAnim.lib"') LibName(pkg, '"' + SDK[pkg] + '/lib/OpenMayaUI.lib"') for pkg in MAXVERSIONS: - if (PkgSkip(pkg)==0): + if not PkgSkip(pkg): LibName(pkg, SDK[pkg] + '/lib/core.lib') LibName(pkg, SDK[pkg] + '/lib/edmodel.lib') LibName(pkg, SDK[pkg] + '/lib/gfx.lib') @@ -722,7 +724,7 @@ if (COMPILER == "MSVC"): LibName(pkg, SDK[pkg] + '/lib/maxutil.lib') LibName(pkg, SDK[pkg] + '/lib/paramblk2.lib') - if (PkgSkip("SPEEDTREE")==0): + if not PkgSkip("SPEEDTREE"): if GetTargetArch() == 'x64': libdir = SDK["SPEEDTREE"] + "/Lib/Windows/VC10.x64/" p64ext = '64' @@ -773,13 +775,13 @@ if (COMPILER=="GCC"): Warn("thirdparty package fmodex requires one of MacOSX 10.9-10.13 SDK, excluding from build") PkgDisable("FMODEX") - #if (PkgSkip("PYTHON")==0): + #if not PkgSkip("PYTHON"): # IncDirectory("PYTHON", SDK["PYTHON"]) if (GetHost() == "darwin"): if (PkgSkip("FREETYPE")==0 and not os.path.isdir(GetThirdpartyDir() + 'freetype')): - IncDirectory("FREETYPE", "/usr/X11/include") - IncDirectory("FREETYPE", "/usr/X11/include/freetype2") - LibDirectory("FREETYPE", "/usr/X11/lib") + IncDirectory("FREETYPE", "/usr/X11/include") + IncDirectory("FREETYPE", "/usr/X11/include/freetype2") + LibDirectory("FREETYPE", "/usr/X11/lib") if (GetHost() == "freebsd"): IncDirectory("ALWAYS", "/usr/local/include") @@ -1173,7 +1175,7 @@ def CompileCxx(obj,src,opts): cmd += " /D_HAS_EXCEPTIONS=0" if 'RTTI' not in opts: - cmd += " /GR-" + cmd += " /GR-" cmd += " /W3 " + BracketNameWithQuotes(src) oscmd(cmd) @@ -2057,19 +2059,21 @@ def CompileBundle(target, inputs, opts): resources = [] objects = [] for i in inputs: - if (i.endswith(".plist")): - if (plist != None): exit("Only one plist file can be used when creating a bundle!") + if i.endswith(".plist"): + if plist is not None: + exit("Only one plist file can be used when creating a bundle!") plist = i - elif (i.endswith(".rsrc") or i.endswith(".icns")): + elif i.endswith(".rsrc") or i.endswith(".icns"): resources.append(i) - elif (GetOrigExt(i) == ".obj" or GetOrigExt(i) in SUFFIX_LIB or GetOrigExt(i) in SUFFIX_DLL): + elif GetOrigExt(i) == ".obj" or GetOrigExt(i) in SUFFIX_LIB or GetOrigExt(i) in SUFFIX_DLL: objects.append(i) else: exit("Don't know how to bundle file %s" % i) # Now link the object files to form the bundle. - if (plist == None): exit("One plist file must be used when creating a bundle!") - bundleName = plistlib.readPlist(plist)["CFBundleExecutable"] + if plist is None: + exit("One plist file must be used when creating a bundle!") + bundleName = plistlib.load(plist)["CFBundleExecutable"] oscmd("rm -rf %s" % target) oscmd("mkdir -p %s/Contents/MacOS/" % target) @@ -2110,22 +2114,22 @@ def CompileMIDL(target, src, opts): ########################################################################################## def CompileAnything(target, inputs, opts, progress = None): - if (opts.count("DEPENDENCYONLY")): + if opts.count("DEPENDENCYONLY"): return - if (len(inputs)==0): + if len(inputs) == 0: exit("No input files for target "+target) infile = inputs[0] origsuffix = GetOrigExt(target) - if (len(inputs) == 1 and origsuffix == GetOrigExt(infile)): + if len(inputs) == 1 and origsuffix == GetOrigExt(infile): # It must be a simple copy operation. ProgressOutput(progress, "Copying file", target) CopyFile(target, infile) - if (origsuffix==".exe" and GetHost() != "windows"): + if origsuffix == ".exe" and GetHost() != "windows": os.system("chmod +x \"%s\"" % target) return - elif (infile.endswith(".py")): + elif infile.endswith(".py"): if origsuffix == ".obj": source = os.path.splitext(target)[0] + ".c" SetOrigExt(source, ".c") @@ -2140,14 +2144,14 @@ def CompileAnything(target, inputs, opts, progress = None): ProgressOutput(progress, "Building frozen library", target) return FreezePy(target, inputs, opts) - elif (infile.endswith(".idl")): + elif infile.endswith(".idl"): ProgressOutput(progress, "Compiling MIDL file", infile) return CompileMIDL(target, infile, opts) elif origsuffix in SUFFIX_LIB: ProgressOutput(progress, "Linking static library", target) return CompileLib(target, inputs, opts) - elif origsuffix in SUFFIX_DLL or (origsuffix==".plugin" and GetTarget() != "darwin"): - if (origsuffix==".exe"): + elif origsuffix in SUFFIX_DLL or (origsuffix == ".plugin" and GetTarget() != "darwin"): + if (origsuffix == ".exe"): ProgressOutput(progress, "Linking executable", target) else: ProgressOutput(progress, "Linking dynamic library", target) @@ -2165,53 +2169,53 @@ def CompileAnything(target, inputs, opts, progress = None): target += "." + MAJOR_VERSION SetOrigExt(target, origsuffix) return CompileLink(target, inputs, opts) - elif (origsuffix==".in"): + elif origsuffix == ".in": ProgressOutput(progress, "Building Interrogate database", target) return CompileIgate(target, inputs, opts) - elif (origsuffix==".plugin" and GetTarget() == "darwin"): + elif origsuffix == ".plugin" and GetTarget() == "darwin": ProgressOutput(progress, "Building plugin bundle", target) return CompileBundle(target, inputs, opts) - elif (origsuffix==".app"): + elif origsuffix == ".app": ProgressOutput(progress, "Building application bundle", target) return CompileBundle(target, inputs, opts) - elif (origsuffix==".pz"): + elif origsuffix == ".pz": ProgressOutput(progress, "Compressing", target) return CompileEgg(target, infile, opts) - elif (origsuffix==".egg"): + elif origsuffix == ".egg": ProgressOutput(progress, "Converting", target) return CompileEgg(target, infile, opts) - elif (origsuffix==".res"): + elif origsuffix == ".res": ProgressOutput(progress, "Building resource object", target) return CompileRes(target, infile, opts) - elif (origsuffix==".rsrc"): + elif origsuffix == ".rsrc": ProgressOutput(progress, "Building resource object", target) return CompileRsrc(target, infile, opts) - elif (origsuffix==".class"): + elif origsuffix == ".class": ProgressOutput(progress, "Building Java class", target) return CompileJava(target, infile, opts) - elif (origsuffix==".obj"): + elif origsuffix == ".obj": if (infile.endswith(".cxx")): ProgressOutput(progress, "Building C++ object", target) return CompileCxx(target, infile, opts) - elif (infile.endswith(".c")): + elif infile.endswith(".c"): ProgressOutput(progress, "Building C object", target) return CompileCxx(target, infile, opts) - elif (infile.endswith(".mm")): + elif infile.endswith(".mm"): ProgressOutput(progress, "Building Objective-C++ object", target) return CompileCxx(target, infile, opts) - elif (infile.endswith(".yxx")): + elif infile.endswith(".yxx"): ProgressOutput(progress, "Building Bison object", target) return CompileBison(target, infile, opts) - elif (infile.endswith(".lxx")): + elif infile.endswith(".lxx"): ProgressOutput(progress, "Building Flex object", target) return CompileFlex(target, infile, opts) - elif (infile.endswith(".in")): + elif infile.endswith(".in"): ProgressOutput(progress, "Building Interrogate object", target) return CompileImod(target, inputs, opts) - elif (infile.endswith(".rc")): + elif infile.endswith(".rc"): ProgressOutput(progress, "Building resource object", target) return CompileRes(target, infile, opts) - elif (infile.endswith(".r")): + elif infile.endswith(".r"): ProgressOutput(progress, "Building resource object", target) return CompileRsrc(target, infile, opts) exit("Don't know how to compile: %s from %s" % (target, inputs)) @@ -2455,7 +2459,7 @@ def WriteConfigSettings(): ## if GetTarget() == 'windows' and GetTargetArch() == 'x64': ## dtool_config["SIMPLE_THREADS"] = 'UNDEF' - if (PkgSkip("SPEEDTREE")==0): + if not PkgSkip("SPEEDTREE"): speedtree_parameters["SPEEDTREE_OPENGL"] = "UNDEF" speedtree_parameters["SPEEDTREE_DIRECTX9"] = "UNDEF" if SDK["SPEEDTREEAPI"] == "OpenGL": @@ -2491,7 +2495,7 @@ def WriteConfigSettings(): ConditionalWriteFile(GetOutputDir() + '/include/dtool_config.h', conf) - if (PkgSkip("SPEEDTREE")==0): + if not PkgSkip("SPEEDTREE"): conf = "/* speedtree_parameters.h. Generated automatically by makepanda.py */\n" for key in sorted(speedtree_parameters.keys()): val = OverrideValue(key, speedtree_parameters[key]) @@ -2604,7 +2608,7 @@ CreatePandaVersionFiles() # ########################################################################################## -if (PkgSkip("DIRECT")==0): +if not PkgSkip("DIRECT"): CopyPythonTree(GetOutputDir() + '/direct', 'direct/src', threads=THREADCOUNT) ConditionalWriteFile(GetOutputDir() + '/direct/__init__.py', "") @@ -2773,7 +2777,7 @@ if not PkgSkip("DIRECT"): ########################################################################################## confautoprc = ReadFile("makepanda/confauto.in") -if (PkgSkip("SPEEDTREE")==0): +if not PkgSkip("SPEEDTREE"): # If SpeedTree is available, enable it in the config file confautoprc = confautoprc.replace('#st#', '') else: @@ -3029,10 +3033,10 @@ else: CopyFile(GetOutputDir()+"/", "doc/LICENSE") CopyFile(GetOutputDir()+"/", "doc/ReleaseNotes") -if (PkgSkip("PANDATOOL")==0): +if not PkgSkip("PANDATOOL"): CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".mel") CopyAllFiles(GetOutputDir()+"/plugins/", "pandatool/src/scripts/", ".ms") -if (PkgSkip("PYTHON")==0 and os.path.isdir(GetThirdpartyBase()+"/Pmw")): +if not PkgSkip("PYTHON") and os.path.isdir(GetThirdpartyBase()+"/Pmw"): CopyTree(GetOutputDir()+'/Pmw', GetThirdpartyBase()+'/Pmw') ConditionalWriteFile(GetOutputDir()+'/include/ctl3d.h', '/* dummy file to make MAX happy */') @@ -3098,9 +3102,9 @@ CopyAllHeaders('panda/src/device') CopyAllHeaders('panda/src/pnmtext') CopyAllHeaders('panda/src/text') CopyAllHeaders('panda/src/grutil') -if (PkgSkip("VISION")==0): +if not PkgSkip("VISION"): CopyAllHeaders('panda/src/vision') -if (PkgSkip("FFMPEG")==0): +if not PkgSkip("FFMPEG"): CopyAllHeaders('panda/src/ffmpeg') CopyAllHeaders('panda/src/tform') CopyAllHeaders('panda/src/collide') @@ -3108,14 +3112,14 @@ CopyAllHeaders('panda/src/parametrics') CopyAllHeaders('panda/src/pgui') CopyAllHeaders('panda/src/pnmimagetypes') CopyAllHeaders('panda/src/recorder') -if (PkgSkip("VRPN")==0): +if not PkgSkip("VRPN"): CopyAllHeaders('panda/src/vrpn') CopyAllHeaders('panda/src/wgldisplay') CopyAllHeaders('panda/src/ode') CopyAllHeaders('panda/metalibs/pandaode') -if (PkgSkip("PANDAPHYSICS")==0): +if not PkgSkip("PANDAPHYSICS"): CopyAllHeaders('panda/src/physics') - if (PkgSkip("PANDAPARTICLESYSTEM")==0): + if not PkgSkip("PANDAPARTICLESYSTEM"): CopyAllHeaders('panda/src/particlesystem') CopyAllHeaders('panda/src/dxml') CopyAllHeaders('panda/metalibs/panda') @@ -3155,14 +3159,14 @@ CopyAllHeaders('panda/metalibs/pandagles2') CopyAllHeaders('panda/metalibs/pandaphysics') CopyAllHeaders('panda/src/testbed') -if (PkgSkip("BULLET")==0): +if not PkgSkip("BULLET"): CopyAllHeaders('panda/src/bullet') CopyAllHeaders('panda/metalibs/pandabullet') -if (PkgSkip("SPEEDTREE")==0): +if not PkgSkip("SPEEDTREE"): CopyAllHeaders('contrib/src/speedtree') -if (PkgSkip("DIRECT")==0): +if not PkgSkip("DIRECT"): CopyAllHeaders('direct/src/directbase') CopyAllHeaders('direct/src/dcparser') CopyAllHeaders('direct/src/deadrec') @@ -3171,7 +3175,7 @@ if (PkgSkip("DIRECT")==0): CopyAllHeaders('direct/src/showbase') CopyAllHeaders('direct/src/dcparse') -if (PkgSkip("PANDATOOL")==0): +if not PkgSkip("PANDATOOL"): CopyAllHeaders('pandatool/src/pandatoolbase') CopyAllHeaders('pandatool/src/converter') CopyAllHeaders('pandatool/src/progbase') @@ -3216,7 +3220,7 @@ if (PkgSkip("PANDATOOL")==0): CopyAllHeaders('pandatool/src/win-stats') CopyAllHeaders('pandatool/src/xfileprogs') -if (PkgSkip("CONTRIB")==0): +if not PkgSkip("CONTRIB"): CopyAllHeaders('contrib/src/contribbase') CopyAllHeaders('contrib/src/ai') @@ -3261,8 +3265,8 @@ sys.stdout.flush() # if GetTarget() == 'windows': - OPTS=['DIR:panda/src/configfiles'] - TargetAdd('pandaIcon.res', opts=OPTS, input='pandaIcon.rc') + OPTS=['DIR:panda/src/configfiles'] + TargetAdd('pandaIcon.res', opts=OPTS, input='pandaIcon.rc') # # DIRECTORY: dtool/src/dtoolbase/ @@ -3279,10 +3283,10 @@ TargetAdd('p3dtoolbase_indent.obj', opts=OPTS, input='indent.cxx') # OPTS=['DIR:dtool/src/dtoolutil', 'BUILDING:DTOOL'] -TargetAdd('p3dtoolutil_composite1.obj', opts=OPTS, input='p3dtoolutil_composite1.cxx') -TargetAdd('p3dtoolutil_composite2.obj', opts=OPTS, input='p3dtoolutil_composite2.cxx') +TargetAdd('p3dtoolutil_composite1.obj', opts=OPTS, input='p3dtoolutil_composite1.cxx') +TargetAdd('p3dtoolutil_composite2.obj', opts=OPTS, input='p3dtoolutil_composite2.cxx') if GetTarget() == 'darwin': - TargetAdd('p3dtoolutil_filename_assist.obj', opts=OPTS, input='filename_assist.mm') + TargetAdd('p3dtoolutil_filename_assist.obj', opts=OPTS, input='filename_assist.mm') # # DIRECTORY: dtool/metalibs/dtool/ @@ -3294,7 +3298,7 @@ TargetAdd('libp3dtool.dll', input='p3dtool_dtool.obj') TargetAdd('libp3dtool.dll', input='p3dtoolutil_composite1.obj') TargetAdd('libp3dtool.dll', input='p3dtoolutil_composite2.obj') if GetTarget() == 'darwin': - TargetAdd('libp3dtool.dll', input='p3dtoolutil_filename_assist.obj') + TargetAdd('libp3dtool.dll', input='p3dtoolutil_filename_assist.obj') TargetAdd('libp3dtool.dll', input='p3dtoolbase_composite1.obj') TargetAdd('libp3dtool.dll', input='p3dtoolbase_composite2.obj') TargetAdd('libp3dtool.dll', input='p3dtoolbase_indent.obj') @@ -3371,10 +3375,10 @@ TargetAdd('interrogate.exe', input='libp3interrogatedb.dll') TargetAdd('interrogate.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER']) preamble = WriteEmbeddedStringFile('interrogate_preamble_python_native', inputs=[ -'dtool/src/interrogatedb/py_panda.cxx', -'dtool/src/interrogatedb/py_compat.cxx', -'dtool/src/interrogatedb/py_wrappers.cxx', -'dtool/src/interrogatedb/dtool_super_base.cxx', + 'dtool/src/interrogatedb/py_panda.cxx', + 'dtool/src/interrogatedb/py_compat.cxx', + 'dtool/src/interrogatedb/py_wrappers.cxx', + 'dtool/src/interrogatedb/dtool_super_base.cxx', ]) TargetAdd('interrogate_module_preamble_python_native.obj', opts=OPTS, input=preamble) TargetAdd('interrogate_module_interrogate_module.obj', opts=OPTS, input='interrogate_module.cxx') @@ -3396,12 +3400,12 @@ TargetAdd('parse_file.exe', opts=['ADVAPI', 'WINSHELL', 'WINGDI', 'WINUSER']) # DIRECTORY: dtool/src/prckeys/ # -if (PkgSkip("OPENSSL")==0): - OPTS=['DIR:dtool/src/prckeys', 'OPENSSL'] - TargetAdd('make-prc-key_makePrcKey.obj', opts=OPTS, input='makePrcKey.cxx') - TargetAdd('make-prc-key.exe', input='make-prc-key_makePrcKey.obj') - TargetAdd('make-prc-key.exe', input=COMMON_DTOOL_LIBS) - TargetAdd('make-prc-key.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER']) +if not PkgSkip("OPENSSL"): + OPTS=['DIR:dtool/src/prckeys', 'OPENSSL'] + TargetAdd('make-prc-key_makePrcKey.obj', opts=OPTS, input='makePrcKey.cxx') + TargetAdd('make-prc-key.exe', input='make-prc-key_makePrcKey.obj') + TargetAdd('make-prc-key.exe', input=COMMON_DTOOL_LIBS) + TargetAdd('make-prc-key.exe', opts=['ADVAPI', 'OPENSSL', 'WINSHELL', 'WINGDI', 'WINUSER']) # # DIRECTORY: dtool/src/test_interrogate/ @@ -3553,7 +3557,7 @@ TargetAdd('libp3linmath.in', opts=['IMOD:panda3d.core', 'ILIB:libp3linmath', 'SR # DIRECTORY: panda/src/putil/ # -OPTS=['DIR:panda/src/putil', 'BUILDING:PANDA', 'ZLIB'] +OPTS=['DIR:panda/src/putil', 'BUILDING:PANDA', 'ZLIB'] TargetAdd('p3putil_composite1.obj', opts=OPTS, input='p3putil_composite1.cxx') TargetAdd('p3putil_composite2.obj', opts=OPTS, input='p3putil_composite2.cxx') @@ -3624,7 +3628,7 @@ TargetAdd('libp3gsgbase.in', opts=['IMOD:panda3d.core', 'ILIB:libp3gsgbase', 'SR # DIRECTORY: panda/src/pnmimage/ # -OPTS=['DIR:panda/src/pnmimage', 'BUILDING:PANDA', 'ZLIB'] +OPTS=['DIR:panda/src/pnmimage', 'BUILDING:PANDA', 'ZLIB'] TargetAdd('p3pnmimage_composite1.obj', opts=OPTS, input='p3pnmimage_composite1.cxx') TargetAdd('p3pnmimage_composite2.obj', opts=OPTS, input='p3pnmimage_composite2.cxx') TargetAdd('p3pnmimage_convert_srgb_sse2.obj', opts=OPTS+['SSE2'], input='convert_srgb_sse2.cxx') @@ -3679,13 +3683,12 @@ TargetAdd('libp3pstatclient.in', opts=['IMOD:panda3d.core', 'ILIB:libp3pstatclie # DIRECTORY: panda/src/gobj/ # -OPTS=['DIR:panda/src/gobj', 'BUILDING:PANDA', 'NVIDIACG', 'ZLIB', 'SQUISH'] +OPTS=['DIR:panda/src/gobj', 'BUILDING:PANDA', 'NVIDIACG', 'ZLIB', 'SQUISH'] TargetAdd('p3gobj_composite1.obj', opts=OPTS, input='p3gobj_composite1.cxx') TargetAdd('p3gobj_composite2.obj', opts=OPTS+['BIGOBJ'], input='p3gobj_composite2.cxx') OPTS=['DIR:panda/src/gobj', 'NVIDIACG', 'ZLIB', 'SQUISH'] IGATEFILES=GetDirectoryContents('panda/src/gobj', ["*.h", "*_composite*.cxx"]) -if ("cgfx_states.h" in IGATEFILES): IGATEFILES.remove("cgfx_states.h") TargetAdd('libp3gobj.in', opts=OPTS, input=IGATEFILES) TargetAdd('libp3gobj.in', opts=['IMOD:panda3d.core', 'ILIB:libp3gobj', 'SRCDIR:panda/src/gobj']) PyTargetAdd('p3gobj_ext_composite.obj', opts=OPTS, input='p3gobj_ext_composite.cxx') @@ -3807,23 +3810,23 @@ TargetAdd('libp3char.in', opts=['IMOD:panda3d.core', 'ILIB:libp3char', 'SRCDIR:p # DIRECTORY: panda/src/pnmtext/ # -if (PkgSkip("FREETYPE")==0): - OPTS=['DIR:panda/src/pnmtext', 'BUILDING:PANDA', 'FREETYPE'] - TargetAdd('p3pnmtext_composite1.obj', opts=OPTS, input='p3pnmtext_composite1.cxx') +if not PkgSkip("FREETYPE"): + OPTS=['DIR:panda/src/pnmtext', 'BUILDING:PANDA', 'FREETYPE'] + TargetAdd('p3pnmtext_composite1.obj', opts=OPTS, input='p3pnmtext_composite1.cxx') - OPTS=['DIR:panda/src/pnmtext', 'FREETYPE'] - IGATEFILES=GetDirectoryContents('panda/src/pnmtext', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3pnmtext.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3pnmtext.in', opts=['IMOD:panda3d.core', 'ILIB:libp3pnmtext', 'SRCDIR:panda/src/pnmtext']) + OPTS=['DIR:panda/src/pnmtext', 'FREETYPE'] + IGATEFILES=GetDirectoryContents('panda/src/pnmtext', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3pnmtext.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3pnmtext.in', opts=['IMOD:panda3d.core', 'ILIB:libp3pnmtext', 'SRCDIR:panda/src/pnmtext']) # # DIRECTORY: panda/src/text/ # if not PkgSkip("HARFBUZZ"): - DefSymbol("HARFBUZZ", "HAVE_HARFBUZZ") + DefSymbol("HARFBUZZ", "HAVE_HARFBUZZ") -OPTS=['DIR:panda/src/text', 'BUILDING:PANDA', 'ZLIB', 'FREETYPE', 'HARFBUZZ'] +OPTS=['DIR:panda/src/text', 'BUILDING:PANDA', 'ZLIB', 'FREETYPE', 'HARFBUZZ'] TargetAdd('p3text_composite1.obj', opts=OPTS, input='p3text_composite1.cxx') TargetAdd('p3text_composite2.obj', opts=OPTS, input='p3text_composite2.cxx') @@ -3855,7 +3858,6 @@ TargetAdd('p3grutil_composite2.obj', opts=OPTS, input='p3grutil_composite2.cxx') OPTS=['DIR:panda/src/grutil'] IGATEFILES=GetDirectoryContents('panda/src/grutil', ["*.h", "*_composite*.cxx"]) -if 'convexHull.h' in IGATEFILES: IGATEFILES.remove('convexHull.h') TargetAdd('libp3grutil.in', opts=OPTS, input=IGATEFILES) TargetAdd('libp3grutil.in', opts=['IMOD:panda3d.core', 'ILIB:libp3grutil', 'SRCDIR:panda/src/grutil']) @@ -4031,7 +4033,7 @@ TargetAdd('libpanda.dll', input='libp3dtoolconfig.dll') TargetAdd('libpanda.dll', input='libp3dtool.dll') if PkgSkip("FREETYPE")==0: - TargetAdd('libpanda.dll', input="p3pnmtext_composite1.obj") + TargetAdd('libpanda.dll', input="p3pnmtext_composite1.obj") TargetAdd('libpanda.dll', dep='dtool_have_freetype.dat') TargetAdd('libpanda.dll', opts=OPTS) @@ -4074,7 +4076,7 @@ PyTargetAdd('core_module.obj', input='libp3movies.in') PyTargetAdd('core_module.obj', input='libp3dxml.in') if PkgSkip("FREETYPE")==0: - PyTargetAdd('core_module.obj', input='libp3pnmtext.in') + PyTargetAdd('core_module.obj', input='libp3pnmtext.in') PyTargetAdd('core_module.obj', opts=['IMOD:panda3d.core', 'ILIB:core']) @@ -4119,7 +4121,7 @@ PyTargetAdd('core.pyd', input='libp3nativenet_igate.obj') PyTargetAdd('core.pyd', input='libp3dxml_igate.obj') if PkgSkip("FREETYPE")==0: - PyTargetAdd('core.pyd', input="libp3pnmtext_igate.obj") + PyTargetAdd('core.pyd', input="libp3pnmtext_igate.obj") PyTargetAdd('core.pyd', input='p3pipeline_pythonThread.obj') PyTargetAdd('core.pyd', input='p3putil_ext_composite.obj') @@ -4133,7 +4135,7 @@ PyTargetAdd('core.pyd', input='p3collide_ext_composite.obj') PyTargetAdd('core.pyd', input='core_module.obj') if not GetLinkAllStatic() and GetTarget() != 'emscripten': - PyTargetAdd('core.pyd', input='libp3tinyxml.ilb') + PyTargetAdd('core.pyd', input='libp3tinyxml.ilb') PyTargetAdd('core.pyd', input='libp3interrogatedb.dll') PyTargetAdd('core.pyd', input=COMMON_PANDA_LIBS) PyTargetAdd('core.pyd', opts=['WINSOCK2']) @@ -4142,275 +4144,274 @@ PyTargetAdd('core.pyd', opts=['WINSOCK2']) # DIRECTORY: panda/src/vision/ # -if (PkgSkip("VISION") == 0): +if not PkgSkip("VISION"): # 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") + 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'] - TargetAdd('p3vision_composite1.obj', opts=OPTS, input='p3vision_composite1.cxx', dep=[ - 'dtool_have_ffmpeg.dat', - 'dtool_have_opencv.dat', - 'dtool_have_directcam.dat', - ]) + OPTS=['DIR:panda/src/vision', 'BUILDING:VISION', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG', 'EXCEPTIONS'] + 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=COMMON_PANDA_LIBS) - TargetAdd('libp3vision.dll', opts=OPTS) + TargetAdd('libp3vision.dll', input='p3vision_composite1.obj') + TargetAdd('libp3vision.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3vision.dll', opts=OPTS) - OPTS=['DIR:panda/src/vision', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG', 'EXCEPTIONS'] - IGATEFILES=GetDirectoryContents('panda/src/vision', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3vision.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3vision.in', opts=['IMOD:panda3d.vision', 'ILIB:libp3vision', 'SRCDIR:panda/src/vision']) + OPTS=['DIR:panda/src/vision', 'ARTOOLKIT', 'OPENCV', 'DX9', 'DIRECTCAM', 'JPEG', 'EXCEPTIONS'] + IGATEFILES=GetDirectoryContents('panda/src/vision', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3vision.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3vision.in', opts=['IMOD:panda3d.vision', 'ILIB:libp3vision', 'SRCDIR:panda/src/vision']) + PyTargetAdd('vision_module.obj', input='libp3vision.in') + PyTargetAdd('vision_module.obj', opts=OPTS) + PyTargetAdd('vision_module.obj', opts=['IMOD:panda3d.vision', 'ILIB:vision', 'IMPORT:panda3d.core']) - PyTargetAdd('vision_module.obj', input='libp3vision.in') - PyTargetAdd('vision_module.obj', opts=OPTS) - PyTargetAdd('vision_module.obj', opts=['IMOD:panda3d.vision', 'ILIB:vision', 'IMPORT:panda3d.core']) - - PyTargetAdd('vision.pyd', input='vision_module.obj') - PyTargetAdd('vision.pyd', input='libp3vision_igate.obj') - PyTargetAdd('vision.pyd', input='libp3vision.dll') - PyTargetAdd('vision.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('vision.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('vision.pyd', input='vision_module.obj') + PyTargetAdd('vision.pyd', input='libp3vision_igate.obj') + PyTargetAdd('vision.pyd', input='libp3vision.dll') + PyTargetAdd('vision.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('vision.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: panda/src/p3skel # -if (PkgSkip('SKEL')==0): - OPTS=['DIR:panda/src/skel', 'BUILDING:PANDASKEL', 'ADVAPI'] - TargetAdd('p3skel_composite1.obj', opts=OPTS, input='p3skel_composite1.cxx') +if not PkgSkip('SKEL'): + OPTS=['DIR:panda/src/skel', 'BUILDING:PANDASKEL', 'ADVAPI'] + TargetAdd('p3skel_composite1.obj', opts=OPTS, input='p3skel_composite1.cxx') - OPTS=['DIR:panda/src/skel', 'ADVAPI'] - IGATEFILES=GetDirectoryContents("panda/src/skel", ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3skel.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3skel.in', opts=['IMOD:panda3d.skel', 'ILIB:libp3skel', 'SRCDIR:panda/src/skel']) + OPTS=['DIR:panda/src/skel', 'ADVAPI'] + IGATEFILES=GetDirectoryContents("panda/src/skel", ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3skel.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3skel.in', opts=['IMOD:panda3d.skel', 'ILIB:libp3skel', 'SRCDIR:panda/src/skel']) # # DIRECTORY: panda/src/p3skel # -if (PkgSkip('SKEL')==0): - OPTS=['BUILDING:PANDASKEL', 'ADVAPI'] - TargetAdd('libpandaskel.dll', input='p3skel_composite1.obj') - TargetAdd('libpandaskel.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandaskel.dll', opts=OPTS) +if not PkgSkip('SKEL'): + OPTS=['BUILDING:PANDASKEL', 'ADVAPI'] + TargetAdd('libpandaskel.dll', input='p3skel_composite1.obj') + TargetAdd('libpandaskel.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandaskel.dll', opts=OPTS) - PyTargetAdd('skel_module.obj', input='libp3skel.in') - PyTargetAdd('skel_module.obj', opts=['IMOD:panda3d.skel', 'ILIB:skel', 'IMPORT:panda3d.core']) + PyTargetAdd('skel_module.obj', input='libp3skel.in') + PyTargetAdd('skel_module.obj', opts=['IMOD:panda3d.skel', 'ILIB:skel', 'IMPORT:panda3d.core']) - PyTargetAdd('skel.pyd', input='skel_module.obj') - PyTargetAdd('skel.pyd', input='libp3skel_igate.obj') - PyTargetAdd('skel.pyd', input='libpandaskel.dll') - PyTargetAdd('skel.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('skel.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('skel.pyd', input='skel_module.obj') + PyTargetAdd('skel.pyd', input='libp3skel_igate.obj') + PyTargetAdd('skel.pyd', input='libpandaskel.dll') + PyTargetAdd('skel.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('skel.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: panda/src/distort/ # -if (PkgSkip('PANDAFX')==0): - OPTS=['DIR:panda/src/distort', 'BUILDING:PANDAFX'] - TargetAdd('p3distort_composite1.obj', opts=OPTS, input='p3distort_composite1.cxx') +if not PkgSkip('PANDAFX'): + OPTS=['DIR:panda/src/distort', 'BUILDING:PANDAFX'] + TargetAdd('p3distort_composite1.obj', opts=OPTS, input='p3distort_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'NVIDIACG'] - IGATEFILES=GetDirectoryContents('panda/src/distort', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3distort.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3distort.in', opts=['IMOD:panda3d.fx', 'ILIB:libp3distort', 'SRCDIR:panda/src/distort']) + OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'NVIDIACG'] + IGATEFILES=GetDirectoryContents('panda/src/distort', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3distort.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3distort.in', opts=['IMOD:panda3d.fx', 'ILIB:libp3distort', 'SRCDIR:panda/src/distort']) # # DIRECTORY: panda/metalibs/pandafx/ # -if (PkgSkip('PANDAFX')==0): - OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'BUILDING:PANDAFX', 'NVIDIACG'] - TargetAdd('pandafx_pandafx.obj', opts=OPTS, input='pandafx.cxx') +if not PkgSkip('PANDAFX'): + OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'BUILDING:PANDAFX', 'NVIDIACG'] + TargetAdd('pandafx_pandafx.obj', opts=OPTS, input='pandafx.cxx') - TargetAdd('libpandafx.dll', input='pandafx_pandafx.obj') - TargetAdd('libpandafx.dll', input='p3distort_composite1.obj') - TargetAdd('libpandafx.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandafx.dll', opts=['ADVAPI', 'NVIDIACG']) + TargetAdd('libpandafx.dll', input='pandafx_pandafx.obj') + TargetAdd('libpandafx.dll', input='p3distort_composite1.obj') + TargetAdd('libpandafx.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandafx.dll', opts=['ADVAPI', 'NVIDIACG']) - OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'NVIDIACG'] - PyTargetAdd('fx_module.obj', input='libp3distort.in') - PyTargetAdd('fx_module.obj', opts=OPTS) - PyTargetAdd('fx_module.obj', opts=['IMOD:panda3d.fx', 'ILIB:fx', 'IMPORT:panda3d.core']) + OPTS=['DIR:panda/metalibs/pandafx', 'DIR:panda/src/distort', 'NVIDIACG'] + PyTargetAdd('fx_module.obj', input='libp3distort.in') + PyTargetAdd('fx_module.obj', opts=OPTS) + PyTargetAdd('fx_module.obj', opts=['IMOD:panda3d.fx', 'ILIB:fx', 'IMPORT:panda3d.core']) - PyTargetAdd('fx.pyd', input='fx_module.obj') - PyTargetAdd('fx.pyd', input='libp3distort_igate.obj') - PyTargetAdd('fx.pyd', input='libpandafx.dll') - PyTargetAdd('fx.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('fx.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('fx.pyd', input='fx_module.obj') + PyTargetAdd('fx.pyd', input='libp3distort_igate.obj') + PyTargetAdd('fx.pyd', input='libpandafx.dll') + PyTargetAdd('fx.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('fx.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: panda/src/vrpn/ # -if (PkgSkip("VRPN")==0): - OPTS=['DIR:panda/src/vrpn', 'BUILDING:VRPN', 'VRPN'] - TargetAdd('p3vrpn_composite1.obj', opts=OPTS, input='p3vrpn_composite1.cxx') - TargetAdd('libp3vrpn.dll', input='p3vrpn_composite1.obj') - TargetAdd('libp3vrpn.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3vrpn.dll', opts=['VRPN']) +if not PkgSkip("VRPN"): + OPTS=['DIR:panda/src/vrpn', 'BUILDING:VRPN', 'VRPN'] + TargetAdd('p3vrpn_composite1.obj', opts=OPTS, input='p3vrpn_composite1.cxx') + TargetAdd('libp3vrpn.dll', input='p3vrpn_composite1.obj') + TargetAdd('libp3vrpn.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3vrpn.dll', opts=['VRPN']) - OPTS=['DIR:panda/src/vrpn', 'VRPN'] - IGATEFILES=GetDirectoryContents('panda/src/vrpn', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3vrpn.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3vrpn.in', opts=['IMOD:panda3d.vrpn', 'ILIB:libp3vrpn', 'SRCDIR:panda/src/vrpn']) + OPTS=['DIR:panda/src/vrpn', 'VRPN'] + IGATEFILES=GetDirectoryContents('panda/src/vrpn', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3vrpn.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3vrpn.in', opts=['IMOD:panda3d.vrpn', 'ILIB:libp3vrpn', 'SRCDIR:panda/src/vrpn']) + PyTargetAdd('vrpn_module.obj', input='libp3vrpn.in') + PyTargetAdd('vrpn_module.obj', opts=OPTS) + PyTargetAdd('vrpn_module.obj', opts=['IMOD:panda3d.vrpn', 'ILIB:vrpn', 'IMPORT:panda3d.core']) - PyTargetAdd('vrpn_module.obj', input='libp3vrpn.in') - PyTargetAdd('vrpn_module.obj', opts=OPTS) - PyTargetAdd('vrpn_module.obj', opts=['IMOD:panda3d.vrpn', 'ILIB:vrpn', 'IMPORT:panda3d.core']) - - PyTargetAdd('vrpn.pyd', input='vrpn_module.obj') - PyTargetAdd('vrpn.pyd', input='libp3vrpn_igate.obj') - PyTargetAdd('vrpn.pyd', input='libp3vrpn.dll') - PyTargetAdd('vrpn.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('vrpn.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('vrpn.pyd', input='vrpn_module.obj') + PyTargetAdd('vrpn.pyd', input='libp3vrpn_igate.obj') + PyTargetAdd('vrpn.pyd', input='libp3vrpn.dll') + PyTargetAdd('vrpn.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('vrpn.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: panda/src/ffmpeg # if PkgSkip("FFMPEG") == 0: - if not PkgSkip("SWSCALE"): - DefSymbol("FFMPEG", "HAVE_SWSCALE") - if not PkgSkip("SWRESAMPLE"): - DefSymbol("FFMPEG", "HAVE_SWRESAMPLE") + 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'] - TargetAdd('p3ffmpeg_composite1.obj', opts=OPTS, input='p3ffmpeg_composite1.cxx', dep=[ - 'dtool_have_swscale.dat', 'dtool_have_swresample.dat']) + OPTS=['DIR:panda/src/ffmpeg', 'BUILDING:FFMPEG', 'FFMPEG', 'SWSCALE', 'SWRESAMPLE'] + 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=COMMON_PANDA_LIBS) - TargetAdd('libp3ffmpeg.dll', opts=OPTS) + TargetAdd('libp3ffmpeg.dll', input='p3ffmpeg_composite1.obj') + TargetAdd('libp3ffmpeg.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3ffmpeg.dll', opts=OPTS) # # DIRECTORY: panda/src/audiotraits/ # if PkgSkip("FMODEX") == 0: - OPTS=['DIR:panda/src/audiotraits', 'BUILDING:FMOD_AUDIO', 'FMODEX'] - TargetAdd('fmod_audio_fmod_audio_composite1.obj', opts=OPTS, input='fmod_audio_composite1.cxx') - TargetAdd('libp3fmod_audio.dll', input='fmod_audio_fmod_audio_composite1.obj') - TargetAdd('libp3fmod_audio.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3fmod_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'FMODEX']) + OPTS=['DIR:panda/src/audiotraits', 'BUILDING:FMOD_AUDIO', 'FMODEX'] + TargetAdd('fmod_audio_fmod_audio_composite1.obj', opts=OPTS, input='fmod_audio_composite1.cxx') + TargetAdd('libp3fmod_audio.dll', input='fmod_audio_fmod_audio_composite1.obj') + TargetAdd('libp3fmod_audio.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3fmod_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'FMODEX']) if PkgSkip("OPENAL") == 0: - OPTS=['DIR:panda/src/audiotraits', 'BUILDING:OPENAL_AUDIO', 'OPENAL'] - TargetAdd('openal_audio_openal_audio_composite1.obj', opts=OPTS, input='openal_audio_composite1.cxx') - TargetAdd('libp3openal_audio.dll', input='openal_audio_openal_audio_composite1.obj') - TargetAdd('libp3openal_audio.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3openal_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'WINSHELL', 'WINOLE', 'OPENAL']) + OPTS=['DIR:panda/src/audiotraits', 'BUILDING:OPENAL_AUDIO', 'OPENAL'] + TargetAdd('openal_audio_openal_audio_composite1.obj', opts=OPTS, input='openal_audio_composite1.cxx') + TargetAdd('libp3openal_audio.dll', input='openal_audio_openal_audio_composite1.obj') + TargetAdd('libp3openal_audio.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3openal_audio.dll', opts=['MODULE', 'ADVAPI', 'WINUSER', 'WINMM', 'WINSHELL', 'WINOLE', 'OPENAL']) # # DIRECTORY: panda/src/downloadertools/ # -if (PkgSkip("OPENSSL")==0 and PkgSkip("DEPLOYTOOLS")==0): - OPTS=['DIR:panda/src/downloadertools', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER'] +if not PkgSkip("OPENSSL") and not PkgSkip("DEPLOYTOOLS"): + OPTS=['DIR:panda/src/downloadertools', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER'] - TargetAdd('pdecrypt_pdecrypt.obj', opts=OPTS, input='pdecrypt.cxx') - TargetAdd('pdecrypt.exe', input=['pdecrypt_pdecrypt.obj']) - TargetAdd('pdecrypt.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pdecrypt.exe', opts=OPTS) + TargetAdd('pdecrypt_pdecrypt.obj', opts=OPTS, input='pdecrypt.cxx') + TargetAdd('pdecrypt.exe', input=['pdecrypt_pdecrypt.obj']) + TargetAdd('pdecrypt.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pdecrypt.exe', opts=OPTS) - TargetAdd('pencrypt_pencrypt.obj', opts=OPTS, input='pencrypt.cxx') - TargetAdd('pencrypt.exe', input=['pencrypt_pencrypt.obj']) - TargetAdd('pencrypt.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pencrypt.exe', opts=OPTS) + TargetAdd('pencrypt_pencrypt.obj', opts=OPTS, input='pencrypt.cxx') + TargetAdd('pencrypt.exe', input=['pencrypt_pencrypt.obj']) + TargetAdd('pencrypt.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pencrypt.exe', opts=OPTS) # # DIRECTORY: panda/src/downloadertools/ # -if (PkgSkip("ZLIB")==0 and PkgSkip("DEPLOYTOOLS")==0): - OPTS=['DIR:panda/src/downloadertools', 'ZLIB', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER'] +if not PkgSkip("ZLIB") and not PkgSkip("DEPLOYTOOLS"): + OPTS=['DIR:panda/src/downloadertools', 'ZLIB', 'ADVAPI', 'WINSOCK2', 'WINSHELL', 'WINGDI', 'WINUSER'] - TargetAdd('multify_multify.obj', opts=OPTS, input='multify.cxx') - TargetAdd('multify.exe', input=['multify_multify.obj']) - TargetAdd('multify.exe', input=COMMON_PANDA_LIBS) - TargetAdd('multify.exe', opts=OPTS) + TargetAdd('multify_multify.obj', opts=OPTS, input='multify.cxx') + TargetAdd('multify.exe', input=['multify_multify.obj']) + TargetAdd('multify.exe', input=COMMON_PANDA_LIBS) + TargetAdd('multify.exe', opts=OPTS) - TargetAdd('pzip_pzip.obj', opts=OPTS, input='pzip.cxx') - TargetAdd('pzip.exe', input=['pzip_pzip.obj']) - TargetAdd('pzip.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pzip.exe', opts=OPTS) + TargetAdd('pzip_pzip.obj', opts=OPTS, input='pzip.cxx') + TargetAdd('pzip.exe', input=['pzip_pzip.obj']) + TargetAdd('pzip.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pzip.exe', opts=OPTS) - TargetAdd('punzip_punzip.obj', opts=OPTS, input='punzip.cxx') - TargetAdd('punzip.exe', input=['punzip_punzip.obj']) - TargetAdd('punzip.exe', input=COMMON_PANDA_LIBS) - TargetAdd('punzip.exe', opts=OPTS) + TargetAdd('punzip_punzip.obj', opts=OPTS, input='punzip.cxx') + TargetAdd('punzip.exe', input=['punzip_punzip.obj']) + TargetAdd('punzip.exe', input=COMMON_PANDA_LIBS) + TargetAdd('punzip.exe', opts=OPTS) # # DIRECTORY: panda/src/windisplay/ # -if (GetTarget() == 'windows'): - OPTS=['DIR:panda/src/windisplay', 'BUILDING:PANDAWIN'] - TargetAdd('p3windisplay_composite1.obj', opts=OPTS+["BIGOBJ"], input='p3windisplay_composite1.cxx') - TargetAdd('p3windisplay_windetectdx9.obj', opts=OPTS + ["DX9"], input='winDetectDx9.cxx') - TargetAdd('libp3windisplay.dll', input='p3windisplay_composite1.obj') - TargetAdd('libp3windisplay.dll', input='p3windisplay_windetectdx9.obj') - TargetAdd('libp3windisplay.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3windisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM',"BIGOBJ"]) +if GetTarget() == 'windows': + OPTS=['DIR:panda/src/windisplay', 'BUILDING:PANDAWIN'] + TargetAdd('p3windisplay_composite1.obj', opts=OPTS+["BIGOBJ"], input='p3windisplay_composite1.cxx') + TargetAdd('p3windisplay_windetectdx9.obj', opts=OPTS + ["DX9"], input='winDetectDx9.cxx') + TargetAdd('libp3windisplay.dll', input='p3windisplay_composite1.obj') + TargetAdd('libp3windisplay.dll', input='p3windisplay_windetectdx9.obj') + TargetAdd('libp3windisplay.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3windisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM',"BIGOBJ"]) # # DIRECTORY: panda/metalibs/pandadx9/ # -if GetTarget() == 'windows' and PkgSkip("DX9")==0: - OPTS=['DIR:panda/src/dxgsg9', 'BUILDING:PANDADX', 'DX9', 'NVIDIACG', 'CGDX9'] - TargetAdd('p3dxgsg9_dxGraphicsStateGuardian9.obj', opts=OPTS, input='dxGraphicsStateGuardian9.cxx') - TargetAdd('p3dxgsg9_composite1.obj', opts=OPTS, input='p3dxgsg9_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandadx9', 'BUILDING:PANDADX', 'DX9', 'NVIDIACG', 'CGDX9'] - TargetAdd('pandadx9_pandadx9.obj', opts=OPTS, input='pandadx9.cxx') - TargetAdd('libpandadx9.dll', input='pandadx9_pandadx9.obj') - TargetAdd('libpandadx9.dll', input='p3dxgsg9_dxGraphicsStateGuardian9.obj') - TargetAdd('libpandadx9.dll', input='p3dxgsg9_composite1.obj') - TargetAdd('libpandadx9.dll', input='libp3windisplay.dll') - TargetAdd('libpandadx9.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandadx9.dll', opts=['MODULE', 'ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DX9', 'NVIDIACG', 'CGDX9']) +if GetTarget() == 'windows' and not PkgSkip("DX9"): + OPTS=['DIR:panda/src/dxgsg9', 'BUILDING:PANDADX', 'DX9', 'NVIDIACG', 'CGDX9'] + TargetAdd('p3dxgsg9_dxGraphicsStateGuardian9.obj', opts=OPTS, input='dxGraphicsStateGuardian9.cxx') + TargetAdd('p3dxgsg9_composite1.obj', opts=OPTS, input='p3dxgsg9_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandadx9', 'BUILDING:PANDADX', 'DX9', 'NVIDIACG', 'CGDX9'] + TargetAdd('pandadx9_pandadx9.obj', opts=OPTS, input='pandadx9.cxx') + TargetAdd('libpandadx9.dll', input='pandadx9_pandadx9.obj') + TargetAdd('libpandadx9.dll', input='p3dxgsg9_dxGraphicsStateGuardian9.obj') + TargetAdd('libpandadx9.dll', input='p3dxgsg9_composite1.obj') + TargetAdd('libpandadx9.dll', input='libp3windisplay.dll') + TargetAdd('libpandadx9.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandadx9.dll', opts=['MODULE', 'ADVAPI', 'WINGDI', 'WINKERNEL', 'WINUSER', 'WINMM', 'DX9', 'NVIDIACG', 'CGDX9']) # # DIRECTORY: panda/src/egg/ # if not PkgSkip("EGG"): - OPTS=['DIR:panda/src/egg', 'BUILDING:PANDAEGG', 'ZLIB', 'BISONPREFIX_eggyy', 'FLEXDASHI'] - CreateFile(GetOutputDir()+"/include/parser.h") - TargetAdd('p3egg_parser.obj', opts=OPTS, input='parser.yxx') - TargetAdd('parser.h', input='p3egg_parser.obj', opts=['DEPENDENCYONLY']) - TargetAdd('p3egg_lexer.obj', opts=OPTS, input='lexer.lxx') - TargetAdd('p3egg_composite1.obj', opts=OPTS, input='p3egg_composite1.cxx') - TargetAdd('p3egg_composite2.obj', opts=OPTS, input='p3egg_composite2.cxx') + OPTS=['DIR:panda/src/egg', 'BUILDING:PANDAEGG', 'ZLIB', 'BISONPREFIX_eggyy', 'FLEXDASHI'] + CreateFile(GetOutputDir()+"/include/parser.h") + TargetAdd('p3egg_parser.obj', opts=OPTS, input='parser.yxx') + TargetAdd('parser.h', input='p3egg_parser.obj', opts=['DEPENDENCYONLY']) + TargetAdd('p3egg_lexer.obj', opts=OPTS, input='lexer.lxx') + TargetAdd('p3egg_composite1.obj', opts=OPTS, input='p3egg_composite1.cxx') + TargetAdd('p3egg_composite2.obj', opts=OPTS, input='p3egg_composite2.cxx') - OPTS=['DIR:panda/src/egg', 'ZLIB'] - IGATEFILES=GetDirectoryContents('panda/src/egg', ["*.h", "*_composite*.cxx"]) - if "parser.h" in IGATEFILES: IGATEFILES.remove("parser.h") - TargetAdd('libp3egg.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3egg.in', opts=['IMOD:panda3d.egg', 'ILIB:libp3egg', 'SRCDIR:panda/src/egg']) - PyTargetAdd('p3egg_eggGroupNode_ext.obj', opts=OPTS, input='eggGroupNode_ext.cxx') + OPTS=['DIR:panda/src/egg', 'ZLIB'] + IGATEFILES=GetDirectoryContents('panda/src/egg', ["*.h", "*_composite*.cxx"]) + if "parser.h" in IGATEFILES: + IGATEFILES.remove("parser.h") + TargetAdd('libp3egg.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3egg.in', opts=['IMOD:panda3d.egg', 'ILIB:libp3egg', 'SRCDIR:panda/src/egg']) + PyTargetAdd('p3egg_eggGroupNode_ext.obj', opts=OPTS, input='eggGroupNode_ext.cxx') # # DIRECTORY: panda/src/egg2pg/ # if not PkgSkip("EGG"): - OPTS=['DIR:panda/src/egg2pg', 'BUILDING:PANDAEGG'] - TargetAdd('p3egg2pg_composite1.obj', opts=OPTS, input='p3egg2pg_composite1.cxx') - TargetAdd('p3egg2pg_composite2.obj', opts=OPTS, input='p3egg2pg_composite2.cxx') + OPTS=['DIR:panda/src/egg2pg', 'BUILDING:PANDAEGG'] + TargetAdd('p3egg2pg_composite1.obj', opts=OPTS, input='p3egg2pg_composite1.cxx') + TargetAdd('p3egg2pg_composite2.obj', opts=OPTS, input='p3egg2pg_composite2.cxx') - OPTS=['DIR:panda/src/egg2pg'] - IGATEFILES=['load_egg_file.h', 'save_egg_file.h'] - TargetAdd('libp3egg2pg.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3egg2pg.in', opts=['IMOD:panda3d.egg', 'ILIB:libp3egg2pg', 'SRCDIR:panda/src/egg2pg']) + OPTS=['DIR:panda/src/egg2pg'] + IGATEFILES=['load_egg_file.h', 'save_egg_file.h'] + TargetAdd('libp3egg2pg.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3egg2pg.in', opts=['IMOD:panda3d.egg', 'ILIB:libp3egg2pg', 'SRCDIR:panda/src/egg2pg']) # # DIRECTORY: panda/src/framework/ @@ -4419,13 +4420,13 @@ if not PkgSkip("EGG"): deps = [] # Framework wants to link in a renderer when building statically, so tell it what is available. if GetLinkAllStatic(): - deps = ['dtool_have_gl.dat', 'dtool_have_tinydisplay.dat', 'dtool_have_egg.dat'] - if not PkgSkip("GL"): - DefSymbol("FRAMEWORK", "HAVE_GL") - if not PkgSkip("TINYDISPLAY"): - DefSymbol("FRAMEWORK", "HAVE_TINYDISPLAY") - if not PkgSkip("EGG"): - DefSymbol("FRAMEWORK", "HAVE_EGG") + deps = ['dtool_have_gl.dat', 'dtool_have_tinydisplay.dat', 'dtool_have_egg.dat'] + if not PkgSkip("GL"): + DefSymbol("FRAMEWORK", "HAVE_GL") + if not PkgSkip("TINYDISPLAY"): + DefSymbol("FRAMEWORK", "HAVE_TINYDISPLAY") + if not PkgSkip("EGG"): + DefSymbol("FRAMEWORK", "HAVE_EGG") OPTS=['DIR:panda/src/framework', 'BUILDING:FRAMEWORK', 'FRAMEWORK'] TargetAdd('p3framework_composite1.obj', opts=OPTS, input='p3framework_composite1.cxx', dep=deps) @@ -4437,122 +4438,122 @@ TargetAdd('libp3framework.dll', opts=['ADVAPI']) # DIRECTORY: panda/src/glgsg/ # -if (PkgSkip("GL")==0): - OPTS=['DIR:panda/src/glgsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG'] - TargetAdd('p3glgsg_config_glgsg.obj', opts=OPTS, input='config_glgsg.cxx') - TargetAdd('p3glgsg_glgsg.obj', opts=OPTS, input='glgsg.cxx') +if not PkgSkip("GL"): + OPTS=['DIR:panda/src/glgsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG'] + TargetAdd('p3glgsg_config_glgsg.obj', opts=OPTS, input='config_glgsg.cxx') + TargetAdd('p3glgsg_glgsg.obj', opts=OPTS, input='glgsg.cxx') # # DIRECTORY: panda/src/glesgsg/ # -if (PkgSkip("GLES")==0): - OPTS=['DIR:panda/src/glesgsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES'] - TargetAdd('p3glesgsg_config_glesgsg.obj', opts=OPTS, input='config_glesgsg.cxx') - TargetAdd('p3glesgsg_glesgsg.obj', opts=OPTS, input='glesgsg.cxx') +if not PkgSkip("GLES"): + OPTS=['DIR:panda/src/glesgsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES'] + TargetAdd('p3glesgsg_config_glesgsg.obj', opts=OPTS, input='config_glesgsg.cxx') + TargetAdd('p3glesgsg_glesgsg.obj', opts=OPTS, input='glesgsg.cxx') # # DIRECTORY: panda/src/gles2gsg/ # -if (PkgSkip("GLES2")==0): - OPTS=['DIR:panda/src/gles2gsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2'] - TargetAdd('p3gles2gsg_config_gles2gsg.obj', opts=OPTS, input='config_gles2gsg.cxx') - TargetAdd('p3gles2gsg_gles2gsg.obj', opts=OPTS, input='gles2gsg.cxx') +if not PkgSkip("GLES2"): + OPTS=['DIR:panda/src/gles2gsg', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2'] + TargetAdd('p3gles2gsg_config_gles2gsg.obj', opts=OPTS, input='config_gles2gsg.cxx') + TargetAdd('p3gles2gsg_gles2gsg.obj', opts=OPTS, input='gles2gsg.cxx') # # DIRECTORY: panda/metalibs/pandaegg/ # if not PkgSkip("EGG"): - OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg', 'BUILDING:PANDAEGG'] - TargetAdd('pandaegg_pandaegg.obj', opts=OPTS, input='pandaegg.cxx') + OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg', 'BUILDING:PANDAEGG'] + TargetAdd('pandaegg_pandaegg.obj', opts=OPTS, input='pandaegg.cxx') - TargetAdd('libpandaegg.dll', input='pandaegg_pandaegg.obj') - TargetAdd('libpandaegg.dll', input='p3egg2pg_composite1.obj') - TargetAdd('libpandaegg.dll', input='p3egg2pg_composite2.obj') - TargetAdd('libpandaegg.dll', input='p3egg_composite1.obj') - TargetAdd('libpandaegg.dll', input='p3egg_composite2.obj') - TargetAdd('libpandaegg.dll', input='p3egg_parser.obj') - TargetAdd('libpandaegg.dll', input='p3egg_lexer.obj') - TargetAdd('libpandaegg.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandaegg.dll', opts=['ADVAPI']) + TargetAdd('libpandaegg.dll', input='pandaegg_pandaegg.obj') + TargetAdd('libpandaegg.dll', input='p3egg2pg_composite1.obj') + TargetAdd('libpandaegg.dll', input='p3egg2pg_composite2.obj') + TargetAdd('libpandaegg.dll', input='p3egg_composite1.obj') + TargetAdd('libpandaegg.dll', input='p3egg_composite2.obj') + TargetAdd('libpandaegg.dll', input='p3egg_parser.obj') + TargetAdd('libpandaegg.dll', input='p3egg_lexer.obj') + TargetAdd('libpandaegg.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandaegg.dll', opts=['ADVAPI']) - OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg'] - PyTargetAdd('egg_module.obj', input='libp3egg2pg.in') - PyTargetAdd('egg_module.obj', input='libp3egg.in') - PyTargetAdd('egg_module.obj', opts=OPTS) - PyTargetAdd('egg_module.obj', opts=['IMOD:panda3d.egg', 'ILIB:egg', 'IMPORT:panda3d.core']) + OPTS=['DIR:panda/metalibs/pandaegg', 'DIR:panda/src/egg'] + PyTargetAdd('egg_module.obj', input='libp3egg2pg.in') + PyTargetAdd('egg_module.obj', input='libp3egg.in') + PyTargetAdd('egg_module.obj', opts=OPTS) + PyTargetAdd('egg_module.obj', opts=['IMOD:panda3d.egg', 'ILIB:egg', 'IMPORT:panda3d.core']) - PyTargetAdd('egg.pyd', input='egg_module.obj') - PyTargetAdd('egg.pyd', input='p3egg_eggGroupNode_ext.obj') - PyTargetAdd('egg.pyd', input='libp3egg_igate.obj') - PyTargetAdd('egg.pyd', input='libp3egg2pg_igate.obj') - PyTargetAdd('egg.pyd', input='libpandaegg.dll') - PyTargetAdd('egg.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('egg.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('egg.pyd', input='egg_module.obj') + PyTargetAdd('egg.pyd', input='p3egg_eggGroupNode_ext.obj') + PyTargetAdd('egg.pyd', input='libp3egg_igate.obj') + PyTargetAdd('egg.pyd', input='libp3egg2pg_igate.obj') + PyTargetAdd('egg.pyd', input='libpandaegg.dll') + PyTargetAdd('egg.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('egg.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: panda/src/x11display/ # -if (GetTarget() not in ['windows', 'darwin'] and PkgSkip("X11")==0): - OPTS=['DIR:panda/src/x11display', 'BUILDING:PANDAX11', 'X11'] - TargetAdd('p3x11display_composite1.obj', opts=OPTS, input='p3x11display_composite1.cxx') +if GetTarget() not in ['windows', 'darwin'] and not PkgSkip("X11"): + OPTS=['DIR:panda/src/x11display', 'BUILDING:PANDAX11', 'X11'] + TargetAdd('p3x11display_composite1.obj', opts=OPTS, input='p3x11display_composite1.cxx') # # DIRECTORY: panda/src/glxdisplay/ # -if (GetTarget() not in ['windows', 'darwin'] and PkgSkip("GL")==0 and PkgSkip("X11")==0): - OPTS=['DIR:panda/src/glxdisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] - TargetAdd('p3glxdisplay_composite1.obj', opts=OPTS, input='p3glxdisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] - TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') - TargetAdd('libpandagl.dll', input='p3x11display_composite1.obj') - TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3glxdisplay_composite1.obj') - TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'X11']) +if GetTarget() not in ['windows', 'darwin'] and not PkgSkip("GL") and not PkgSkip("X11"): + OPTS=['DIR:panda/src/glxdisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] + TargetAdd('p3glxdisplay_composite1.obj', opts=OPTS, input='p3glxdisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] + TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') + TargetAdd('libpandagl.dll', input='p3x11display_composite1.obj') + TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3glxdisplay_composite1.obj') + TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'X11']) # # DIRECTORY: panda/src/cocoadisplay/ # -if (GetTarget() == 'darwin' and PkgSkip("COCOA")==0 and PkgSkip("GL")==0): - OPTS=['DIR:panda/src/cocoadisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] - TargetAdd('p3cocoadisplay_composite1.obj', opts=OPTS, input='p3cocoadisplay_composite1.mm') - OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] - TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') - TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3cocoadisplay_composite1.obj') - if (PkgSkip('PANDAFX')==0): - TargetAdd('libpandagl.dll', input='libpandafx.dll') - TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'COCOA', 'CARBON', 'QUARTZ']) +if GetTarget() == 'darwin' and PkgSkip("COCOA")==0 and not PkgSkip("GL"): + OPTS=['DIR:panda/src/cocoadisplay', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] + TargetAdd('p3cocoadisplay_composite1.obj', opts=OPTS, input='p3cocoadisplay_composite1.mm') + OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'NVIDIACG', 'CGGL'] + TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') + TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3cocoadisplay_composite1.obj') + if not PkgSkip('PANDAFX'): + TargetAdd('libpandagl.dll', input='libpandafx.dll') + TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'NVIDIACG', 'CGGL', 'COCOA', 'CARBON', 'QUARTZ']) # # DIRECTORY: panda/src/wgldisplay/ # -if (GetTarget() == 'windows' and PkgSkip("GL")==0): - OPTS=['DIR:panda/src/wgldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'NVIDIACG', 'CGGL'] - TargetAdd('p3wgldisplay_composite1.obj', opts=OPTS, input='p3wgldisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'NVIDIACG', 'CGGL'] - TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') - TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3wgldisplay_composite1.obj') - TargetAdd('libpandagl.dll', input='libp3windisplay.dll') - if (PkgSkip('PANDAFX')==0): - TargetAdd('libpandagl.dll', input='libpandafx.dll') - TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagl.dll', opts=['MODULE', 'WINGDI', 'GL', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NVIDIACG', 'CGGL']) +if GetTarget() == 'windows' and not PkgSkip("GL"): + OPTS=['DIR:panda/src/wgldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'NVIDIACG', 'CGGL'] + TargetAdd('p3wgldisplay_composite1.obj', opts=OPTS, input='p3wgldisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'NVIDIACG', 'CGGL'] + TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') + TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3wgldisplay_composite1.obj') + TargetAdd('libpandagl.dll', input='libp3windisplay.dll') + if not PkgSkip('PANDAFX'): + TargetAdd('libpandagl.dll', input='libpandafx.dll') + TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagl.dll', opts=['MODULE', 'WINGDI', 'GL', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM', 'NVIDIACG', 'CGGL']) # # DIRECTORY: panda/src/egldisplay/ @@ -4561,955 +4562,959 @@ if (GetTarget() == 'windows' and PkgSkip("GL")==0): # If we're not compiling with any windowing system at all, but we do have EGL, # we can use that to create a headless libpandagl instead. if not PkgSkip("EGL") and not PkgSkip("GL") and PkgSkip("X11") and GetTarget() not in ('windows', 'darwin'): - DefSymbol('EGL', 'HAVE_EGL', '') - OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'GL', 'EGL'] - TargetAdd('pandagl_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'EGL'] - TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') - TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') - TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') - TargetAdd('libpandagl.dll', input='pandagl_egldisplay_composite1.obj') - TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'EGL', 'CGGL']) + DefSymbol('EGL', 'HAVE_EGL', '') + OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGL', 'GL', 'EGL'] + TargetAdd('pandagl_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagl', 'BUILDING:PANDAGL', 'GL', 'EGL'] + TargetAdd('pandagl_pandagl.obj', opts=OPTS, input='pandagl.cxx') + TargetAdd('libpandagl.dll', input='pandagl_pandagl.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_config_glgsg.obj') + TargetAdd('libpandagl.dll', input='p3glgsg_glgsg.obj') + TargetAdd('libpandagl.dll', input='pandagl_egldisplay_composite1.obj') + TargetAdd('libpandagl.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagl.dll', opts=['MODULE', 'GL', 'EGL', 'CGGL']) # # DIRECTORY: panda/src/egldisplay/ # -if (PkgSkip("EGL")==0 and PkgSkip("GLES")==0): - DefSymbol('GLES', 'OPENGLES_1', '') - OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] - TargetAdd('pandagles_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagles', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] - TargetAdd('pandagles_pandagles.obj', opts=OPTS, input='pandagles.cxx') - if not PkgSkip("X11"): - TargetAdd('libpandagles.dll', input='p3x11display_composite1.obj') - TargetAdd('libpandagles.dll', input='pandagles_pandagles.obj') - TargetAdd('libpandagles.dll', input='p3glesgsg_config_glesgsg.obj') - TargetAdd('libpandagles.dll', input='p3glesgsg_glesgsg.obj') - TargetAdd('libpandagles.dll', input='pandagles_egldisplay_composite1.obj') - TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL', 'X11']) +if not PkgSkip("EGL") and not PkgSkip("GLES"): + DefSymbol('GLES', 'OPENGLES_1', '') + OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] + TargetAdd('pandagles_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagles', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] + TargetAdd('pandagles_pandagles.obj', opts=OPTS, input='pandagles.cxx') + if not PkgSkip("X11"): + TargetAdd('libpandagles.dll', input='p3x11display_composite1.obj') + TargetAdd('libpandagles.dll', input='pandagles_pandagles.obj') + TargetAdd('libpandagles.dll', input='p3glesgsg_config_glesgsg.obj') + TargetAdd('libpandagles.dll', input='p3glesgsg_glesgsg.obj') + TargetAdd('libpandagles.dll', input='pandagles_egldisplay_composite1.obj') + TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL', 'X11']) # # DIRECTORY: panda/src/egldisplay/ # -if (PkgSkip("EGL")==0 and PkgSkip("GLES2")==0): - DefSymbol('GLES2', 'OPENGLES_2', '') - OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL'] - TargetAdd('pandagles2_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagles2', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL'] - TargetAdd('pandagles2_pandagles2.obj', opts=OPTS, input='pandagles2.cxx') - if not PkgSkip("X11"): - TargetAdd('libpandagles2.dll', input='p3x11display_composite1.obj') - TargetAdd('libpandagles2.dll', input='pandagles2_pandagles2.obj') - TargetAdd('libpandagles2.dll', input='p3gles2gsg_config_gles2gsg.obj') - TargetAdd('libpandagles2.dll', input='p3gles2gsg_gles2gsg.obj') - TargetAdd('libpandagles2.dll', input='pandagles2_egldisplay_composite1.obj') - TargetAdd('libpandagles2.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagles2.dll', opts=['MODULE', 'GLES2', 'EGL', 'X11']) +if not PkgSkip("EGL") and not PkgSkip("GLES2"): + DefSymbol('GLES2', 'OPENGLES_2', '') + OPTS=['DIR:panda/src/egldisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL'] + TargetAdd('pandagles2_egldisplay_composite1.obj', opts=OPTS, input='p3egldisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagles2', 'BUILDING:PANDAGLES2', 'GLES2', 'EGL'] + TargetAdd('pandagles2_pandagles2.obj', opts=OPTS, input='pandagles2.cxx') + if not PkgSkip("X11"): + TargetAdd('libpandagles2.dll', input='p3x11display_composite1.obj') + TargetAdd('libpandagles2.dll', input='pandagles2_pandagles2.obj') + TargetAdd('libpandagles2.dll', input='p3gles2gsg_config_gles2gsg.obj') + TargetAdd('libpandagles2.dll', input='p3gles2gsg_gles2gsg.obj') + TargetAdd('libpandagles2.dll', input='pandagles2_egldisplay_composite1.obj') + TargetAdd('libpandagles2.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagles2.dll', opts=['MODULE', 'GLES2', 'EGL', 'X11']) # # DIRECTORY: panda/src/ode/ # -if (PkgSkip("ODE")==0): - OPTS=['DIR:panda/src/ode', 'BUILDING:PANDAODE', 'ODE'] - TargetAdd('p3ode_composite1.obj', opts=OPTS, input='p3ode_composite1.cxx') - TargetAdd('p3ode_composite2.obj', opts=OPTS, input='p3ode_composite2.cxx') - TargetAdd('p3ode_composite3.obj', opts=OPTS, input='p3ode_composite3.cxx') +if not PkgSkip("ODE"): + OPTS=['DIR:panda/src/ode', 'BUILDING:PANDAODE', 'ODE'] + TargetAdd('p3ode_composite1.obj', opts=OPTS, input='p3ode_composite1.cxx') + TargetAdd('p3ode_composite2.obj', opts=OPTS, input='p3ode_composite2.cxx') + TargetAdd('p3ode_composite3.obj', opts=OPTS, input='p3ode_composite3.cxx') - OPTS=['DIR:panda/src/ode', 'ODE'] - IGATEFILES=GetDirectoryContents('panda/src/ode', ["*.h", "*_composite*.cxx"]) - IGATEFILES.remove("odeConvexGeom.h") - IGATEFILES.remove("odeHelperStructs.h") - TargetAdd('libpandaode.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libpandaode.in', opts=['IMOD:panda3d.ode', 'ILIB:libpandaode', 'SRCDIR:panda/src/ode']) - PyTargetAdd('p3ode_ext_composite.obj', opts=OPTS, input='p3ode_ext_composite.cxx') + OPTS=['DIR:panda/src/ode', 'ODE'] + IGATEFILES=GetDirectoryContents('panda/src/ode', ["*.h", "*_composite*.cxx"]) + IGATEFILES.remove("odeConvexGeom.h") + IGATEFILES.remove("odeHelperStructs.h") + TargetAdd('libpandaode.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libpandaode.in', opts=['IMOD:panda3d.ode', 'ILIB:libpandaode', 'SRCDIR:panda/src/ode']) + PyTargetAdd('p3ode_ext_composite.obj', opts=OPTS, input='p3ode_ext_composite.cxx') # # DIRECTORY: panda/metalibs/pandaode/ # -if (PkgSkip("ODE")==0): - OPTS=['DIR:panda/metalibs/pandaode', 'BUILDING:PANDAODE', 'ODE'] - TargetAdd('pandaode_pandaode.obj', opts=OPTS, input='pandaode.cxx') +if not PkgSkip("ODE"): + OPTS=['DIR:panda/metalibs/pandaode', 'BUILDING:PANDAODE', 'ODE'] + TargetAdd('pandaode_pandaode.obj', opts=OPTS, input='pandaode.cxx') - TargetAdd('libpandaode.dll', input='pandaode_pandaode.obj') - TargetAdd('libpandaode.dll', input='p3ode_composite1.obj') - TargetAdd('libpandaode.dll', input='p3ode_composite2.obj') - TargetAdd('libpandaode.dll', input='p3ode_composite3.obj') - TargetAdd('libpandaode.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandaode.dll', opts=['WINUSER', 'ODE']) + TargetAdd('libpandaode.dll', input='pandaode_pandaode.obj') + TargetAdd('libpandaode.dll', input='p3ode_composite1.obj') + TargetAdd('libpandaode.dll', input='p3ode_composite2.obj') + TargetAdd('libpandaode.dll', input='p3ode_composite3.obj') + TargetAdd('libpandaode.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandaode.dll', opts=['WINUSER', 'ODE']) - OPTS=['DIR:panda/metalibs/pandaode', 'ODE'] - PyTargetAdd('ode_module.obj', input='libpandaode.in') - PyTargetAdd('ode_module.obj', opts=OPTS) - PyTargetAdd('ode_module.obj', opts=['IMOD:panda3d.ode', 'ILIB:ode', 'IMPORT:panda3d.core']) + OPTS=['DIR:panda/metalibs/pandaode', 'ODE'] + PyTargetAdd('ode_module.obj', input='libpandaode.in') + PyTargetAdd('ode_module.obj', opts=OPTS) + PyTargetAdd('ode_module.obj', opts=['IMOD:panda3d.ode', 'ILIB:ode', 'IMPORT:panda3d.core']) - PyTargetAdd('ode.pyd', input='ode_module.obj') - PyTargetAdd('ode.pyd', input='libpandaode_igate.obj') - PyTargetAdd('ode.pyd', input='p3ode_ext_composite.obj') - PyTargetAdd('ode.pyd', input='libpandaode.dll') - PyTargetAdd('ode.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('ode.pyd', input=COMMON_PANDA_LIBS) - PyTargetAdd('ode.pyd', opts=['WINUSER', 'ODE']) + PyTargetAdd('ode.pyd', input='ode_module.obj') + PyTargetAdd('ode.pyd', input='libpandaode_igate.obj') + PyTargetAdd('ode.pyd', input='p3ode_ext_composite.obj') + PyTargetAdd('ode.pyd', input='libpandaode.dll') + PyTargetAdd('ode.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('ode.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('ode.pyd', opts=['WINUSER', 'ODE']) # # DIRECTORY: panda/src/bullet/ # -if (PkgSkip("BULLET")==0): - OPTS=['DIR:panda/src/bullet', 'BUILDING:PANDABULLET', 'BULLET'] - TargetAdd('p3bullet_composite.obj', opts=OPTS, input='p3bullet_composite.cxx') +if not PkgSkip("BULLET"): + OPTS=['DIR:panda/src/bullet', 'BUILDING:PANDABULLET', 'BULLET'] + TargetAdd('p3bullet_composite.obj', opts=OPTS, input='p3bullet_composite.cxx') - OPTS=['DIR:panda/src/bullet', 'BULLET'] - IGATEFILES=GetDirectoryContents('panda/src/bullet', ["*.h", "*_composite*.cxx"]) - TargetAdd('libpandabullet.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libpandabullet.in', opts=['IMOD:panda3d.bullet', 'ILIB:libpandabullet', 'SRCDIR:panda/src/bullet']) + OPTS=['DIR:panda/src/bullet', 'BULLET'] + IGATEFILES=GetDirectoryContents('panda/src/bullet', ["*.h", "*_composite*.cxx"]) + TargetAdd('libpandabullet.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libpandabullet.in', opts=['IMOD:panda3d.bullet', 'ILIB:libpandabullet', 'SRCDIR:panda/src/bullet']) # # DIRECTORY: panda/metalibs/pandabullet/ # -if (PkgSkip("BULLET")==0): - OPTS=['DIR:panda/metalibs/pandabullet', 'BUILDING:PANDABULLET', 'BULLET'] - TargetAdd('pandabullet_pandabullet.obj', opts=OPTS, input='pandabullet.cxx') +if not PkgSkip("BULLET"): + OPTS=['DIR:panda/metalibs/pandabullet', 'BUILDING:PANDABULLET', 'BULLET'] + TargetAdd('pandabullet_pandabullet.obj', opts=OPTS, input='pandabullet.cxx') - TargetAdd('libpandabullet.dll', input='pandabullet_pandabullet.obj') - TargetAdd('libpandabullet.dll', input='p3bullet_composite.obj') - TargetAdd('libpandabullet.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandabullet.dll', opts=['WINUSER', 'BULLET']) + TargetAdd('libpandabullet.dll', input='pandabullet_pandabullet.obj') + TargetAdd('libpandabullet.dll', input='p3bullet_composite.obj') + TargetAdd('libpandabullet.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandabullet.dll', opts=['WINUSER', 'BULLET']) - OPTS=['DIR:panda/metalibs/pandabullet', 'BULLET'] - PyTargetAdd('bullet_module.obj', input='libpandabullet.in') - PyTargetAdd('bullet_module.obj', opts=OPTS) - PyTargetAdd('bullet_module.obj', opts=['IMOD:panda3d.bullet', 'ILIB:bullet', 'IMPORT:panda3d.core']) + OPTS=['DIR:panda/metalibs/pandabullet', 'BULLET'] + PyTargetAdd('bullet_module.obj', input='libpandabullet.in') + PyTargetAdd('bullet_module.obj', opts=OPTS) + PyTargetAdd('bullet_module.obj', opts=['IMOD:panda3d.bullet', 'ILIB:bullet', 'IMPORT:panda3d.core']) - PyTargetAdd('bullet.pyd', input='bullet_module.obj') - PyTargetAdd('bullet.pyd', input='libpandabullet_igate.obj') - PyTargetAdd('bullet.pyd', input='libpandabullet.dll') - PyTargetAdd('bullet.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('bullet.pyd', input=COMMON_PANDA_LIBS) - PyTargetAdd('bullet.pyd', opts=['WINUSER', 'BULLET']) + PyTargetAdd('bullet.pyd', input='bullet_module.obj') + PyTargetAdd('bullet.pyd', input='libpandabullet_igate.obj') + PyTargetAdd('bullet.pyd', input='libpandabullet.dll') + PyTargetAdd('bullet.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('bullet.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('bullet.pyd', opts=['WINUSER', 'BULLET']) # # DIRECTORY: panda/src/physics/ # -if (PkgSkip("PANDAPHYSICS")==0): - OPTS=['DIR:panda/src/physics', 'BUILDING:PANDAPHYSICS'] - TargetAdd('p3physics_composite1.obj', opts=OPTS, input='p3physics_composite1.cxx') - TargetAdd('p3physics_composite2.obj', opts=OPTS, input='p3physics_composite2.cxx') +if not PkgSkip("PANDAPHYSICS"): + OPTS=['DIR:panda/src/physics', 'BUILDING:PANDAPHYSICS'] + TargetAdd('p3physics_composite1.obj', opts=OPTS, input='p3physics_composite1.cxx') + TargetAdd('p3physics_composite2.obj', opts=OPTS, input='p3physics_composite2.cxx') - OPTS=['DIR:panda/src/physics'] - IGATEFILES=GetDirectoryContents('panda/src/physics', ["*.h", "*_composite*.cxx"]) - IGATEFILES.remove("forces.h") - TargetAdd('libp3physics.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3physics.in', opts=['IMOD:panda3d.physics', 'ILIB:libp3physics', 'SRCDIR:panda/src/physics']) + OPTS=['DIR:panda/src/physics'] + IGATEFILES=GetDirectoryContents('panda/src/physics', ["*.h", "*_composite*.cxx"]) + IGATEFILES.remove("forces.h") + TargetAdd('libp3physics.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3physics.in', opts=['IMOD:panda3d.physics', 'ILIB:libp3physics', 'SRCDIR:panda/src/physics']) # # DIRECTORY: panda/src/particlesystem/ # -if (PkgSkip("PANDAPHYSICS")==0) and (PkgSkip("PANDAPARTICLESYSTEM")==0): - OPTS=['DIR:panda/src/particlesystem', 'BUILDING:PANDAPHYSICS'] - TargetAdd('p3particlesystem_composite1.obj', opts=OPTS, input='p3particlesystem_composite1.cxx') - TargetAdd('p3particlesystem_composite2.obj', opts=OPTS, input='p3particlesystem_composite2.cxx') +if not PkgSkip("PANDAPHYSICS") and not PkgSkip("PANDAPARTICLESYSTEM"): + OPTS=['DIR:panda/src/particlesystem', 'BUILDING:PANDAPHYSICS'] + TargetAdd('p3particlesystem_composite1.obj', opts=OPTS, input='p3particlesystem_composite1.cxx') + TargetAdd('p3particlesystem_composite2.obj', opts=OPTS, input='p3particlesystem_composite2.cxx') - OPTS=['DIR:panda/src/particlesystem'] - IGATEFILES=GetDirectoryContents('panda/src/particlesystem', ["*.h", "*_composite*.cxx"]) - IGATEFILES.remove('orientedParticle.h') - IGATEFILES.remove('orientedParticleFactory.h') - IGATEFILES.remove('particlefactories.h') - IGATEFILES.remove('emitters.h') - IGATEFILES.remove('particles.h') - TargetAdd('libp3particlesystem.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3particlesystem.in', opts=['IMOD:panda3d.physics', 'ILIB:libp3particlesystem', 'SRCDIR:panda/src/particlesystem']) + OPTS=['DIR:panda/src/particlesystem'] + IGATEFILES=GetDirectoryContents('panda/src/particlesystem', ["*.h", "*_composite*.cxx"]) + IGATEFILES.remove('orientedParticle.h') + IGATEFILES.remove('orientedParticleFactory.h') + IGATEFILES.remove('particlefactories.h') + IGATEFILES.remove('emitters.h') + IGATEFILES.remove('particles.h') + TargetAdd('libp3particlesystem.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3particlesystem.in', opts=['IMOD:panda3d.physics', 'ILIB:libp3particlesystem', 'SRCDIR:panda/src/particlesystem']) # # DIRECTORY: panda/metalibs/pandaphysics/ # -if (PkgSkip("PANDAPHYSICS")==0): - OPTS=['DIR:panda/metalibs/pandaphysics', 'BUILDING:PANDAPHYSICS'] - TargetAdd('pandaphysics_pandaphysics.obj', opts=OPTS, input='pandaphysics.cxx') +if not PkgSkip("PANDAPHYSICS"): + OPTS=['DIR:panda/metalibs/pandaphysics', 'BUILDING:PANDAPHYSICS'] + TargetAdd('pandaphysics_pandaphysics.obj', opts=OPTS, input='pandaphysics.cxx') - TargetAdd('libpandaphysics.dll', input='pandaphysics_pandaphysics.obj') - TargetAdd('libpandaphysics.dll', input='p3physics_composite1.obj') - TargetAdd('libpandaphysics.dll', input='p3physics_composite2.obj') - TargetAdd('libpandaphysics.dll', input='p3particlesystem_composite1.obj') - TargetAdd('libpandaphysics.dll', input='p3particlesystem_composite2.obj') - TargetAdd('libpandaphysics.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandaphysics.dll', opts=['ADVAPI']) + TargetAdd('libpandaphysics.dll', input='pandaphysics_pandaphysics.obj') + TargetAdd('libpandaphysics.dll', input='p3physics_composite1.obj') + TargetAdd('libpandaphysics.dll', input='p3physics_composite2.obj') + TargetAdd('libpandaphysics.dll', input='p3particlesystem_composite1.obj') + TargetAdd('libpandaphysics.dll', input='p3particlesystem_composite2.obj') + TargetAdd('libpandaphysics.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandaphysics.dll', opts=['ADVAPI']) - OPTS=['DIR:panda/metalibs/pandaphysics'] - PyTargetAdd('physics_module.obj', input='libp3physics.in') - if (PkgSkip("PANDAPARTICLESYSTEM")==0): - PyTargetAdd('physics_module.obj', input='libp3particlesystem.in') - PyTargetAdd('physics_module.obj', opts=OPTS) - PyTargetAdd('physics_module.obj', opts=['IMOD:panda3d.physics', 'ILIB:physics', 'IMPORT:panda3d.core']) + OPTS=['DIR:panda/metalibs/pandaphysics'] + PyTargetAdd('physics_module.obj', input='libp3physics.in') + if not PkgSkip("PANDAPARTICLESYSTEM"): + PyTargetAdd('physics_module.obj', input='libp3particlesystem.in') + PyTargetAdd('physics_module.obj', opts=OPTS) + PyTargetAdd('physics_module.obj', opts=['IMOD:panda3d.physics', 'ILIB:physics', 'IMPORT:panda3d.core']) - PyTargetAdd('physics.pyd', input='physics_module.obj') - PyTargetAdd('physics.pyd', input='libp3physics_igate.obj') - if (PkgSkip("PANDAPARTICLESYSTEM")==0): - PyTargetAdd('physics.pyd', input='libp3particlesystem_igate.obj') - PyTargetAdd('physics.pyd', input='libpandaphysics.dll') - PyTargetAdd('physics.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('physics.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('physics.pyd', input='physics_module.obj') + PyTargetAdd('physics.pyd', input='libp3physics_igate.obj') + if not PkgSkip("PANDAPARTICLESYSTEM"): + PyTargetAdd('physics.pyd', input='libp3particlesystem_igate.obj') + PyTargetAdd('physics.pyd', input='libpandaphysics.dll') + PyTargetAdd('physics.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('physics.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: contrib/src/speedtree/ # -if (PkgSkip("SPEEDTREE")==0): - OPTS=['DIR:contrib/src/speedtree', 'BUILDING:PANDASPEEDTREE', 'SPEEDTREE'] - TargetAdd('pandaspeedtree_composite1.obj', opts=OPTS, input='pandaspeedtree_composite1.cxx') - IGATEFILES=GetDirectoryContents('contrib/src/speedtree', ["*.h", "*_composite*.cxx"]) - TargetAdd('libpandaspeedtree.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libpandaspeedtree.in', opts=['IMOD:libpandaspeedtree', 'ILIB:libpandaspeedtree', 'SRCDIR:contrib/src/speedtree']) +if not PkgSkip("SPEEDTREE"): + OPTS=['DIR:contrib/src/speedtree', 'BUILDING:PANDASPEEDTREE', 'SPEEDTREE'] + TargetAdd('pandaspeedtree_composite1.obj', opts=OPTS, input='pandaspeedtree_composite1.cxx') + IGATEFILES=GetDirectoryContents('contrib/src/speedtree', ["*.h", "*_composite*.cxx"]) + TargetAdd('libpandaspeedtree.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libpandaspeedtree.in', opts=['IMOD:libpandaspeedtree', 'ILIB:libpandaspeedtree', 'SRCDIR:contrib/src/speedtree']) - PyTargetAdd('libpandaspeedtree_module.obj', input='libpandaspeedtree.in') - PyTargetAdd('libpandaspeedtree_module.obj', opts=OPTS) - PyTargetAdd('libpandaspeedtree_module.obj', opts=['IMOD:libpandaspeedtree', 'ILIB:libpandaspeedtree']) - TargetAdd('libpandaspeedtree.dll', input='pandaspeedtree_composite1.obj') - PyTargetAdd('libpandaspeedtree.dll', input='libpandaspeedtree_igate.obj') - TargetAdd('libpandaspeedtree.dll', input='libpandaspeedtree_module.obj') - TargetAdd('libpandaspeedtree.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandaspeedtree.dll', opts=['SPEEDTREE']) - if SDK["SPEEDTREEAPI"] == 'OpenGL': - TargetAdd('libpandaspeedtree.dll', opts=['GL', 'NVIDIACG', 'CGGL']) - elif SDK["SPEEDTREEAPI"] == 'DirectX9': - TargetAdd('libpandaspeedtree.dll', opts=['DX9', 'NVIDIACG', 'CGDX9']) + PyTargetAdd('libpandaspeedtree_module.obj', input='libpandaspeedtree.in') + PyTargetAdd('libpandaspeedtree_module.obj', opts=OPTS) + PyTargetAdd('libpandaspeedtree_module.obj', opts=['IMOD:libpandaspeedtree', 'ILIB:libpandaspeedtree']) + TargetAdd('libpandaspeedtree.dll', input='pandaspeedtree_composite1.obj') + PyTargetAdd('libpandaspeedtree.dll', input='libpandaspeedtree_igate.obj') + TargetAdd('libpandaspeedtree.dll', input='libpandaspeedtree_module.obj') + TargetAdd('libpandaspeedtree.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandaspeedtree.dll', opts=['SPEEDTREE']) + if SDK["SPEEDTREEAPI"] == 'OpenGL': + TargetAdd('libpandaspeedtree.dll', opts=['GL', 'NVIDIACG', 'CGGL']) + elif SDK["SPEEDTREEAPI"] == 'DirectX9': + TargetAdd('libpandaspeedtree.dll', opts=['DX9', 'NVIDIACG', 'CGDX9']) # # DIRECTORY: panda/src/testbed/ # -if (PkgSkip("PVIEW")==0): - OPTS=['DIR:panda/src/testbed'] - TargetAdd('pview_pview.obj', opts=OPTS, input='pview.cxx') - TargetAdd('pview.exe', input='pview_pview.obj') - TargetAdd('pview.exe', input='libp3framework.dll') - if not PkgSkip("EGG"): - TargetAdd('pview.exe', input='libpandaegg.dll') - TargetAdd('pview.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pview.exe', opts=['ADVAPI', 'WINSOCK2', 'WINSHELL']) +if not PkgSkip("PVIEW"): + OPTS=['DIR:panda/src/testbed'] + TargetAdd('pview_pview.obj', opts=OPTS, input='pview.cxx') + TargetAdd('pview.exe', input='pview_pview.obj') + TargetAdd('pview.exe', input='libp3framework.dll') + if not PkgSkip("EGG"): + TargetAdd('pview.exe', input='libpandaegg.dll') + TargetAdd('pview.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pview.exe', opts=['ADVAPI', 'WINSOCK2', 'WINSHELL']) - if GetLinkAllStatic() and not PkgSkip("GL"): - TargetAdd('pview.exe', input='libpandagl.dll') + if GetLinkAllStatic() and not PkgSkip("GL"): + TargetAdd('pview.exe', input='libpandagl.dll') # # DIRECTORY: panda/src/android/ # -if (GetTarget() == 'android'): - OPTS=['DIR:panda/src/android'] - TargetAdd('org/panda3d/android/NativeIStream.class', opts=OPTS, input='NativeIStream.java') - TargetAdd('org/panda3d/android/NativeOStream.class', opts=OPTS, input='NativeOStream.java') - TargetAdd('org/panda3d/android/PandaActivity.class', opts=OPTS, input='PandaActivity.java') - TargetAdd('org/panda3d/android/PythonActivity.class', opts=OPTS, input='PythonActivity.java') +if GetTarget() == 'android': + OPTS=['DIR:panda/src/android'] + TargetAdd('org/panda3d/android/NativeIStream.class', opts=OPTS, input='NativeIStream.java') + TargetAdd('org/panda3d/android/NativeOStream.class', opts=OPTS, input='NativeOStream.java') + TargetAdd('org/panda3d/android/PandaActivity.class', opts=OPTS, input='PandaActivity.java') + TargetAdd('org/panda3d/android/PythonActivity.class', opts=OPTS, input='PythonActivity.java') - TargetAdd('p3android_composite1.obj', opts=OPTS, input='p3android_composite1.cxx') - TargetAdd('libp3android.dll', input='p3android_composite1.obj') - TargetAdd('libp3android.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3android.dll', opts=['JNIGRAPHICS']) + TargetAdd('p3android_composite1.obj', opts=OPTS, input='p3android_composite1.cxx') + TargetAdd('libp3android.dll', input='p3android_composite1.obj') + TargetAdd('libp3android.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3android.dll', opts=['JNIGRAPHICS']) - TargetAdd('android_native_app_glue.obj', opts=OPTS + ['NOHIDDEN'], input='android_native_app_glue.c') - TargetAdd('android_main.obj', opts=OPTS, input='android_main.cxx') + TargetAdd('android_native_app_glue.obj', opts=OPTS + ['NOHIDDEN'], input='android_native_app_glue.c') + TargetAdd('android_main.obj', opts=OPTS, input='android_main.cxx') - if (PkgSkip("PVIEW")==0): - TargetAdd('libpview_pview.obj', opts=OPTS, input='pview.cxx') - TargetAdd('libpview.dll', input='android_native_app_glue.obj') - TargetAdd('libpview.dll', input='android_main.obj') - TargetAdd('libpview.dll', input='libpview_pview.obj') - TargetAdd('libpview.dll', input='libp3framework.dll') - if not PkgSkip("EGG"): - TargetAdd('libpview.dll', input='libpandaegg.dll') - TargetAdd('libpview.dll', input='libp3android.dll') - TargetAdd('libpview.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpview.dll', opts=['MODULE', 'ANDROID']) + if not PkgSkip("PVIEW"): + TargetAdd('libpview_pview.obj', opts=OPTS, input='pview.cxx') + TargetAdd('libpview.dll', input='android_native_app_glue.obj') + TargetAdd('libpview.dll', input='android_main.obj') + TargetAdd('libpview.dll', input='libpview_pview.obj') + TargetAdd('libpview.dll', input='libp3framework.dll') + if not PkgSkip("EGG"): + TargetAdd('libpview.dll', input='libpandaegg.dll') + TargetAdd('libpview.dll', input='libp3android.dll') + TargetAdd('libpview.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpview.dll', opts=['MODULE', 'ANDROID']) - if (PkgSkip("PYTHON")==0): - OPTS += ['PYTHON'] - TargetAdd('ppython_ppython.obj', opts=OPTS, input='python_main.cxx') - TargetAdd('libppython.dll', input='android_native_app_glue.obj') - TargetAdd('libppython.dll', input='android_main.obj') - TargetAdd('libppython.dll', input='ppython_ppython.obj') - TargetAdd('libppython.dll', input='libp3framework.dll') - TargetAdd('libppython.dll', input='libp3android.dll') - TargetAdd('libppython.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libppython.dll', opts=['MODULE', 'ANDROID', 'PYTHON']) + if not PkgSkip("PYTHON"): + OPTS += ['PYTHON'] + TargetAdd('ppython_ppython.obj', opts=OPTS, input='python_main.cxx') + TargetAdd('libppython.dll', input='android_native_app_glue.obj') + TargetAdd('libppython.dll', input='android_main.obj') + TargetAdd('libppython.dll', input='ppython_ppython.obj') + TargetAdd('libppython.dll', input='libp3framework.dll') + TargetAdd('libppython.dll', input='libp3android.dll') + TargetAdd('libppython.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libppython.dll', opts=['MODULE', 'ANDROID', 'PYTHON']) # # DIRECTORY: panda/src/androiddisplay/ # -if (GetTarget() == 'android' and PkgSkip("EGL")==0 and PkgSkip("GLES")==0): - DefSymbol('GLES', 'OPENGLES_1', '') - OPTS=['DIR:panda/src/androiddisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] - TargetAdd('pandagles_androiddisplay_composite1.obj', opts=OPTS, input='p3androiddisplay_composite1.cxx') - OPTS=['DIR:panda/metalibs/pandagles', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] - TargetAdd('pandagles_pandagles.obj', opts=OPTS, input='pandagles.cxx') - TargetAdd('libpandagles.dll', input='pandagles_pandagles.obj') - TargetAdd('libpandagles.dll', input='p3glesgsg_config_glesgsg.obj') - TargetAdd('libpandagles.dll', input='p3glesgsg_glesgsg.obj') - TargetAdd('libpandagles.dll', input='pandagles_androiddisplay_composite1.obj') - TargetAdd('libpandagles.dll', input='libp3android.dll') - TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL']) +if GetTarget() == 'android' and not PkgSkip("EGL") and not PkgSkip("GLES"): + DefSymbol('GLES', 'OPENGLES_1', '') + OPTS=['DIR:panda/src/androiddisplay', 'DIR:panda/src/glstuff', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] + TargetAdd('pandagles_androiddisplay_composite1.obj', opts=OPTS, input='p3androiddisplay_composite1.cxx') + OPTS=['DIR:panda/metalibs/pandagles', 'BUILDING:PANDAGLES', 'GLES', 'EGL'] + TargetAdd('pandagles_pandagles.obj', opts=OPTS, input='pandagles.cxx') + TargetAdd('libpandagles.dll', input='pandagles_pandagles.obj') + TargetAdd('libpandagles.dll', input='p3glesgsg_config_glesgsg.obj') + TargetAdd('libpandagles.dll', input='p3glesgsg_glesgsg.obj') + TargetAdd('libpandagles.dll', input='pandagles_androiddisplay_composite1.obj') + TargetAdd('libpandagles.dll', input='libp3android.dll') + TargetAdd('libpandagles.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libpandagles.dll', opts=['MODULE', 'GLES', 'EGL']) # # DIRECTORY: panda/src/tinydisplay/ # -if ((GetTarget() in ('windows', 'darwin') or PkgSkip("X11")==0) and PkgSkip("TINYDISPLAY")==0): - OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY', 'X11'] - TargetAdd('p3tinydisplay_composite1.obj', opts=OPTS, input='p3tinydisplay_composite1.cxx') - TargetAdd('p3tinydisplay_composite2.obj', opts=OPTS, input='p3tinydisplay_composite2.cxx') - TargetAdd('p3tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx') - TargetAdd('p3tinydisplay_ztriangle_2.obj', opts=OPTS, input='ztriangle_2.cxx') - TargetAdd('p3tinydisplay_ztriangle_3.obj', opts=OPTS, input='ztriangle_3.cxx') - TargetAdd('p3tinydisplay_ztriangle_4.obj', opts=OPTS, input='ztriangle_4.cxx') - TargetAdd('p3tinydisplay_ztriangle_table.obj', opts=OPTS, input='ztriangle_table.cxx') - if GetTarget() == 'windows': - TargetAdd('libp3tinydisplay.dll', input='libp3windisplay.dll') - TargetAdd('libp3tinydisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM']) - elif GetTarget() != 'darwin': - TargetAdd('libp3tinydisplay.dll', input='p3x11display_composite1.obj') - TargetAdd('libp3tinydisplay.dll', opts=['X11']) - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite1.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite2.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_1.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_2.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_3.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_4.obj') - TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_table.obj') - TargetAdd('libp3tinydisplay.dll', input=COMMON_PANDA_LIBS) +if (GetTarget() in ('windows', 'darwin') or not PkgSkip("X11")) and not PkgSkip("TINYDISPLAY"): + OPTS=['DIR:panda/src/tinydisplay', 'BUILDING:TINYDISPLAY', 'X11'] + TargetAdd('p3tinydisplay_composite1.obj', opts=OPTS, input='p3tinydisplay_composite1.cxx') + TargetAdd('p3tinydisplay_composite2.obj', opts=OPTS, input='p3tinydisplay_composite2.cxx') + TargetAdd('p3tinydisplay_ztriangle_1.obj', opts=OPTS, input='ztriangle_1.cxx') + TargetAdd('p3tinydisplay_ztriangle_2.obj', opts=OPTS, input='ztriangle_2.cxx') + TargetAdd('p3tinydisplay_ztriangle_3.obj', opts=OPTS, input='ztriangle_3.cxx') + TargetAdd('p3tinydisplay_ztriangle_4.obj', opts=OPTS, input='ztriangle_4.cxx') + TargetAdd('p3tinydisplay_ztriangle_table.obj', opts=OPTS, input='ztriangle_table.cxx') + if GetTarget() == 'windows': + TargetAdd('libp3tinydisplay.dll', input='libp3windisplay.dll') + TargetAdd('libp3tinydisplay.dll', opts=['WINIMM', 'WINGDI', 'WINKERNEL', 'WINOLDNAMES', 'WINUSER', 'WINMM']) + elif GetTarget() != 'darwin': + TargetAdd('libp3tinydisplay.dll', input='p3x11display_composite1.obj') + TargetAdd('libp3tinydisplay.dll', opts=['X11']) + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite1.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_composite2.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_1.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_2.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_3.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_4.obj') + TargetAdd('libp3tinydisplay.dll', input='p3tinydisplay_ztriangle_table.obj') + TargetAdd('libp3tinydisplay.dll', input=COMMON_PANDA_LIBS) # # DIRECTORY: direct/src/directbase/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/directbase'] - TargetAdd('p3directbase_directbase.obj', opts=OPTS+['BUILDING:DIRECT'], input='directbase.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/directbase'] + TargetAdd('p3directbase_directbase.obj', opts=OPTS+['BUILDING:DIRECT'], input='directbase.cxx') # # DIRECTORY: direct/src/dcparser/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/dcparser', 'BUILDING:DIRECT_DCPARSER', 'WITHINPANDA', 'BISONPREFIX_dcyy'] - CreateFile(GetOutputDir()+"/include/dcParser.h") - TargetAdd('p3dcparser_dcParser.obj', opts=OPTS, input='dcParser.yxx') - TargetAdd('dcParser.h', input='p3dcparser_dcParser.obj', opts=['DEPENDENCYONLY']) - TargetAdd('p3dcparser_dcLexer.obj', opts=OPTS, input='dcLexer.lxx') - TargetAdd('p3dcparser_composite1.obj', opts=OPTS, input='p3dcparser_composite1.cxx') - TargetAdd('p3dcparser_composite2.obj', opts=OPTS, input='p3dcparser_composite2.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/dcparser', 'BUILDING:DIRECT_DCPARSER', 'WITHINPANDA', 'BISONPREFIX_dcyy'] + CreateFile(GetOutputDir()+"/include/dcParser.h") + TargetAdd('p3dcparser_dcParser.obj', opts=OPTS, input='dcParser.yxx') + TargetAdd('dcParser.h', input='p3dcparser_dcParser.obj', opts=['DEPENDENCYONLY']) + TargetAdd('p3dcparser_dcLexer.obj', opts=OPTS, input='dcLexer.lxx') + TargetAdd('p3dcparser_composite1.obj', opts=OPTS, input='p3dcparser_composite1.cxx') + TargetAdd('p3dcparser_composite2.obj', opts=OPTS, input='p3dcparser_composite2.cxx') - OPTS=['DIR:direct/src/dcparser', 'WITHINPANDA'] - IGATEFILES=GetDirectoryContents('direct/src/dcparser', ["*.h", "*_composite*.cxx"]) - if "dcParser.h" in IGATEFILES: IGATEFILES.remove("dcParser.h") - if "dcmsgtypes.h" in IGATEFILES: IGATEFILES.remove('dcmsgtypes.h') - TargetAdd('libp3dcparser.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3dcparser.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3dcparser', 'SRCDIR:direct/src/dcparser']) - PyTargetAdd('p3dcparser_ext_composite.obj', opts=OPTS, input='p3dcparser_ext_composite.cxx') + OPTS=['DIR:direct/src/dcparser', 'WITHINPANDA'] + IGATEFILES=GetDirectoryContents('direct/src/dcparser', ["*.h", "*_composite*.cxx"]) + if "dcParser.h" in IGATEFILES: + IGATEFILES.remove("dcParser.h") + if "dcmsgtypes.h" in IGATEFILES: + IGATEFILES.remove('dcmsgtypes.h') + TargetAdd('libp3dcparser.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3dcparser.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3dcparser', 'SRCDIR:direct/src/dcparser']) + PyTargetAdd('p3dcparser_ext_composite.obj', opts=OPTS, input='p3dcparser_ext_composite.cxx') # # DIRECTORY: direct/src/deadrec/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/deadrec', 'BUILDING:DIRECT'] - TargetAdd('p3deadrec_composite1.obj', opts=OPTS, input='p3deadrec_composite1.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/deadrec', 'BUILDING:DIRECT'] + TargetAdd('p3deadrec_composite1.obj', opts=OPTS, input='p3deadrec_composite1.cxx') - OPTS=['DIR:direct/src/deadrec'] - IGATEFILES=GetDirectoryContents('direct/src/deadrec', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3deadrec.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3deadrec.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3deadrec', 'SRCDIR:direct/src/deadrec']) + OPTS=['DIR:direct/src/deadrec'] + IGATEFILES=GetDirectoryContents('direct/src/deadrec', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3deadrec.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3deadrec.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3deadrec', 'SRCDIR:direct/src/deadrec']) # # DIRECTORY: direct/src/distributed/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/distributed', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT'] - TargetAdd('p3distributed_config_distributed.obj', opts=OPTS, input='config_distributed.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/distributed', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'BUILDING:DIRECT'] + TargetAdd('p3distributed_config_distributed.obj', opts=OPTS, input='config_distributed.cxx') - OPTS=['DIR:direct/src/distributed', 'WITHINPANDA'] - IGATEFILES=GetDirectoryContents('direct/src/distributed', ["*.h", "*.cxx"]) - TargetAdd('libp3distributed.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3distributed.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3distributed', 'SRCDIR:direct/src/distributed']) - PyTargetAdd('p3distributed_cConnectionRepository.obj', opts=OPTS, input='cConnectionRepository.cxx') - PyTargetAdd('p3distributed_cDistributedSmoothNodeBase.obj', opts=OPTS, input='cDistributedSmoothNodeBase.cxx') + OPTS=['DIR:direct/src/distributed', 'WITHINPANDA'] + IGATEFILES=GetDirectoryContents('direct/src/distributed', ["*.h", "*.cxx"]) + TargetAdd('libp3distributed.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3distributed.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3distributed', 'SRCDIR:direct/src/distributed']) + PyTargetAdd('p3distributed_cConnectionRepository.obj', opts=OPTS, input='cConnectionRepository.cxx') + PyTargetAdd('p3distributed_cDistributedSmoothNodeBase.obj', opts=OPTS, input='cDistributedSmoothNodeBase.cxx') # # DIRECTORY: direct/src/interval/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/interval', 'BUILDING:DIRECT'] - TargetAdd('p3interval_composite1.obj', opts=OPTS, input='p3interval_composite1.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/interval', 'BUILDING:DIRECT'] + TargetAdd('p3interval_composite1.obj', opts=OPTS, input='p3interval_composite1.cxx') - OPTS=['DIR:direct/src/interval'] - IGATEFILES=GetDirectoryContents('direct/src/interval', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3interval.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3interval.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3interval', 'SRCDIR:direct/src/interval']) + OPTS=['DIR:direct/src/interval'] + IGATEFILES=GetDirectoryContents('direct/src/interval', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3interval.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3interval.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3interval', 'SRCDIR:direct/src/interval']) # # DIRECTORY: direct/src/showbase/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/showbase', 'BUILDING:DIRECT'] - TargetAdd('p3showbase_showBase.obj', opts=OPTS, input='showBase.cxx') - if GetTarget() == 'darwin': - TargetAdd('p3showbase_showBase_assist.obj', opts=OPTS, input='showBase_assist.mm') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/showbase', 'BUILDING:DIRECT'] + TargetAdd('p3showbase_showBase.obj', opts=OPTS, input='showBase.cxx') + if GetTarget() == 'darwin': + TargetAdd('p3showbase_showBase_assist.obj', opts=OPTS, input='showBase_assist.mm') - OPTS=['DIR:direct/src/showbase'] - IGATEFILES=GetDirectoryContents('direct/src/showbase', ["*.h", "showBase.cxx"]) - TargetAdd('libp3showbase.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3showbase.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3showbase', 'SRCDIR:direct/src/showbase']) + OPTS=['DIR:direct/src/showbase'] + IGATEFILES=GetDirectoryContents('direct/src/showbase', ["*.h", "showBase.cxx"]) + TargetAdd('libp3showbase.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3showbase.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3showbase', 'SRCDIR:direct/src/showbase']) # # DIRECTORY: direct/src/motiontrail/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/motiontrail', 'BUILDING:DIRECT'] - TargetAdd('p3motiontrail_cMotionTrail.obj', opts=OPTS, input='cMotionTrail.cxx') - TargetAdd('p3motiontrail_config_motiontrail.obj', opts=OPTS, input='config_motiontrail.cxx') +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/motiontrail', 'BUILDING:DIRECT'] + TargetAdd('p3motiontrail_cMotionTrail.obj', opts=OPTS, input='cMotionTrail.cxx') + TargetAdd('p3motiontrail_config_motiontrail.obj', opts=OPTS, input='config_motiontrail.cxx') - OPTS=['DIR:direct/src/motiontrail'] - IGATEFILES=GetDirectoryContents('direct/src/motiontrail', ["*.h", "cMotionTrail.cxx"]) - TargetAdd('libp3motiontrail.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3motiontrail.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3motiontrail', 'SRCDIR:direct/src/motiontrail']) + OPTS=['DIR:direct/src/motiontrail'] + IGATEFILES=GetDirectoryContents('direct/src/motiontrail', ["*.h", "cMotionTrail.cxx"]) + TargetAdd('libp3motiontrail.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3motiontrail.in', opts=['IMOD:panda3d.direct', 'ILIB:libp3motiontrail', 'SRCDIR:direct/src/motiontrail']) # # DIRECTORY: direct/metalibs/direct/ # -if (PkgSkip("DIRECT")==0): - TargetAdd('libp3direct.dll', input='p3directbase_directbase.obj') - TargetAdd('libp3direct.dll', input='p3dcparser_composite1.obj') - TargetAdd('libp3direct.dll', input='p3dcparser_composite2.obj') - TargetAdd('libp3direct.dll', input='p3dcparser_dcParser.obj') - TargetAdd('libp3direct.dll', input='p3dcparser_dcLexer.obj') - TargetAdd('libp3direct.dll', input='p3showbase_showBase.obj') - if GetTarget() == 'darwin': - TargetAdd('libp3direct.dll', input='p3showbase_showBase_assist.obj') - TargetAdd('libp3direct.dll', input='p3deadrec_composite1.obj') - TargetAdd('libp3direct.dll', input='p3distributed_config_distributed.obj') - TargetAdd('libp3direct.dll', input='p3interval_composite1.obj') - TargetAdd('libp3direct.dll', input='p3motiontrail_config_motiontrail.obj') - TargetAdd('libp3direct.dll', input='p3motiontrail_cMotionTrail.obj') - TargetAdd('libp3direct.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3direct.dll', opts=['ADVAPI', 'WINUSER', 'WINGDI']) +if not PkgSkip("DIRECT"): + TargetAdd('libp3direct.dll', input='p3directbase_directbase.obj') + TargetAdd('libp3direct.dll', input='p3dcparser_composite1.obj') + TargetAdd('libp3direct.dll', input='p3dcparser_composite2.obj') + TargetAdd('libp3direct.dll', input='p3dcparser_dcParser.obj') + TargetAdd('libp3direct.dll', input='p3dcparser_dcLexer.obj') + TargetAdd('libp3direct.dll', input='p3showbase_showBase.obj') + if GetTarget() == 'darwin': + TargetAdd('libp3direct.dll', input='p3showbase_showBase_assist.obj') + TargetAdd('libp3direct.dll', input='p3deadrec_composite1.obj') + TargetAdd('libp3direct.dll', input='p3distributed_config_distributed.obj') + TargetAdd('libp3direct.dll', input='p3interval_composite1.obj') + TargetAdd('libp3direct.dll', input='p3motiontrail_config_motiontrail.obj') + TargetAdd('libp3direct.dll', input='p3motiontrail_cMotionTrail.obj') + TargetAdd('libp3direct.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3direct.dll', opts=['ADVAPI', 'WINUSER', 'WINGDI']) - PyTargetAdd('direct_module.obj', input='libp3dcparser.in') - PyTargetAdd('direct_module.obj', input='libp3showbase.in') - PyTargetAdd('direct_module.obj', input='libp3deadrec.in') - PyTargetAdd('direct_module.obj', input='libp3interval.in') - PyTargetAdd('direct_module.obj', input='libp3distributed.in') - PyTargetAdd('direct_module.obj', input='libp3motiontrail.in') - PyTargetAdd('direct_module.obj', opts=['IMOD:panda3d.direct', 'ILIB:direct', 'IMPORT:panda3d.core']) + PyTargetAdd('direct_module.obj', input='libp3dcparser.in') + PyTargetAdd('direct_module.obj', input='libp3showbase.in') + PyTargetAdd('direct_module.obj', input='libp3deadrec.in') + PyTargetAdd('direct_module.obj', input='libp3interval.in') + PyTargetAdd('direct_module.obj', input='libp3distributed.in') + PyTargetAdd('direct_module.obj', input='libp3motiontrail.in') + PyTargetAdd('direct_module.obj', opts=['IMOD:panda3d.direct', 'ILIB:direct', 'IMPORT:panda3d.core']) - PyTargetAdd('direct.pyd', input='libp3dcparser_igate.obj') - PyTargetAdd('direct.pyd', input='libp3showbase_igate.obj') - PyTargetAdd('direct.pyd', input='libp3deadrec_igate.obj') - PyTargetAdd('direct.pyd', input='libp3interval_igate.obj') - PyTargetAdd('direct.pyd', input='libp3distributed_igate.obj') - PyTargetAdd('direct.pyd', input='libp3motiontrail_igate.obj') + PyTargetAdd('direct.pyd', input='libp3dcparser_igate.obj') + PyTargetAdd('direct.pyd', input='libp3showbase_igate.obj') + PyTargetAdd('direct.pyd', input='libp3deadrec_igate.obj') + PyTargetAdd('direct.pyd', input='libp3interval_igate.obj') + PyTargetAdd('direct.pyd', input='libp3distributed_igate.obj') + PyTargetAdd('direct.pyd', input='libp3motiontrail_igate.obj') - # These are part of direct.pyd, not libp3direct.dll, because they rely on - # the Python libraries. If a C++ user needs these modules, we can move them - # back and filter out the Python-specific code. - PyTargetAdd('direct.pyd', input='p3dcparser_ext_composite.obj') - PyTargetAdd('direct.pyd', input='p3distributed_cConnectionRepository.obj') - PyTargetAdd('direct.pyd', input='p3distributed_cDistributedSmoothNodeBase.obj') + # These are part of direct.pyd, not libp3direct.dll, because they rely on + # the Python libraries. If a C++ user needs these modules, we can move them + # back and filter out the Python-specific code. + PyTargetAdd('direct.pyd', input='p3dcparser_ext_composite.obj') + PyTargetAdd('direct.pyd', input='p3distributed_cConnectionRepository.obj') + PyTargetAdd('direct.pyd', input='p3distributed_cDistributedSmoothNodeBase.obj') - PyTargetAdd('direct.pyd', input='direct_module.obj') - PyTargetAdd('direct.pyd', input='libp3direct.dll') - PyTargetAdd('direct.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('direct.pyd', input=COMMON_PANDA_LIBS) - PyTargetAdd('direct.pyd', opts=['WINUSER', 'WINGDI', 'WINSOCK2']) + PyTargetAdd('direct.pyd', input='direct_module.obj') + PyTargetAdd('direct.pyd', input='libp3direct.dll') + PyTargetAdd('direct.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('direct.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('direct.pyd', opts=['WINUSER', 'WINGDI', 'WINSOCK2']) # # DIRECTORY: direct/src/dcparse/ # -if (PkgSkip("DIRECT")==0): - OPTS=['DIR:direct/src/dcparse', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'ADVAPI'] - TargetAdd('dcparse_dcparse.obj', opts=OPTS, input='dcparse.cxx') - TargetAdd('p3dcparse.exe', input='dcparse_dcparse.obj') - TargetAdd('p3dcparse.exe', input='libp3direct.dll') - TargetAdd('p3dcparse.exe', input=COMMON_PANDA_LIBS) - TargetAdd('p3dcparse.exe', opts=['ADVAPI']) +if not PkgSkip("DIRECT"): + OPTS=['DIR:direct/src/dcparse', 'DIR:direct/src/dcparser', 'WITHINPANDA', 'ADVAPI'] + TargetAdd('dcparse_dcparse.obj', opts=OPTS, input='dcparse.cxx') + TargetAdd('p3dcparse.exe', input='dcparse_dcparse.obj') + TargetAdd('p3dcparse.exe', input='libp3direct.dll') + TargetAdd('p3dcparse.exe', input=COMMON_PANDA_LIBS) + TargetAdd('p3dcparse.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/pandatoolbase/ # -if (PkgSkip("PANDATOOL")==0): - OPTS=['DIR:pandatool/src/pandatoolbase'] - TargetAdd('p3pandatoolbase_composite1.obj', opts=OPTS, input='p3pandatoolbase_composite1.cxx') - TargetAdd('libp3pandatoolbase.lib', input='p3pandatoolbase_composite1.obj') +if not PkgSkip("PANDATOOL"): + OPTS=['DIR:pandatool/src/pandatoolbase'] + TargetAdd('p3pandatoolbase_composite1.obj', opts=OPTS, input='p3pandatoolbase_composite1.cxx') + TargetAdd('libp3pandatoolbase.lib', input='p3pandatoolbase_composite1.obj') # # DIRECTORY: pandatool/src/converter/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/converter'] - TargetAdd('p3converter_somethingToEggConverter.obj', opts=OPTS, input='somethingToEggConverter.cxx') - TargetAdd('p3converter_eggToSomethingConverter.obj', opts=OPTS, input='eggToSomethingConverter.cxx') - TargetAdd('libp3converter.lib', input='p3converter_somethingToEggConverter.obj') - TargetAdd('libp3converter.lib', input='p3converter_eggToSomethingConverter.obj') + OPTS=['DIR:pandatool/src/converter'] + TargetAdd('p3converter_somethingToEggConverter.obj', opts=OPTS, input='somethingToEggConverter.cxx') + TargetAdd('p3converter_eggToSomethingConverter.obj', opts=OPTS, input='eggToSomethingConverter.cxx') + TargetAdd('libp3converter.lib', input='p3converter_somethingToEggConverter.obj') + TargetAdd('libp3converter.lib', input='p3converter_eggToSomethingConverter.obj') # # DIRECTORY: pandatool/src/progbase/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/progbase', 'ZLIB'] - TargetAdd('p3progbase_composite1.obj', opts=OPTS, input='p3progbase_composite1.cxx') - TargetAdd('libp3progbase.lib', input='p3progbase_composite1.obj') + OPTS=['DIR:pandatool/src/progbase', 'ZLIB'] + TargetAdd('p3progbase_composite1.obj', opts=OPTS, input='p3progbase_composite1.cxx') + TargetAdd('libp3progbase.lib', input='p3progbase_composite1.obj') # # DIRECTORY: pandatool/src/eggbase/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/eggbase'] - TargetAdd('p3eggbase_composite1.obj', opts=OPTS, input='p3eggbase_composite1.cxx') - TargetAdd('libp3eggbase.lib', input='p3eggbase_composite1.obj') + OPTS=['DIR:pandatool/src/eggbase'] + TargetAdd('p3eggbase_composite1.obj', opts=OPTS, input='p3eggbase_composite1.cxx') + TargetAdd('libp3eggbase.lib', input='p3eggbase_composite1.obj') # # DIRECTORY: pandatool/src/bam/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/bam'] - TargetAdd('bam-info_bamInfo.obj', opts=OPTS, input='bamInfo.cxx') - TargetAdd('bam-info.exe', input='bam-info_bamInfo.obj') - TargetAdd('bam-info.exe', input='libp3progbase.lib') - TargetAdd('bam-info.exe', input='libp3pandatoolbase.lib') - TargetAdd('bam-info.exe', input=COMMON_PANDA_LIBS) - TargetAdd('bam-info.exe', opts=['ADVAPI', 'FFTW']) + OPTS=['DIR:pandatool/src/bam'] + TargetAdd('bam-info_bamInfo.obj', opts=OPTS, input='bamInfo.cxx') + TargetAdd('bam-info.exe', input='bam-info_bamInfo.obj') + TargetAdd('bam-info.exe', input='libp3progbase.lib') + TargetAdd('bam-info.exe', input='libp3pandatoolbase.lib') + TargetAdd('bam-info.exe', input=COMMON_PANDA_LIBS) + TargetAdd('bam-info.exe', opts=['ADVAPI', 'FFTW']) - if not PkgSkip("EGG"): - TargetAdd('bam2egg_bamToEgg.obj', opts=OPTS, input='bamToEgg.cxx') - TargetAdd('bam2egg.exe', input='bam2egg_bamToEgg.obj') - TargetAdd('bam2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('bam2egg.exe', opts=['ADVAPI', 'FFTW']) + if not PkgSkip("EGG"): + TargetAdd('bam2egg_bamToEgg.obj', opts=OPTS, input='bamToEgg.cxx') + TargetAdd('bam2egg.exe', input='bam2egg_bamToEgg.obj') + TargetAdd('bam2egg.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('bam2egg.exe', opts=['ADVAPI', 'FFTW']) - TargetAdd('egg2bam_eggToBam.obj', opts=OPTS, input='eggToBam.cxx') - TargetAdd('egg2bam.exe', input='egg2bam_eggToBam.obj') - TargetAdd('egg2bam.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg2bam.exe', opts=['ADVAPI', 'FFTW']) + TargetAdd('egg2bam_eggToBam.obj', opts=OPTS, input='eggToBam.cxx') + TargetAdd('egg2bam.exe', input='egg2bam_eggToBam.obj') + TargetAdd('egg2bam.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg2bam.exe', opts=['ADVAPI', 'FFTW']) # # DIRECTORY: pandatool/src/daeegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("FCOLLADA") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/daeegg', 'FCOLLADA'] - TargetAdd('p3daeegg_composite1.obj', opts=OPTS, input='p3daeegg_composite1.cxx') - TargetAdd('libp3daeegg.lib', input='p3daeegg_composite1.obj') - TargetAdd('libp3daeegg.lib', opts=['FCOLLADA', 'CARBON']) + OPTS=['DIR:pandatool/src/daeegg', 'FCOLLADA'] + TargetAdd('p3daeegg_composite1.obj', opts=OPTS, input='p3daeegg_composite1.cxx') + TargetAdd('libp3daeegg.lib', input='p3daeegg_composite1.obj') + TargetAdd('libp3daeegg.lib', opts=['FCOLLADA', 'CARBON']) # # DIRECTORY: pandatool/src/assimp # if not PkgSkip("PANDATOOL") and not PkgSkip("ASSIMP"): - OPTS=['DIR:pandatool/src/assimp', 'BUILDING:ASSIMP', 'ASSIMP', 'MODULE'] - TargetAdd('p3assimp_composite1.obj', opts=OPTS, input='p3assimp_composite1.cxx') - TargetAdd('libp3assimp.dll', input='p3assimp_composite1.obj') - TargetAdd('libp3assimp.dll', input=COMMON_PANDA_LIBS) - TargetAdd('libp3assimp.dll', opts=OPTS+['ZLIB', 'ADVAPI']) + OPTS=['DIR:pandatool/src/assimp', 'BUILDING:ASSIMP', 'ASSIMP', 'MODULE'] + TargetAdd('p3assimp_composite1.obj', opts=OPTS, input='p3assimp_composite1.cxx') + TargetAdd('libp3assimp.dll', input='p3assimp_composite1.obj') + TargetAdd('libp3assimp.dll', input=COMMON_PANDA_LIBS) + TargetAdd('libp3assimp.dll', opts=OPTS+['ZLIB', 'ADVAPI']) # # DIRECTORY: pandatool/src/daeprogs/ # if not PkgSkip("PANDATOOL") and not PkgSkip("FCOLLADA") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/daeprogs', 'FCOLLADA'] - TargetAdd('dae2egg_daeToEgg.obj', opts=OPTS, input='daeToEgg.cxx') - TargetAdd('dae2egg.exe', input='dae2egg_daeToEgg.obj') - TargetAdd('dae2egg.exe', input='libp3daeegg.lib') - TargetAdd('dae2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('dae2egg.exe', opts=['WINUSER', 'FCOLLADA', 'CARBON']) + OPTS=['DIR:pandatool/src/daeprogs', 'FCOLLADA'] + TargetAdd('dae2egg_daeToEgg.obj', opts=OPTS, input='daeToEgg.cxx') + TargetAdd('dae2egg.exe', input='dae2egg_daeToEgg.obj') + TargetAdd('dae2egg.exe', input='libp3daeegg.lib') + TargetAdd('dae2egg.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('dae2egg.exe', opts=['WINUSER', 'FCOLLADA', 'CARBON']) # # DIRECTORY: pandatool/src/dxf/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/dxf'] - TargetAdd('p3dxf_composite1.obj', opts=OPTS, input='p3dxf_composite1.cxx') - TargetAdd('libp3dxf.lib', input='p3dxf_composite1.obj') + OPTS=['DIR:pandatool/src/dxf'] + TargetAdd('p3dxf_composite1.obj', opts=OPTS, input='p3dxf_composite1.cxx') + TargetAdd('libp3dxf.lib', input='p3dxf_composite1.obj') # # DIRECTORY: pandatool/src/dxfegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/dxfegg'] - TargetAdd('p3dxfegg_dxfToEggConverter.obj', opts=OPTS, input='dxfToEggConverter.cxx') - TargetAdd('p3dxfegg_dxfToEggLayer.obj', opts=OPTS, input='dxfToEggLayer.cxx') - TargetAdd('libp3dxfegg.lib', input='p3dxfegg_dxfToEggConverter.obj') - TargetAdd('libp3dxfegg.lib', input='p3dxfegg_dxfToEggLayer.obj') + OPTS=['DIR:pandatool/src/dxfegg'] + TargetAdd('p3dxfegg_dxfToEggConverter.obj', opts=OPTS, input='dxfToEggConverter.cxx') + TargetAdd('p3dxfegg_dxfToEggLayer.obj', opts=OPTS, input='dxfToEggLayer.cxx') + TargetAdd('libp3dxfegg.lib', input='p3dxfegg_dxfToEggConverter.obj') + TargetAdd('libp3dxfegg.lib', input='p3dxfegg_dxfToEggLayer.obj') # # DIRECTORY: pandatool/src/dxfprogs/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/dxfprogs'] - TargetAdd('dxf-points_dxfPoints.obj', opts=OPTS, input='dxfPoints.cxx') - TargetAdd('dxf-points.exe', input='dxf-points_dxfPoints.obj') - TargetAdd('dxf-points.exe', input='libp3progbase.lib') - TargetAdd('dxf-points.exe', input='libp3dxf.lib') - TargetAdd('dxf-points.exe', input='libp3pandatoolbase.lib') - TargetAdd('dxf-points.exe', input=COMMON_PANDA_LIBS) - TargetAdd('dxf-points.exe', opts=['ADVAPI', 'FFTW']) + OPTS=['DIR:pandatool/src/dxfprogs'] + TargetAdd('dxf-points_dxfPoints.obj', opts=OPTS, input='dxfPoints.cxx') + TargetAdd('dxf-points.exe', input='dxf-points_dxfPoints.obj') + TargetAdd('dxf-points.exe', input='libp3progbase.lib') + TargetAdd('dxf-points.exe', input='libp3dxf.lib') + TargetAdd('dxf-points.exe', input='libp3pandatoolbase.lib') + TargetAdd('dxf-points.exe', input=COMMON_PANDA_LIBS) + TargetAdd('dxf-points.exe', opts=['ADVAPI', 'FFTW']) - if not PkgSkip("EGG"): - TargetAdd('dxf2egg_dxfToEgg.obj', opts=OPTS, input='dxfToEgg.cxx') - TargetAdd('dxf2egg.exe', input='dxf2egg_dxfToEgg.obj') - TargetAdd('dxf2egg.exe', input='libp3dxfegg.lib') - TargetAdd('dxf2egg.exe', input='libp3dxf.lib') - TargetAdd('dxf2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('dxf2egg.exe', opts=['ADVAPI', 'FFTW']) + if not PkgSkip("EGG"): + TargetAdd('dxf2egg_dxfToEgg.obj', opts=OPTS, input='dxfToEgg.cxx') + TargetAdd('dxf2egg.exe', input='dxf2egg_dxfToEgg.obj') + TargetAdd('dxf2egg.exe', input='libp3dxfegg.lib') + TargetAdd('dxf2egg.exe', input='libp3dxf.lib') + TargetAdd('dxf2egg.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('dxf2egg.exe', opts=['ADVAPI', 'FFTW']) - TargetAdd('egg2dxf_eggToDXF.obj', opts=OPTS, input='eggToDXF.cxx') - TargetAdd('egg2dxf_eggToDXFLayer.obj', opts=OPTS, input='eggToDXFLayer.cxx') - TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXF.obj') - TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXFLayer.obj') - TargetAdd('egg2dxf.exe', input='libp3dxf.lib') - TargetAdd('egg2dxf.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg2dxf.exe', opts=['ADVAPI', 'FFTW']) + TargetAdd('egg2dxf_eggToDXF.obj', opts=OPTS, input='eggToDXF.cxx') + TargetAdd('egg2dxf_eggToDXFLayer.obj', opts=OPTS, input='eggToDXFLayer.cxx') + TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXF.obj') + TargetAdd('egg2dxf.exe', input='egg2dxf_eggToDXFLayer.obj') + TargetAdd('egg2dxf.exe', input='libp3dxf.lib') + TargetAdd('egg2dxf.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg2dxf.exe', opts=['ADVAPI', 'FFTW']) # # DIRECTORY: pandatool/src/objegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/objegg'] - TargetAdd('p3objegg_objToEggConverter.obj', opts=OPTS, input='objToEggConverter.cxx') - TargetAdd('p3objegg_eggToObjConverter.obj', opts=OPTS, input='eggToObjConverter.cxx') - TargetAdd('p3objegg_config_objegg.obj', opts=OPTS, input='config_objegg.cxx') - TargetAdd('libp3objegg.lib', input='p3objegg_objToEggConverter.obj') - TargetAdd('libp3objegg.lib', input='p3objegg_eggToObjConverter.obj') - TargetAdd('libp3objegg.lib', input='p3objegg_config_objegg.obj') + OPTS=['DIR:pandatool/src/objegg'] + TargetAdd('p3objegg_objToEggConverter.obj', opts=OPTS, input='objToEggConverter.cxx') + TargetAdd('p3objegg_eggToObjConverter.obj', opts=OPTS, input='eggToObjConverter.cxx') + TargetAdd('p3objegg_config_objegg.obj', opts=OPTS, input='config_objegg.cxx') + TargetAdd('libp3objegg.lib', input='p3objegg_objToEggConverter.obj') + TargetAdd('libp3objegg.lib', input='p3objegg_eggToObjConverter.obj') + TargetAdd('libp3objegg.lib', input='p3objegg_config_objegg.obj') # # DIRECTORY: pandatool/src/objprogs/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/objprogs'] - TargetAdd('obj2egg_objToEgg.obj', opts=OPTS, input='objToEgg.cxx') - TargetAdd('obj2egg.exe', input='obj2egg_objToEgg.obj') - TargetAdd('obj2egg.exe', input='libp3objegg.lib') - TargetAdd('obj2egg.exe', input=COMMON_EGG2X_LIBS) + OPTS=['DIR:pandatool/src/objprogs'] + TargetAdd('obj2egg_objToEgg.obj', opts=OPTS, input='objToEgg.cxx') + TargetAdd('obj2egg.exe', input='obj2egg_objToEgg.obj') + TargetAdd('obj2egg.exe', input='libp3objegg.lib') + TargetAdd('obj2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg2obj_eggToObj.obj', opts=OPTS, input='eggToObj.cxx') - TargetAdd('egg2obj.exe', input='egg2obj_eggToObj.obj') - TargetAdd('egg2obj.exe', input='libp3objegg.lib') - TargetAdd('egg2obj.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg2obj_eggToObj.obj', opts=OPTS, input='eggToObj.cxx') + TargetAdd('egg2obj.exe', input='egg2obj_eggToObj.obj') + TargetAdd('egg2obj.exe', input='libp3objegg.lib') + TargetAdd('egg2obj.exe', input=COMMON_EGG2X_LIBS) # # DIRECTORY: pandatool/src/palettizer/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/palettizer'] - TargetAdd('p3palettizer_composite1.obj', opts=OPTS, input='p3palettizer_composite1.cxx') - TargetAdd('libp3palettizer.lib', input='p3palettizer_composite1.obj') + OPTS=['DIR:pandatool/src/palettizer'] + TargetAdd('p3palettizer_composite1.obj', opts=OPTS, input='p3palettizer_composite1.cxx') + TargetAdd('libp3palettizer.lib', input='p3palettizer_composite1.obj') # # DIRECTORY: pandatool/src/egg-mkfont/ # if not PkgSkip("FREETYPE") and not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/egg-mkfont', 'DIR:pandatool/src/palettizer', 'FREETYPE'] - TargetAdd('egg-mkfont_eggMakeFont.obj', opts=OPTS, input='eggMakeFont.cxx') - TargetAdd('egg-mkfont_rangeDescription.obj', opts=OPTS, input='rangeDescription.cxx') - TargetAdd('egg-mkfont_rangeIterator.obj', opts=OPTS, input='rangeIterator.cxx') - TargetAdd('egg-mkfont.exe', input='egg-mkfont_eggMakeFont.obj') - TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeDescription.obj') - TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeIterator.obj') - TargetAdd('egg-mkfont.exe', input='libp3palettizer.lib') - TargetAdd('egg-mkfont.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-mkfont.exe', opts=['ADVAPI', 'FREETYPE']) + OPTS=['DIR:pandatool/src/egg-mkfont', 'DIR:pandatool/src/palettizer', 'FREETYPE'] + TargetAdd('egg-mkfont_eggMakeFont.obj', opts=OPTS, input='eggMakeFont.cxx') + TargetAdd('egg-mkfont_rangeDescription.obj', opts=OPTS, input='rangeDescription.cxx') + TargetAdd('egg-mkfont_rangeIterator.obj', opts=OPTS, input='rangeIterator.cxx') + TargetAdd('egg-mkfont.exe', input='egg-mkfont_eggMakeFont.obj') + TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeDescription.obj') + TargetAdd('egg-mkfont.exe', input='egg-mkfont_rangeIterator.obj') + TargetAdd('egg-mkfont.exe', input='libp3palettizer.lib') + TargetAdd('egg-mkfont.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-mkfont.exe', opts=['ADVAPI', 'FREETYPE']) # # DIRECTORY: pandatool/src/eggcharbase/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/eggcharbase', 'ZLIB'] - TargetAdd('p3eggcharbase_composite1.obj', opts=OPTS, input='p3eggcharbase_composite1.cxx') - TargetAdd('libp3eggcharbase.lib', input='p3eggcharbase_composite1.obj') + OPTS=['DIR:pandatool/src/eggcharbase', 'ZLIB'] + TargetAdd('p3eggcharbase_composite1.obj', opts=OPTS, input='p3eggcharbase_composite1.cxx') + TargetAdd('libp3eggcharbase.lib', input='p3eggcharbase_composite1.obj') # # DIRECTORY: pandatool/src/egg-optchar/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/egg-optchar'] - TargetAdd('egg-optchar_config_egg_optchar.obj', opts=OPTS, input='config_egg_optchar.cxx') - TargetAdd('egg-optchar_eggOptchar.obj', opts=OPTS, input='eggOptchar.cxx') - TargetAdd('egg-optchar_eggOptcharUserData.obj', opts=OPTS, input='eggOptcharUserData.cxx') - TargetAdd('egg-optchar_vertexMembership.obj', opts=OPTS, input='vertexMembership.cxx') - TargetAdd('egg-optchar.exe', input='egg-optchar_config_egg_optchar.obj') - TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptchar.obj') - TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptcharUserData.obj') - TargetAdd('egg-optchar.exe', input='egg-optchar_vertexMembership.obj') - TargetAdd('egg-optchar.exe', input='libp3eggcharbase.lib') - TargetAdd('egg-optchar.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-optchar.exe', opts=['ADVAPI', 'FREETYPE']) + OPTS=['DIR:pandatool/src/egg-optchar'] + TargetAdd('egg-optchar_config_egg_optchar.obj', opts=OPTS, input='config_egg_optchar.cxx') + TargetAdd('egg-optchar_eggOptchar.obj', opts=OPTS, input='eggOptchar.cxx') + TargetAdd('egg-optchar_eggOptcharUserData.obj', opts=OPTS, input='eggOptcharUserData.cxx') + TargetAdd('egg-optchar_vertexMembership.obj', opts=OPTS, input='vertexMembership.cxx') + TargetAdd('egg-optchar.exe', input='egg-optchar_config_egg_optchar.obj') + TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptchar.obj') + TargetAdd('egg-optchar.exe', input='egg-optchar_eggOptcharUserData.obj') + TargetAdd('egg-optchar.exe', input='egg-optchar_vertexMembership.obj') + TargetAdd('egg-optchar.exe', input='libp3eggcharbase.lib') + TargetAdd('egg-optchar.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-optchar.exe', opts=['ADVAPI', 'FREETYPE']) # # DIRECTORY: pandatool/src/egg-palettize/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/egg-palettize', 'DIR:pandatool/src/palettizer'] - TargetAdd('egg-palettize_eggPalettize.obj', opts=OPTS, input='eggPalettize.cxx') - TargetAdd('egg-palettize.exe', input='egg-palettize_eggPalettize.obj') - TargetAdd('egg-palettize.exe', input='libp3palettizer.lib') - TargetAdd('egg-palettize.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-palettize.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/egg-palettize', 'DIR:pandatool/src/palettizer'] + TargetAdd('egg-palettize_eggPalettize.obj', opts=OPTS, input='eggPalettize.cxx') + TargetAdd('egg-palettize.exe', input='egg-palettize_eggPalettize.obj') + TargetAdd('egg-palettize.exe', input='libp3palettizer.lib') + TargetAdd('egg-palettize.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-palettize.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/egg-qtess/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/egg-qtess'] - TargetAdd('egg-qtess_composite1.obj', opts=OPTS, input='egg-qtess_composite1.cxx') - TargetAdd('egg-qtess.exe', input='egg-qtess_composite1.obj') - TargetAdd('egg-qtess.exe', input='libp3eggbase.lib') - TargetAdd('egg-qtess.exe', input='libp3progbase.lib') - TargetAdd('egg-qtess.exe', input='libp3converter.lib') - TargetAdd('egg-qtess.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-qtess.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/egg-qtess'] + TargetAdd('egg-qtess_composite1.obj', opts=OPTS, input='egg-qtess_composite1.cxx') + TargetAdd('egg-qtess.exe', input='egg-qtess_composite1.obj') + TargetAdd('egg-qtess.exe', input='libp3eggbase.lib') + TargetAdd('egg-qtess.exe', input='libp3progbase.lib') + TargetAdd('egg-qtess.exe', input='libp3converter.lib') + TargetAdd('egg-qtess.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-qtess.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/eggprogs/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/eggprogs'] - TargetAdd('egg-crop_eggCrop.obj', opts=OPTS, input='eggCrop.cxx') - TargetAdd('egg-crop.exe', input='egg-crop_eggCrop.obj') - TargetAdd('egg-crop.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-crop.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/eggprogs'] + TargetAdd('egg-crop_eggCrop.obj', opts=OPTS, input='eggCrop.cxx') + TargetAdd('egg-crop.exe', input='egg-crop_eggCrop.obj') + TargetAdd('egg-crop.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-crop.exe', opts=['ADVAPI']) - TargetAdd('egg-make-tube_eggMakeTube.obj', opts=OPTS, input='eggMakeTube.cxx') - TargetAdd('egg-make-tube.exe', input='egg-make-tube_eggMakeTube.obj') - TargetAdd('egg-make-tube.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-make-tube.exe', opts=['ADVAPI']) + TargetAdd('egg-make-tube_eggMakeTube.obj', opts=OPTS, input='eggMakeTube.cxx') + TargetAdd('egg-make-tube.exe', input='egg-make-tube_eggMakeTube.obj') + TargetAdd('egg-make-tube.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-make-tube.exe', opts=['ADVAPI']) - TargetAdd('egg-texture-cards_eggTextureCards.obj', opts=OPTS, input='eggTextureCards.cxx') - TargetAdd('egg-texture-cards.exe', input='egg-texture-cards_eggTextureCards.obj') - TargetAdd('egg-texture-cards.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-texture-cards.exe', opts=['ADVAPI']) + TargetAdd('egg-texture-cards_eggTextureCards.obj', opts=OPTS, input='eggTextureCards.cxx') + TargetAdd('egg-texture-cards.exe', input='egg-texture-cards_eggTextureCards.obj') + TargetAdd('egg-texture-cards.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-texture-cards.exe', opts=['ADVAPI']) - TargetAdd('egg-topstrip_eggTopstrip.obj', opts=OPTS, input='eggTopstrip.cxx') - TargetAdd('egg-topstrip.exe', input='egg-topstrip_eggTopstrip.obj') - TargetAdd('egg-topstrip.exe', input='libp3eggcharbase.lib') - TargetAdd('egg-topstrip.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-topstrip.exe', opts=['ADVAPI']) + TargetAdd('egg-topstrip_eggTopstrip.obj', opts=OPTS, input='eggTopstrip.cxx') + TargetAdd('egg-topstrip.exe', input='egg-topstrip_eggTopstrip.obj') + TargetAdd('egg-topstrip.exe', input='libp3eggcharbase.lib') + TargetAdd('egg-topstrip.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-topstrip.exe', opts=['ADVAPI']) - TargetAdd('egg-trans_eggTrans.obj', opts=OPTS, input='eggTrans.cxx') - TargetAdd('egg-trans.exe', input='egg-trans_eggTrans.obj') - TargetAdd('egg-trans.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-trans.exe', opts=['ADVAPI']) + TargetAdd('egg-trans_eggTrans.obj', opts=OPTS, input='eggTrans.cxx') + TargetAdd('egg-trans.exe', input='egg-trans_eggTrans.obj') + TargetAdd('egg-trans.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-trans.exe', opts=['ADVAPI']) - TargetAdd('egg2c_eggToC.obj', opts=OPTS, input='eggToC.cxx') - TargetAdd('egg2c.exe', input='egg2c_eggToC.obj') - TargetAdd('egg2c.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg2c.exe', opts=['ADVAPI']) + TargetAdd('egg2c_eggToC.obj', opts=OPTS, input='eggToC.cxx') + TargetAdd('egg2c.exe', input='egg2c_eggToC.obj') + TargetAdd('egg2c.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg2c.exe', opts=['ADVAPI']) - TargetAdd('egg-rename_eggRename.obj', opts=OPTS, input='eggRename.cxx') - TargetAdd('egg-rename.exe', input='egg-rename_eggRename.obj') - TargetAdd('egg-rename.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-rename.exe', opts=['ADVAPI']) + TargetAdd('egg-rename_eggRename.obj', opts=OPTS, input='eggRename.cxx') + TargetAdd('egg-rename.exe', input='egg-rename_eggRename.obj') + TargetAdd('egg-rename.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-rename.exe', opts=['ADVAPI']) - TargetAdd('egg-retarget-anim_eggRetargetAnim.obj', opts=OPTS, input='eggRetargetAnim.cxx') - TargetAdd('egg-retarget-anim.exe', input='egg-retarget-anim_eggRetargetAnim.obj') - TargetAdd('egg-retarget-anim.exe', input='libp3eggcharbase.lib') - TargetAdd('egg-retarget-anim.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-retarget-anim.exe', opts=['ADVAPI']) + TargetAdd('egg-retarget-anim_eggRetargetAnim.obj', opts=OPTS, input='eggRetargetAnim.cxx') + TargetAdd('egg-retarget-anim.exe', input='egg-retarget-anim_eggRetargetAnim.obj') + TargetAdd('egg-retarget-anim.exe', input='libp3eggcharbase.lib') + TargetAdd('egg-retarget-anim.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-retarget-anim.exe', opts=['ADVAPI']) - TargetAdd('egg-list-textures_eggListTextures.obj', opts=OPTS, input='eggListTextures.cxx') - TargetAdd('egg-list-textures.exe', input='egg-list-textures_eggListTextures.obj') - TargetAdd('egg-list-textures.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg-list-textures.exe', opts=['ADVAPI']) + TargetAdd('egg-list-textures_eggListTextures.obj', opts=OPTS, input='eggListTextures.cxx') + TargetAdd('egg-list-textures.exe', input='egg-list-textures_eggListTextures.obj') + TargetAdd('egg-list-textures.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg-list-textures.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/flt/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/flt', 'ZLIB'] - TargetAdd('p3flt_composite1.obj', opts=OPTS, input='p3flt_composite1.cxx') - TargetAdd('libp3flt.lib', input=['p3flt_composite1.obj']) + OPTS=['DIR:pandatool/src/flt', 'ZLIB'] + TargetAdd('p3flt_composite1.obj', opts=OPTS, input='p3flt_composite1.cxx') + TargetAdd('libp3flt.lib', input=['p3flt_composite1.obj']) # # DIRECTORY: pandatool/src/fltegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/fltegg'] - TargetAdd('p3fltegg_fltToEggConverter.obj', opts=OPTS, input='fltToEggConverter.cxx') - TargetAdd('p3fltegg_fltToEggLevelState.obj', opts=OPTS, input='fltToEggLevelState.cxx') - TargetAdd('libp3fltegg.lib', input=['p3fltegg_fltToEggConverter.obj', 'p3fltegg_fltToEggLevelState.obj']) + OPTS=['DIR:pandatool/src/fltegg'] + TargetAdd('p3fltegg_fltToEggConverter.obj', opts=OPTS, input='fltToEggConverter.cxx') + TargetAdd('p3fltegg_fltToEggLevelState.obj', opts=OPTS, input='fltToEggLevelState.cxx') + TargetAdd('libp3fltegg.lib', input=['p3fltegg_fltToEggConverter.obj', 'p3fltegg_fltToEggLevelState.obj']) # # DIRECTORY: pandatool/src/fltprogs/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/fltprogs', 'DIR:pandatool/src/flt'] - TargetAdd('flt-info_fltInfo.obj', opts=OPTS, input='fltInfo.cxx') - TargetAdd('flt-info.exe', input='flt-info_fltInfo.obj') - TargetAdd('flt-info.exe', input='libp3flt.lib') - TargetAdd('flt-info.exe', input='libp3progbase.lib') - TargetAdd('flt-info.exe', input='libp3pandatoolbase.lib') - TargetAdd('flt-info.exe', input=COMMON_PANDA_LIBS) - TargetAdd('flt-info.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/fltprogs', 'DIR:pandatool/src/flt'] + TargetAdd('flt-info_fltInfo.obj', opts=OPTS, input='fltInfo.cxx') + TargetAdd('flt-info.exe', input='flt-info_fltInfo.obj') + TargetAdd('flt-info.exe', input='libp3flt.lib') + TargetAdd('flt-info.exe', input='libp3progbase.lib') + TargetAdd('flt-info.exe', input='libp3pandatoolbase.lib') + TargetAdd('flt-info.exe', input=COMMON_PANDA_LIBS) + TargetAdd('flt-info.exe', opts=['ADVAPI']) - TargetAdd('flt-trans_fltTrans.obj', opts=OPTS, input='fltTrans.cxx') - TargetAdd('flt-trans.exe', input='flt-trans_fltTrans.obj') - TargetAdd('flt-trans.exe', input='libp3flt.lib') - TargetAdd('flt-trans.exe', input='libp3progbase.lib') - TargetAdd('flt-trans.exe', input='libp3pandatoolbase.lib') - TargetAdd('flt-trans.exe', input=COMMON_PANDA_LIBS) - TargetAdd('flt-trans.exe', opts=['ADVAPI']) + TargetAdd('flt-trans_fltTrans.obj', opts=OPTS, input='fltTrans.cxx') + TargetAdd('flt-trans.exe', input='flt-trans_fltTrans.obj') + TargetAdd('flt-trans.exe', input='libp3flt.lib') + TargetAdd('flt-trans.exe', input='libp3progbase.lib') + TargetAdd('flt-trans.exe', input='libp3pandatoolbase.lib') + TargetAdd('flt-trans.exe', input=COMMON_PANDA_LIBS) + TargetAdd('flt-trans.exe', opts=['ADVAPI']) - if not PkgSkip("EGG"): - TargetAdd('egg2flt_eggToFlt.obj', opts=OPTS, input='eggToFlt.cxx') - TargetAdd('egg2flt.exe', input='egg2flt_eggToFlt.obj') - TargetAdd('egg2flt.exe', input='libp3flt.lib') - TargetAdd('egg2flt.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('egg2flt.exe', opts=['ADVAPI']) + if not PkgSkip("EGG"): + TargetAdd('egg2flt_eggToFlt.obj', opts=OPTS, input='eggToFlt.cxx') + TargetAdd('egg2flt.exe', input='egg2flt_eggToFlt.obj') + TargetAdd('egg2flt.exe', input='libp3flt.lib') + TargetAdd('egg2flt.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('egg2flt.exe', opts=['ADVAPI']) - TargetAdd('flt2egg_fltToEgg.obj', opts=OPTS, input='fltToEgg.cxx') - TargetAdd('flt2egg.exe', input='flt2egg_fltToEgg.obj') - TargetAdd('flt2egg.exe', input='libp3flt.lib') - TargetAdd('flt2egg.exe', input='libp3fltegg.lib') - TargetAdd('flt2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('flt2egg.exe', opts=['ADVAPI']) + TargetAdd('flt2egg_fltToEgg.obj', opts=OPTS, input='fltToEgg.cxx') + TargetAdd('flt2egg.exe', input='flt2egg_fltToEgg.obj') + TargetAdd('flt2egg.exe', input='libp3flt.lib') + TargetAdd('flt2egg.exe', input='libp3fltegg.lib') + TargetAdd('flt2egg.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('flt2egg.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/imagebase/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/imagebase'] - TargetAdd('p3imagebase_composite1.obj', opts=OPTS, input='p3imagebase_composite1.cxx') - TargetAdd('libp3imagebase.lib', input='p3imagebase_composite1.obj') + OPTS=['DIR:pandatool/src/imagebase'] + TargetAdd('p3imagebase_composite1.obj', opts=OPTS, input='p3imagebase_composite1.cxx') + TargetAdd('libp3imagebase.lib', input='p3imagebase_composite1.obj') # # DIRECTORY: pandatool/src/imageprogs/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/imageprogs'] - TargetAdd('image-info_imageInfo.obj', opts=OPTS, input='imageInfo.cxx') - TargetAdd('image-info.exe', input='image-info_imageInfo.obj') - TargetAdd('image-info.exe', input='libp3imagebase.lib') - TargetAdd('image-info.exe', input='libp3progbase.lib') - TargetAdd('image-info.exe', input='libp3pandatoolbase.lib') - TargetAdd('image-info.exe', input=COMMON_PANDA_LIBS) - TargetAdd('image-info.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/imageprogs'] + TargetAdd('image-info_imageInfo.obj', opts=OPTS, input='imageInfo.cxx') + TargetAdd('image-info.exe', input='image-info_imageInfo.obj') + TargetAdd('image-info.exe', input='libp3imagebase.lib') + TargetAdd('image-info.exe', input='libp3progbase.lib') + TargetAdd('image-info.exe', input='libp3pandatoolbase.lib') + TargetAdd('image-info.exe', input=COMMON_PANDA_LIBS) + TargetAdd('image-info.exe', opts=['ADVAPI']) - TargetAdd('image-resize_imageResize.obj', opts=OPTS, input='imageResize.cxx') - TargetAdd('image-resize.exe', input='image-resize_imageResize.obj') - TargetAdd('image-resize.exe', input='libp3imagebase.lib') - TargetAdd('image-resize.exe', input='libp3progbase.lib') - TargetAdd('image-resize.exe', input='libp3pandatoolbase.lib') - TargetAdd('image-resize.exe', input=COMMON_PANDA_LIBS) - TargetAdd('image-resize.exe', opts=['ADVAPI']) + TargetAdd('image-resize_imageResize.obj', opts=OPTS, input='imageResize.cxx') + TargetAdd('image-resize.exe', input='image-resize_imageResize.obj') + TargetAdd('image-resize.exe', input='libp3imagebase.lib') + TargetAdd('image-resize.exe', input='libp3progbase.lib') + TargetAdd('image-resize.exe', input='libp3pandatoolbase.lib') + TargetAdd('image-resize.exe', input=COMMON_PANDA_LIBS) + TargetAdd('image-resize.exe', opts=['ADVAPI']) - TargetAdd('image-trans_imageTrans.obj', opts=OPTS, input='imageTrans.cxx') - TargetAdd('image-trans.exe', input='image-trans_imageTrans.obj') - TargetAdd('image-trans.exe', input='libp3imagebase.lib') - TargetAdd('image-trans.exe', input='libp3progbase.lib') - TargetAdd('image-trans.exe', input='libp3pandatoolbase.lib') - TargetAdd('image-trans.exe', input=COMMON_PANDA_LIBS) - TargetAdd('image-trans.exe', opts=['ADVAPI']) + TargetAdd('image-trans_imageTrans.obj', opts=OPTS, input='imageTrans.cxx') + TargetAdd('image-trans.exe', input='image-trans_imageTrans.obj') + TargetAdd('image-trans.exe', input='libp3imagebase.lib') + TargetAdd('image-trans.exe', input='libp3progbase.lib') + TargetAdd('image-trans.exe', input='libp3pandatoolbase.lib') + TargetAdd('image-trans.exe', input=COMMON_PANDA_LIBS) + TargetAdd('image-trans.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/pfmprogs/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/pfmprogs'] - TargetAdd('pfm-trans_pfmTrans.obj', opts=OPTS, input='pfmTrans.cxx') - TargetAdd('pfm-trans.exe', input='pfm-trans_pfmTrans.obj') - TargetAdd('pfm-trans.exe', input='libp3progbase.lib') - TargetAdd('pfm-trans.exe', input='libp3pandatoolbase.lib') - TargetAdd('pfm-trans.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pfm-trans.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/pfmprogs'] + TargetAdd('pfm-trans_pfmTrans.obj', opts=OPTS, input='pfmTrans.cxx') + TargetAdd('pfm-trans.exe', input='pfm-trans_pfmTrans.obj') + TargetAdd('pfm-trans.exe', input='libp3progbase.lib') + TargetAdd('pfm-trans.exe', input='libp3pandatoolbase.lib') + TargetAdd('pfm-trans.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pfm-trans.exe', opts=['ADVAPI']) - TargetAdd('pfm-bba_pfmBba.obj', opts=OPTS, input='pfmBba.cxx') - TargetAdd('pfm-bba_config_pfmprogs.obj', opts=OPTS, input='config_pfmprogs.cxx') - TargetAdd('pfm-bba.exe', input='pfm-bba_pfmBba.obj') - TargetAdd('pfm-bba.exe', input='pfm-bba_config_pfmprogs.obj') - TargetAdd('pfm-bba.exe', input='libp3progbase.lib') - TargetAdd('pfm-bba.exe', input='libp3pandatoolbase.lib') - TargetAdd('pfm-bba.exe', input=COMMON_PANDA_LIBS) - TargetAdd('pfm-bba.exe', opts=['ADVAPI']) + TargetAdd('pfm-bba_pfmBba.obj', opts=OPTS, input='pfmBba.cxx') + TargetAdd('pfm-bba_config_pfmprogs.obj', opts=OPTS, input='config_pfmprogs.cxx') + TargetAdd('pfm-bba.exe', input='pfm-bba_pfmBba.obj') + TargetAdd('pfm-bba.exe', input='pfm-bba_config_pfmprogs.obj') + TargetAdd('pfm-bba.exe', input='libp3progbase.lib') + TargetAdd('pfm-bba.exe', input='libp3pandatoolbase.lib') + TargetAdd('pfm-bba.exe', input=COMMON_PANDA_LIBS) + TargetAdd('pfm-bba.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/lwo/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/lwo'] - TargetAdd('p3lwo_composite1.obj', opts=OPTS, input='p3lwo_composite1.cxx') - TargetAdd('libp3lwo.lib', input='p3lwo_composite1.obj') + OPTS=['DIR:pandatool/src/lwo'] + TargetAdd('p3lwo_composite1.obj', opts=OPTS, input='p3lwo_composite1.cxx') + TargetAdd('libp3lwo.lib', input='p3lwo_composite1.obj') # # DIRECTORY: pandatool/src/lwoegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/lwoegg'] - TargetAdd('p3lwoegg_composite1.obj', opts=OPTS, input='p3lwoegg_composite1.cxx') - TargetAdd('libp3lwoegg.lib', input='p3lwoegg_composite1.obj') + OPTS=['DIR:pandatool/src/lwoegg'] + TargetAdd('p3lwoegg_composite1.obj', opts=OPTS, input='p3lwoegg_composite1.cxx') + TargetAdd('libp3lwoegg.lib', input='p3lwoegg_composite1.obj') # # DIRECTORY: pandatool/src/lwoprogs/ # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/lwoprogs', 'DIR:pandatool/src/lwo'] - TargetAdd('lwo-scan_lwoScan.obj', opts=OPTS, input='lwoScan.cxx') - TargetAdd('lwo-scan.exe', input='lwo-scan_lwoScan.obj') - TargetAdd('lwo-scan.exe', input='libp3lwo.lib') - TargetAdd('lwo-scan.exe', input='libp3progbase.lib') - TargetAdd('lwo-scan.exe', input='libp3pandatoolbase.lib') - TargetAdd('lwo-scan.exe', input=COMMON_PANDA_LIBS) - TargetAdd('lwo-scan.exe', opts=['ADVAPI']) + OPTS=['DIR:pandatool/src/lwoprogs', 'DIR:pandatool/src/lwo'] + TargetAdd('lwo-scan_lwoScan.obj', opts=OPTS, input='lwoScan.cxx') + TargetAdd('lwo-scan.exe', input='lwo-scan_lwoScan.obj') + TargetAdd('lwo-scan.exe', input='libp3lwo.lib') + TargetAdd('lwo-scan.exe', input='libp3progbase.lib') + TargetAdd('lwo-scan.exe', input='libp3pandatoolbase.lib') + TargetAdd('lwo-scan.exe', input=COMMON_PANDA_LIBS) + TargetAdd('lwo-scan.exe', opts=['ADVAPI']) - if not PkgSkip("EGG"): - TargetAdd('lwo2egg_lwoToEgg.obj', opts=OPTS, input='lwoToEgg.cxx') - TargetAdd('lwo2egg.exe', input='lwo2egg_lwoToEgg.obj') - TargetAdd('lwo2egg.exe', input='libp3lwo.lib') - TargetAdd('lwo2egg.exe', input='libp3lwoegg.lib') - TargetAdd('lwo2egg.exe', input=COMMON_EGG2X_LIBS) - TargetAdd('lwo2egg.exe', opts=['ADVAPI']) + if not PkgSkip("EGG"): + TargetAdd('lwo2egg_lwoToEgg.obj', opts=OPTS, input='lwoToEgg.cxx') + TargetAdd('lwo2egg.exe', input='lwo2egg_lwoToEgg.obj') + TargetAdd('lwo2egg.exe', input='libp3lwo.lib') + TargetAdd('lwo2egg.exe', input='libp3lwoegg.lib') + TargetAdd('lwo2egg.exe', input=COMMON_EGG2X_LIBS) + TargetAdd('lwo2egg.exe', opts=['ADVAPI']) # # DIRECTORY: pandatool/src/maya/ # for VER in MAYAVERSIONS: - VNUM=VER[4:] - if not PkgSkip(VER) and not PkgSkip("PANDATOOL"): + VNUM = VER[4:] + if PkgSkip(VER) or PkgSkip("PANDATOOL"): + continue + OPTS=['DIR:pandatool/src/maya', VER] TargetAdd('maya'+VNUM+'_composite1.obj', opts=OPTS, input='p3maya_composite1.cxx') TargetAdd('libmaya'+VNUM+'.lib', input='maya'+VNUM+'_composite1.obj') @@ -5519,8 +5524,10 @@ for VER in MAYAVERSIONS: # for VER in MAYAVERSIONS: - VNUM=VER[4:] - if not PkgSkip(VER) and not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): + VNUM = VER[4:] + if PkgSkip(VER) or PkgSkip("PANDATOOL") or PkgSkip("EGG"): + continue + OPTS=['DIR:pandatool/src/mayaegg', 'DIR:pandatool/src/maya', VER] TargetAdd('mayaegg'+VNUM+'_loader.obj', opts=OPTS, input='mayaEggLoader.cxx') TargetAdd('mayaegg'+VNUM+'_composite1.obj', opts=OPTS, input='p3mayaegg_composite1.cxx') @@ -5532,8 +5539,10 @@ for VER in MAYAVERSIONS: # for VER in MAXVERSIONS: - VNUM=VER[3:] - if not PkgSkip(VER) and not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): + VNUM = VER[3:] + if PkgSkip(VER) or PkgSkip("PANDATOOL") or PkgSkip("EGG"): + continue + OPTS=['DIR:pandatool/src/maxegg', VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE", "RTTI"] TargetAdd('maxEgg'+VNUM+'.res', opts=OPTS, input='maxEgg.rc') TargetAdd('maxegg'+VNUM+'_loader.obj', opts=OPTS, input='maxEggLoader.cxx') @@ -5549,8 +5558,10 @@ for VER in MAXVERSIONS: # for VER in MAXVERSIONS: - VNUM=VER[3:] - if not PkgSkip(VER) and not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): + VNUM = VER[3:] + if PkgSkip(VER) or PkgSkip("PANDATOOL") or PkgSkip("EGG"): + continue + OPTS=['DIR:pandatool/src/maxprogs', VER, "WINCOMCTL", "WINCOMDLG", "WINUSER", "MSFORSCOPE", "RTTI"] TargetAdd('maxImportRes.res', opts=OPTS, input='maxImportRes.rc') TargetAdd('maxprogs'+VNUM+'_maxeggimport.obj', opts=OPTS, input='maxEggImport.cxx') @@ -5569,34 +5580,34 @@ for VER in MAXVERSIONS: # if not PkgSkip("PANDATOOL"): - OPTS=['DIR:pandatool/src/vrml', 'ZLIB', 'BISONPREFIX_vrmlyy'] - CreateFile(GetOutputDir()+"/include/vrmlParser.h") - TargetAdd('p3vrml_vrmlParser.obj', opts=OPTS, input='vrmlParser.yxx') - TargetAdd('vrmlParser.h', input='p3vrml_vrmlParser.obj', opts=['DEPENDENCYONLY']) - TargetAdd('p3vrml_vrmlLexer.obj', opts=OPTS, input='vrmlLexer.lxx') - TargetAdd('p3vrml_parse_vrml.obj', opts=OPTS, input='parse_vrml.cxx') - TargetAdd('p3vrml_standard_nodes.obj', opts=OPTS, input='standard_nodes.cxx') - TargetAdd('p3vrml_vrmlNode.obj', opts=OPTS, input='vrmlNode.cxx') - TargetAdd('p3vrml_vrmlNodeType.obj', opts=OPTS, input='vrmlNodeType.cxx') - TargetAdd('libp3vrml.lib', input='p3vrml_parse_vrml.obj') - TargetAdd('libp3vrml.lib', input='p3vrml_standard_nodes.obj') - TargetAdd('libp3vrml.lib', input='p3vrml_vrmlNode.obj') - TargetAdd('libp3vrml.lib', input='p3vrml_vrmlNodeType.obj') - TargetAdd('libp3vrml.lib', input='p3vrml_vrmlParser.obj') - TargetAdd('libp3vrml.lib', input='p3vrml_vrmlLexer.obj') + OPTS=['DIR:pandatool/src/vrml', 'ZLIB', 'BISONPREFIX_vrmlyy'] + CreateFile(GetOutputDir() + "/include/vrmlParser.h") + TargetAdd('p3vrml_vrmlParser.obj', opts=OPTS, input='vrmlParser.yxx') + TargetAdd('vrmlParser.h', input='p3vrml_vrmlParser.obj', opts=['DEPENDENCYONLY']) + TargetAdd('p3vrml_vrmlLexer.obj', opts=OPTS, input='vrmlLexer.lxx') + TargetAdd('p3vrml_parse_vrml.obj', opts=OPTS, input='parse_vrml.cxx') + TargetAdd('p3vrml_standard_nodes.obj', opts=OPTS, input='standard_nodes.cxx') + TargetAdd('p3vrml_vrmlNode.obj', opts=OPTS, input='vrmlNode.cxx') + TargetAdd('p3vrml_vrmlNodeType.obj', opts=OPTS, input='vrmlNodeType.cxx') + TargetAdd('libp3vrml.lib', input='p3vrml_parse_vrml.obj') + TargetAdd('libp3vrml.lib', input='p3vrml_standard_nodes.obj') + TargetAdd('libp3vrml.lib', input='p3vrml_vrmlNode.obj') + TargetAdd('libp3vrml.lib', input='p3vrml_vrmlNodeType.obj') + TargetAdd('libp3vrml.lib', input='p3vrml_vrmlParser.obj') + TargetAdd('libp3vrml.lib', input='p3vrml_vrmlLexer.obj') # # DIRECTORY: pandatool/src/vrmlegg/ # if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): - OPTS=['DIR:pandatool/src/vrmlegg', 'DIR:pandatool/src/vrml'] - TargetAdd('p3vrmlegg_indexedFaceSet.obj', opts=OPTS, input='indexedFaceSet.cxx') - TargetAdd('p3vrmlegg_vrmlAppearance.obj', opts=OPTS, input='vrmlAppearance.cxx') - TargetAdd('p3vrmlegg_vrmlToEggConverter.obj', opts=OPTS, input='vrmlToEggConverter.cxx') - TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_indexedFaceSet.obj') - TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_vrmlAppearance.obj') - TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_vrmlToEggConverter.obj') + OPTS=['DIR:pandatool/src/vrmlegg', 'DIR:pandatool/src/vrml'] + TargetAdd('p3vrmlegg_indexedFaceSet.obj', opts=OPTS, input='indexedFaceSet.cxx') + TargetAdd('p3vrmlegg_vrmlAppearance.obj', opts=OPTS, input='vrmlAppearance.cxx') + TargetAdd('p3vrmlegg_vrmlToEggConverter.obj', opts=OPTS, input='vrmlToEggConverter.cxx') + TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_indexedFaceSet.obj') + TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_vrmlAppearance.obj') + TargetAdd('libp3vrmlegg.lib', input='p3vrmlegg_vrmlToEggConverter.obj') # # DIRECTORY: pandatool/src/xfile/ @@ -5604,7 +5615,7 @@ if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): if not PkgSkip("PANDATOOL"): OPTS=['DIR:pandatool/src/xfile', 'ZLIB', 'BISONPREFIX_xyy', 'FLEXDASHI'] - CreateFile(GetOutputDir()+"/include/xParser.h") + CreateFile(GetOutputDir() + "/include/xParser.h") TargetAdd('p3xfile_xParser.obj', opts=OPTS, input='xParser.yxx') TargetAdd('xParser.h', input='p3xfile_xParser.obj', opts=['DEPENDENCYONLY']) TargetAdd('p3xfile_xLexer.obj', opts=OPTS, input='xLexer.lxx') @@ -5646,7 +5657,7 @@ if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): TargetAdd('libp3ptloader.dll', input='libp3vrml.lib') TargetAdd('libp3ptloader.dll', input='libp3xfileegg.lib') TargetAdd('libp3ptloader.dll', input='libp3xfile.lib') - if (PkgSkip("FCOLLADA")==0): TargetAdd('libp3ptloader.dll', input='libp3daeegg.lib') + if not PkgSkip("FCOLLADA"): TargetAdd('libp3ptloader.dll', input='libp3daeegg.lib') TargetAdd('libp3ptloader.dll', input='libp3eggbase.lib') TargetAdd('libp3ptloader.dll', input='libp3progbase.lib') TargetAdd('libp3ptloader.dll', input='libp3converter.lib') @@ -5661,7 +5672,7 @@ if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): # This is a bit of an esoteric tool, and it causes issues because # it conflicts with tools of the same name in different packages. -#if (PkgSkip("PANDATOOL")==0): +#if not PkgSkip("PANDATOOL"): # OPTS=['DIR:pandatool/src/miscprogs'] # TargetAdd('bin2c_binToC.obj', opts=OPTS, input='binToC.cxx') # TargetAdd('bin2c.exe', input='bin2c_binToC.obj') @@ -5674,7 +5685,7 @@ if not PkgSkip("PANDATOOL") and not PkgSkip("EGG"): # DIRECTORY: pandatool/src/pstatserver/ # -if (PkgSkip("PANDATOOL")==0): +if not PkgSkip("PANDATOOL"): OPTS=['DIR:pandatool/src/pstatserver'] TargetAdd('p3pstatserver_composite1.obj', opts=OPTS, input='p3pstatserver_composite1.cxx') TargetAdd('libp3pstatserver.lib', input='p3pstatserver_composite1.obj') @@ -5683,7 +5694,7 @@ if (PkgSkip("PANDATOOL")==0): # DIRECTORY: pandatool/src/text-stats/ # -if (PkgSkip("PANDATOOL")==0): +if not PkgSkip("PANDATOOL"): OPTS=['DIR:pandatool/src/text-stats'] TargetAdd('text-stats_textMonitor.obj', opts=OPTS, input='textMonitor.cxx') TargetAdd('text-stats_textStats.obj', opts=OPTS, input='textStats.cxx') @@ -5722,13 +5733,13 @@ if not PkgSkip("PANDATOOL"): # DIRECTORY: pandatool/src/gtk-stats/ # -if (PkgSkip("PANDATOOL")==0 and (GetTarget() == 'windows' or PkgSkip("GTK2")==0)): +if not PkgSkip("PANDATOOL") and (GetTarget() == 'windows' or not PkgSkip("GTK2")): if GetTarget() == 'windows': - OPTS=['DIR:pandatool/src/win-stats'] - TargetAdd('pstats_composite1.obj', opts=OPTS, input='winstats_composite1.cxx') + OPTS=['DIR:pandatool/src/win-stats'] + TargetAdd('pstats_composite1.obj', opts=OPTS, input='winstats_composite1.cxx') else: - OPTS=['DIR:pandatool/src/gtk-stats', 'GTK2'] - TargetAdd('pstats_composite1.obj', opts=OPTS, input='gtkstats_composite1.cxx') + OPTS=['DIR:pandatool/src/gtk-stats', 'GTK2'] + TargetAdd('pstats_composite1.obj', opts=OPTS, input='gtkstats_composite1.cxx') TargetAdd('pstats.exe', input='pstats_composite1.obj') TargetAdd('pstats.exe', input='libp3pstatserver.lib') TargetAdd('pstats.exe', input='libp3progbase.lib') @@ -5885,47 +5896,47 @@ if MAYA_BUILT: # # DIRECTORY: contrib/src/ai/ # -if (PkgSkip("CONTRIB")==0 ): - OPTS=['DIR:contrib/src/ai', 'BUILDING:PANDAAI'] - TargetAdd('p3ai_composite1.obj', opts=OPTS, input='p3ai_composite1.cxx') - TargetAdd('libpandaai.dll', input='p3ai_composite1.obj') - TargetAdd('libpandaai.dll', input=COMMON_PANDA_LIBS) +if not PkgSkip("CONTRIB"): + OPTS=['DIR:contrib/src/ai', 'BUILDING:PANDAAI'] + TargetAdd('p3ai_composite1.obj', opts=OPTS, input='p3ai_composite1.cxx') + TargetAdd('libpandaai.dll', input='p3ai_composite1.obj') + TargetAdd('libpandaai.dll', input=COMMON_PANDA_LIBS) - OPTS=['DIR:contrib/src/ai'] - IGATEFILES=GetDirectoryContents('contrib/src/ai', ["*.h", "*_composite*.cxx"]) - TargetAdd('libpandaai.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libpandaai.in', opts=['IMOD:panda3d.ai', 'ILIB:libpandaai', 'SRCDIR:contrib/src/ai']) + OPTS=['DIR:contrib/src/ai'] + IGATEFILES=GetDirectoryContents('contrib/src/ai', ["*.h", "*_composite*.cxx"]) + TargetAdd('libpandaai.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libpandaai.in', opts=['IMOD:panda3d.ai', 'ILIB:libpandaai', 'SRCDIR:contrib/src/ai']) - PyTargetAdd('ai_module.obj', input='libpandaai.in') - PyTargetAdd('ai_module.obj', opts=OPTS) - PyTargetAdd('ai_module.obj', opts=['IMOD:panda3d.ai', 'ILIB:ai', 'IMPORT:panda3d.core']) + PyTargetAdd('ai_module.obj', input='libpandaai.in') + PyTargetAdd('ai_module.obj', opts=OPTS) + PyTargetAdd('ai_module.obj', opts=['IMOD:panda3d.ai', 'ILIB:ai', 'IMPORT:panda3d.core']) - PyTargetAdd('ai.pyd', input='ai_module.obj') - PyTargetAdd('ai.pyd', input='libpandaai_igate.obj') - PyTargetAdd('ai.pyd', input='libpandaai.dll') - PyTargetAdd('ai.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('ai.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('ai.pyd', input='ai_module.obj') + PyTargetAdd('ai.pyd', input='libpandaai_igate.obj') + PyTargetAdd('ai.pyd', input='libpandaai.dll') + PyTargetAdd('ai.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('ai.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: contrib/src/rplight/ # if not PkgSkip("CONTRIB") and not PkgSkip("PYTHON"): - OPTS=['DIR:contrib/src/rplight', 'BUILDING:RPLIGHT'] - TargetAdd('p3rplight_composite1.obj', opts=OPTS, input='p3rplight_composite1.cxx') + OPTS=['DIR:contrib/src/rplight', 'BUILDING:RPLIGHT'] + TargetAdd('p3rplight_composite1.obj', opts=OPTS, input='p3rplight_composite1.cxx') - IGATEFILES=GetDirectoryContents('contrib/src/rplight', ["*.h", "*_composite*.cxx"]) - TargetAdd('libp3rplight.in', opts=OPTS, input=IGATEFILES) - TargetAdd('libp3rplight.in', opts=['IMOD:panda3d._rplight', 'ILIB:libp3rplight', 'SRCDIR:contrib/src/rplight']) + IGATEFILES=GetDirectoryContents('contrib/src/rplight', ["*.h", "*_composite*.cxx"]) + TargetAdd('libp3rplight.in', opts=OPTS, input=IGATEFILES) + TargetAdd('libp3rplight.in', opts=['IMOD:panda3d._rplight', 'ILIB:libp3rplight', 'SRCDIR:contrib/src/rplight']) - PyTargetAdd('rplight_module.obj', input='libp3rplight.in') - PyTargetAdd('rplight_module.obj', opts=OPTS) - PyTargetAdd('rplight_module.obj', opts=['IMOD:panda3d._rplight', 'ILIB:_rplight', 'IMPORT:panda3d.core']) + PyTargetAdd('rplight_module.obj', input='libp3rplight.in') + PyTargetAdd('rplight_module.obj', opts=OPTS) + PyTargetAdd('rplight_module.obj', opts=['IMOD:panda3d._rplight', 'ILIB:_rplight', 'IMPORT:panda3d.core']) - PyTargetAdd('_rplight.pyd', input='rplight_module.obj') - PyTargetAdd('_rplight.pyd', input='libp3rplight_igate.obj') - PyTargetAdd('_rplight.pyd', input='p3rplight_composite1.obj') - PyTargetAdd('_rplight.pyd', input='libp3interrogatedb.dll') - PyTargetAdd('_rplight.pyd', input=COMMON_PANDA_LIBS) + PyTargetAdd('_rplight.pyd', input='rplight_module.obj') + PyTargetAdd('_rplight.pyd', input='libp3rplight_igate.obj') + PyTargetAdd('_rplight.pyd', input='p3rplight_composite1.obj') + PyTargetAdd('_rplight.pyd', input='libp3interrogatedb.dll') + PyTargetAdd('_rplight.pyd', input=COMMON_PANDA_LIBS) # # DIRECTORY: pandatool/src/deploy-stub @@ -5962,37 +5973,37 @@ if PkgSkip("PYTHON") == 0: # if not PkgSkip("DIRECT") and not PkgSkip("EGG"): - model_extensions = ["*.egg"] + model_extensions = ["*.egg"] - for model in GetDirectoryContents("models/misc", model_extensions): - if (PkgSkip("ZLIB")==0 and PkgSkip("DEPLOYTOOLS")==0): - newname = model[:-4] + ".egg.pz" - else: - newname = model[:-4] + ".egg" - TargetAdd(GetOutputDir()+"/models/misc/"+newname, input="models/misc/"+model) + for model in GetDirectoryContents("models/misc", model_extensions): + if not PkgSkip("ZLIB") and not PkgSkip("DEPLOYTOOLS"): + newname = model[:-4] + ".egg.pz" + else: + newname = model[:-4] + ".egg" + TargetAdd(GetOutputDir()+"/models/misc/"+newname, input="models/misc/"+model) - for model in GetDirectoryContents("models/gui", model_extensions): - if (PkgSkip("ZLIB")==0 and PkgSkip("DEPLOYTOOLS")==0): - newname = model[:-4] + ".egg.pz" - else: - newname = model[:-4] + ".egg" - TargetAdd(GetOutputDir()+"/models/gui/"+newname, input="models/gui/"+model) + for model in GetDirectoryContents("models/gui", model_extensions): + if not PkgSkip("ZLIB") and not PkgSkip("DEPLOYTOOLS"): + newname = model[:-4] + ".egg.pz" + else: + newname = model[:-4] + ".egg" + TargetAdd(GetOutputDir()+"/models/gui/"+newname, input="models/gui/"+model) - for model in GetDirectoryContents("models", model_extensions): - if (PkgSkip("ZLIB")==0 and PkgSkip("DEPLOYTOOLS")==0): - newname = model[:-4] + ".egg.pz" - else: - newname = model[:-4] + ".egg" - TargetAdd(GetOutputDir()+"/models/"+newname, input="models/"+model) + for model in GetDirectoryContents("models", model_extensions): + if not PkgSkip("ZLIB") and not PkgSkip("DEPLOYTOOLS"): + newname = model[:-4] + ".egg.pz" + else: + newname = model[:-4] + ".egg" + TargetAdd(GetOutputDir()+"/models/"+newname, input="models/"+model) if not PkgSkip("DIRECT"): - CopyAllFiles(GetOutputDir()+"/models/audio/sfx/", "models/audio/sfx/", ".wav") - CopyAllFiles(GetOutputDir()+"/models/icons/", "models/icons/", ".gif") + CopyAllFiles(GetOutputDir()+"/models/audio/sfx/", "models/audio/sfx/", ".wav") + CopyAllFiles(GetOutputDir()+"/models/icons/", "models/icons/", ".gif") - CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".jpg") - CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".png") - CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".rgb") - CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".rgba") + CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".jpg") + CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".png") + CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".rgb") + CopyAllFiles(GetOutputDir()+"/models/maps/", "models/maps/", ".rgba") ########################################################################################## @@ -6018,7 +6029,8 @@ def BuildWorker(taskqueue, donequeue): ProgressOutput(None, "Waiting for tasks...") task = taskqueue.get() sys.stdout.flush() - if (task == 0): return + if task == 0: + return try: task[0](*task[1]) donequeue.put(task) @@ -6028,17 +6040,17 @@ def BuildWorker(taskqueue, donequeue): def AllSourcesReady(task, pending): sources = task[3] for x in sources: - if (x in pending): - return 0 + if x in pending: + return False sources = task[1][1] for x in sources: - if (x in pending): - return 0 + if x in pending: + return False altsources = task[4] for x in altsources: - if (x in pending): - return 0 - return 1 + if x in pending: + return False + return True def ParallelMake(tasklist): # Create the communication queues. @@ -6060,11 +6072,11 @@ def ParallelMake(tasklist): # Feed tasks to the workers. tasksqueued = 0 while True: - if (tasksqueued < THREADCOUNT): + if tasksqueued < THREADCOUNT: extras = [] for task in tasklist: - if (tasksqueued < THREADCOUNT) and (AllSourcesReady(task, pending)): - if (NeedsBuild(task[2], task[3])): + if tasksqueued < THREADCOUNT and AllSourcesReady(task, pending): + if NeedsBuild(task[2], task[3]): tasksqueued += 1 taskqueue.put(task) else: @@ -6074,9 +6086,10 @@ def ParallelMake(tasklist): extras.append(task) tasklist = extras sys.stdout.flush() - if (tasksqueued == 0): break + if tasksqueued == 0: + break donetask = donequeue.get() - if (donetask == 0): + if donetask == 0: exit("Build process aborting.") sys.stdout.flush() tasksqueued -= 1 @@ -6088,20 +6101,20 @@ def ParallelMake(tasklist): taskqueue.put(0) # Make sure there aren't any unsatisfied tasks if len(tasklist) > 0: - exit("Dependency problems: " + str(len(tasklist)) + " tasks not finished. First task unsatisfied: "+str(tasklist[0][2])) + exit(f"Dependency problems: {len(tasklist)} tasks not finished. First task unsatisfied: {tasklist[0][2]}") def SequentialMake(tasklist): i = 0 for task in tasklist: - if (NeedsBuild(task[2], task[3])): + if NeedsBuild(task[2], task[3]): task[0](*task[1] + [(i * 100.0) / len(tasklist)]) JustBuilt(task[2], task[3]) i += 1 def RunDependencyQueue(tasklist): - if (THREADCOUNT!=0): + if THREADCOUNT != 0: ParallelMake(tasklist) else: SequentialMake(tasklist) diff --git a/makepanda/makepandacore.py b/makepanda/makepandacore.py index b70081bdcc..ca801948c4 100644 --- a/makepanda/makepandacore.py +++ b/makepanda/makepandacore.py @@ -5,12 +5,22 @@ ## ######################################################################## -import sys,os,time,stat,string,re,getopt,fnmatch,threading,signal,shutil,platform,glob,getpass,signal -import subprocess -from distutils import sysconfig -import pickle -import _thread as thread import configparser +from distutils import sysconfig +import fnmatch +import getpass +import glob +import os +import pickle +import platform +import re +import shutil +import signal +import subprocess +import sys +import threading +import _thread as thread +import time SUFFIX_INC = [".cxx",".cpp",".c",".h",".I",".yxx",".lxx",".mm",".rc",".r"] SUFFIX_DLL = [".dll",".dlo",".dle",".dli",".dlm",".mll",".exe",".pyd",".ocx"] @@ -172,14 +182,15 @@ THREADS = {} HAVE_COLORS = False SETF = "" try: - import curses - curses.setupterm() - SETF = curses.tigetstr("setf") - if (SETF == None): - SETF = curses.tigetstr("setaf") - assert SETF != None - HAVE_COLORS = sys.stdout.isatty() -except: pass + import curses + curses.setupterm() + SETF = curses.tigetstr("setf") + if SETF is None: + SETF = curses.tigetstr("setaf") + assert SETF is not None + HAVE_COLORS = sys.stdout.isatty() +except: + pass def DisableColors(): global HAVE_COLORS @@ -188,20 +199,20 @@ def DisableColors(): def GetColor(color = None): if not HAVE_COLORS: return "" - if color != None: + if color is not None: color = color.lower() - if (color == "blue"): + if color == "blue": token = curses.tparm(SETF, 1) - elif (color == "green"): + elif color == "green": token = curses.tparm(SETF, 2) - elif (color == "cyan"): + elif color == "cyan": token = curses.tparm(SETF, 3) - elif (color == "red"): + elif color == "red": token = curses.tparm(SETF, 4) - elif (color == "magenta"): + elif color == "magenta": token = curses.tparm(SETF, 5) - elif (color == "yellow"): + elif color == "yellow": token = curses.tparm(SETF, 6) else: token = curses.tparm(curses.tigetstr("sgr0")) @@ -235,9 +246,9 @@ def ProgressOutput(progress, msg, target = None): if thisthread is MAINTHREAD: if progress is None: prefix = "" - elif (progress >= 100.0): + elif progress >= 100.0: prefix = "%s[%s%d%%%s] " % (GetColor("yellow"), GetColor("cyan"), progress, GetColor("yellow")) - elif (progress < 10.0): + elif progress < 10.0: prefix = "%s[%s %d%%%s] " % (GetColor("yellow"), GetColor("cyan"), progress, GetColor("yellow")) else: prefix = "%s[%s %d%%%s] " % (GetColor("yellow"), GetColor("cyan"), progress, GetColor("yellow")) @@ -245,7 +256,7 @@ def ProgressOutput(progress, msg, target = None): global THREADS ident = thread.get_ident() - if (ident not in THREADS): + if ident not in THREADS: THREADS[ident] = len(THREADS) + 1 prefix = "%s[%sT%d%s] " % (GetColor("yellow"), GetColor("cyan"), THREADS[ident], GetColor("yellow")) @@ -261,7 +272,7 @@ def ProgressOutput(progress, msg, target = None): def exit(msg = ""): sys.stdout.flush() sys.stderr.flush() - if (threading.currentThread() == MAINTHREAD): + if threading.currentThread() == MAINTHREAD: SaveDependencyCache() print("Elapsed Time: " + PrettyTime(time.time() - STARTTIME)) print(msg) @@ -355,7 +366,7 @@ def SetTarget(target, arch=None): if target == 'windows': if arch == 'i386': - arch = 'x86' + arch = 'x86' elif arch == 'amd64': arch = 'x64' @@ -644,7 +655,7 @@ def oscmd(cmd, ignoreError = False, cwd=None): ######################################################################## def GetDirectoryContents(dir, filters="*", skip=[]): - if (type(filters)==str): + if isinstance(filters, str): filters = [filters] actual = {} files = os.listdir(dir) @@ -665,7 +676,8 @@ def GetDirectorySize(dir): for file in files: try: size += os.path.getsize(os.path.join(path, file)) - except: pass + except: + pass return size ######################################################################## @@ -683,8 +695,10 @@ TIMESTAMPCACHE = {} def GetTimestamp(path): if path in TIMESTAMPCACHE: return TIMESTAMPCACHE[path] - try: date = os.path.getmtime(path) - except: date = 0 + try: + date = os.path.getmtime(path) + except: + date = 0 TIMESTAMPCACHE[path] = date return date @@ -773,22 +787,24 @@ def NeedsBuild(files, others): CXXINCLUDECACHE = {} -global CxxIncludeRegex CxxIncludeRegex = re.compile('^[ \t]*[#][ \t]*include[ \t]+"([^"]+)"[ \t\r\n]*$') def CxxGetIncludes(path): date = GetTimestamp(path) - if (path in CXXINCLUDECACHE): + if path in CXXINCLUDECACHE: cached = CXXINCLUDECACHE[path] - if (cached[0]==date): return cached[1] - try: sfile = open(path, 'r') + if cached[0] == date: + return cached[1] + try: + sfile = open(path, 'r') except: exit("Cannot open source file \""+path+"\" for reading.") + include = [] try: for line in sfile: match = CxxIncludeRegex.match(line,0) - if (match): + if match: incname = match.group(1) include.append(incname) except: @@ -801,7 +817,6 @@ def CxxGetIncludes(path): JAVAIMPORTCACHE = {} -global JavaImportRegex JavaImportRegex = re.compile('[ \t\r\n;]import[ \t]+([a-zA-Z][^;]+)[ \t\r\n]*;') def JavaGetImports(path): @@ -842,10 +857,11 @@ def SaveDependencyCache(): global DCACHE_BACKED_UP if not DCACHE_BACKED_UP: try: - if (os.path.exists(os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache"))): + if os.path.exists(os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache")): os.rename(os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache"), os.path.join(OUTPUTDIR, "tmp", "makepanda-dcache-backup")) - except: pass + except: + pass DCACHE_BACKED_UP = True try: @@ -942,24 +958,24 @@ def JavaFindClasses(impspec, clspath): ## ######################################################################## -global CxxIgnoreHeader -global CxxDependencyCache CxxIgnoreHeader = {} CxxDependencyCache = {} def CxxCalcDependencies(srcfile, ipath, ignore): - if (srcfile in CxxDependencyCache): + if srcfile in CxxDependencyCache: return CxxDependencyCache[srcfile] - if (ignore.count(srcfile)): return [] + if ignore.count(srcfile): + return [] dep = {} dep[srcfile] = 1 includes = CxxGetIncludes(srcfile) for include in includes: header = CxxFindHeader(srcfile, include, ipath) - if (header!=0): - if (ignore.count(header)==0): + if header != 0: + if ignore.count(header) == 0: hdeps = CxxCalcDependencies(header, ipath, [srcfile]+ignore) - for x in hdeps: dep[x] = 1 + for x in hdeps: + dep[x] = 1 result = list(dep.keys()) CxxDependencyCache[srcfile] = result return result @@ -999,11 +1015,13 @@ def TryRegistryKey(path): try: key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path, 0, winreg.KEY_READ) return key - except: pass + except: + pass try: key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path, 0, winreg.KEY_READ | 256) return key - except: pass + except: + pass return 0 def ListRegistryKeys(path): @@ -1015,7 +1033,8 @@ def ListRegistryKeys(path): while (1): result.append(winreg.EnumKey(key, index)) index = index + 1 - except: pass + except: + pass winreg.CloseKey(key) return result @@ -1028,7 +1047,8 @@ def ListRegistryValues(path): while (1): result.append(winreg.EnumValue(key, index)[0]) index = index + 1 - except: pass + except: + pass winreg.CloseKey(key) return result @@ -1040,7 +1060,8 @@ def GetRegistryKey(path, subkey, override64=True): if (key != 0): try: k1, k2 = winreg.QueryValueEx(key, subkey) - except: pass + except: + pass winreg.CloseKey(key) return k1 @@ -1270,7 +1291,7 @@ def GetThirdpartyBase(): thirdparty directory. This is useful when wanting to use a single system-wide thirdparty directory, for instance on a build machine.""" global THIRDPARTYBASE - if (THIRDPARTYBASE != None): + if (THIRDPARTYBASE is not None): return THIRDPARTYBASE THIRDPARTYBASE = "thirdparty" @@ -1283,7 +1304,7 @@ def GetThirdpartyDir(): """Returns the thirdparty directory for the target platform, ie. thirdparty/win-libs-vc10/. May return None in the future.""" global THIRDPARTYDIR - if THIRDPARTYDIR != None: + if THIRDPARTYDIR is not None: return THIRDPARTYDIR base = GetThirdpartyBase() @@ -1466,10 +1487,10 @@ def PkgConfigHavePkg(pkgname, tool = "pkg-config"): if (tool == "pkg-config"): handle = os.popen(LocateBinary("pkg-config") + " --silence-errors --modversion " + pkgname) else: - return bool(LocateBinary(tool) != None) + return bool(LocateBinary(tool) is not None) result = handle.read().strip() returnval = handle.close() - if returnval != None and returnval != 0: + if returnval is not None and returnval != 0: return False return bool(len(result) > 0) @@ -1637,21 +1658,21 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, global PKG_LIST_ALL if (pkg in PkgListGet() and PkgSkip(pkg)): return - if (target_pkg == "" or target_pkg == None): + if (target_pkg == "" or target_pkg is None): target_pkg = pkg if (pkgconfig == ""): pkgconfig = None if (framework == ""): framework = None - if (libs == None or libs == ""): + if (libs is None or libs == ""): libs = () elif (isinstance(libs, str)): libs = (libs, ) - if (incs == None or incs == ""): + if (incs is None or incs == ""): incs = () elif (isinstance(incs, str)): incs = (incs, ) - if (defs == None or defs == "" or len(defs) == 0): + if (defs is None or defs == "" or len(defs) == 0): defs = {} elif (isinstance(incs, str)): defs = {defs : ""} @@ -1693,7 +1714,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, lpath.append(py_lib_dir) # TODO: check for a .pc file in the lib/pkgconfig/ dir - if (tool != None and os.path.isfile(os.path.join(pkg_dir, "bin", tool))): + if (tool is not None and os.path.isfile(os.path.join(pkg_dir, "bin", tool))): tool = os.path.join(pkg_dir, "bin", tool) for i in PkgConfigGetLibs(None, tool): if i.startswith('-l'): @@ -1739,7 +1760,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, DefSymbol(target_pkg, d, v) return - elif not custom_loc and GetHost() == "darwin" and framework != None: + elif not custom_loc and GetHost() == "darwin" and framework is not None: prefix = SDK["MACOSX"] if (os.path.isdir(prefix + "/Library/Frameworks/%s.framework" % framework) or os.path.isdir(prefix + "/System/Library/Frameworks/%s.framework" % framework) or @@ -1753,7 +1774,7 @@ def SmartPkgEnable(pkg, pkgconfig = None, libs = None, incs = None, defs = None, elif VERBOSE: print(ColorText("cyan", "Couldn't find the framework %s" % (framework))) - elif not custom_loc and LocateBinary(tool) != None and (tool != "pkg-config" or pkgconfig != None): + elif not custom_loc and LocateBinary(tool) is not None and (tool != "pkg-config" or pkgconfig is not None): if (isinstance(pkgconfig, str) or tool != "pkg-config"): if (PkgConfigHavePkg(pkgconfig, tool)): return PkgConfigEnable(target_pkg, pkgconfig, tool) @@ -2902,7 +2923,7 @@ def SetupBuildEnvironment(compiler): print("Ignoring non-existent library directory %s" % (libdir)) returnval = handle.close() - if returnval != None and returnval != 0: + if returnval is not None and returnval != 0: Warn("%s failed" % (cmd)) SYS_LIB_DIRS += [SDK.get("SYSROOT", "") + "/usr/lib"] @@ -3149,7 +3170,8 @@ def ParsePandaVersion(fn): f.close() return match.group(1) + "." + match.group(2) + "." + match.group(3) f.close() - except: pass + except: + pass return "0.0.0" ########################################################################################## @@ -3203,7 +3225,7 @@ def GenerateResourceFile(**kwargs): kwargs["commaversion"] = kwargs["dotversion"].replace(".", ",") rcdata = "" - if not "noinclude" in kwargs: + if "noinclude" not in kwargs: rcdata += "#define APSTUDIO_READONLY_SYMBOLS\n" rcdata += "#include \"winresrc.h\"\n" rcdata += "#undef APSTUDIO_READONLY_SYMBOLS\n" @@ -3530,19 +3552,23 @@ TARGET_LIST = [] TARGET_TABLE = {} def TargetAdd(target, dummy=0, opts=[], input=[], dep=[], ipath=None, winrc=None, pyabi=None): - if (dummy != 0): - exit("Syntax error in TargetAdd "+target) - if ipath is None: ipath = opts - if not ipath: ipath = [] - if (type(input) == str): input = [input] - if (type(dep) == str): dep = [dep] + if dummy != 0: + exit("Syntax error in TargetAdd " + target) + if ipath is None: + ipath = opts + if not ipath: + ipath = [] + if isinstance(input, str): + input = [input] + if isinstance(dep, str): + dep = [dep] if target.endswith(".pyd") and not pyabi: raise RuntimeError("Use PyTargetAdd to build .pyd targets") full = FindLocation(target, [OUTPUTDIR + "/include"], pyabi=pyabi) - if (full not in TARGET_TABLE): + if full not in TARGET_TABLE: t = Target() t.name = full t.inputs = [] @@ -3563,10 +3589,10 @@ def TargetAdd(target, dummy=0, opts=[], input=[], dep=[], ipath=None, winrc=None t.inputs.append(fullinput) # Don't re-link a library or binary if just its dependency dlls have been altered. # This should work out fine in most cases, and often reduces recompilation time. - if (os.path.splitext(x)[-1] not in SUFFIX_DLL): + if os.path.splitext(x)[-1] not in SUFFIX_DLL: t.deps[fullinput] = 1 (base,suffix) = os.path.splitext(x) - if (SUFFIX_INC.count(suffix)): + if SUFFIX_INC.count(suffix): for d in CxxCalcDependencies(fullinput, ipath, []): t.deps[d] = 1 elif suffix == '.java': diff --git a/makepanda/makewheel.py b/makepanda/makewheel.py index aa87c18c78..a43b29ac57 100644 --- a/makepanda/makewheel.py +++ b/makepanda/makewheel.py @@ -1,22 +1,19 @@ """ Generates a wheel (.whl) file from the output of makepanda. """ -from __future__ import print_function, unicode_literals -from distutils.util import get_platform import json - import sys import os from os.path import join -import shutil import zipfile import hashlib import tempfile import subprocess +from distutils.util import get_platform from distutils.sysconfig import get_config_var from optparse import OptionParser -from makepandacore import ColorText, LocateBinary, GetExtensionSuffix, SetVerbose, GetVerbose, GetMetadataValue from base64 import urlsafe_b64encode +from makepandacore import LocateBinary, GetExtensionSuffix, SetVerbose, GetVerbose, GetMetadataValue def get_abi_tag():