mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 08:44:19 -04:00
makepanda: Bring back --universal flag for Universal 2
This commit is contained in:
parent
79714392cb
commit
ce5379a0ad
@ -59,6 +59,7 @@ RPMRELEASE="1"
|
||||
GIT_COMMIT=None
|
||||
MAJOR_VERSION=None
|
||||
OSXTARGET=None
|
||||
OSX_ARCHS=[]
|
||||
global STRDXSDKVERSION, BOOUSEINTELCOMPILER
|
||||
STRDXSDKVERSION = 'default'
|
||||
WINDOWS_SDK = None
|
||||
@ -133,6 +134,7 @@ def usage(problem):
|
||||
print(" --outputdir X (use the specified directory instead of 'built')")
|
||||
print(" --threads N (use the multithreaded build system. see manual)")
|
||||
print(" --osxtarget N (the macOS version number to build for (macOS only))")
|
||||
print(" --universal (build universal binaries (macOS 11.0+ only))")
|
||||
print(" --override \"O=V\" (override dtool_config/prc option value)")
|
||||
print(" --static (builds libraries for static linking)")
|
||||
print(" --target X (experimental cross-compilation (android only))")
|
||||
@ -160,7 +162,7 @@ def usage(problem):
|
||||
|
||||
def parseopts(args):
|
||||
global INSTALLER,WHEEL,RUNTESTS,GENMAN,DISTRIBUTOR,VERSION
|
||||
global COMPRESSOR,THREADCOUNT,OSXTARGET
|
||||
global COMPRESSOR,THREADCOUNT,OSXTARGET,OSX_ARCHS
|
||||
global DEBVERSION,WHLVERSION,RPMRELEASE,GIT_COMMIT
|
||||
global STRDXSDKVERSION, WINDOWS_SDK, MSVC_VERSION, BOOUSEINTELCOMPILER
|
||||
global COPY_PYTHON
|
||||
@ -168,7 +170,7 @@ def parseopts(args):
|
||||
# Options for which to display a deprecation warning.
|
||||
removedopts = [
|
||||
"use-touchinput", "no-touchinput", "no-awesomium", "no-directscripts",
|
||||
"no-carbon", "universal", "no-physx", "no-rocket", "host"
|
||||
"no-carbon", "no-physx", "no-rocket", "host"
|
||||
]
|
||||
|
||||
# All recognized options.
|
||||
@ -178,7 +180,7 @@ def parseopts(args):
|
||||
"version=","lzma","no-python","threads=","outputdir=","override=",
|
||||
"static","debversion=","rpmrelease=","p3dsuffix=","rtdist-version=",
|
||||
"directx-sdk=", "windows-sdk=", "msvc-version=", "clean", "use-icl",
|
||||
"target=", "arch=", "git-commit=", "no-copy-python",
|
||||
"universal", "target=", "arch=", "git-commit=", "no-copy-python",
|
||||
"cggl-incdir=", "cggl-libdir=",
|
||||
] + removedopts
|
||||
|
||||
@ -186,6 +188,7 @@ def parseopts(args):
|
||||
optimize = ""
|
||||
target = None
|
||||
target_arch = None
|
||||
universal = False
|
||||
clean_build = False
|
||||
for pkg in PkgListGet():
|
||||
longopts.append("use-" + pkg.lower())
|
||||
@ -209,6 +212,7 @@ def parseopts(args):
|
||||
elif (option=="--threads"): THREADCOUNT=int(value)
|
||||
elif (option=="--outputdir"): SetOutputDir(value.strip())
|
||||
elif (option=="--osxtarget"): OSXTARGET=value.strip()
|
||||
elif (option=="--universal"): universal = True
|
||||
elif (option=="--target"): target = value.strip()
|
||||
elif (option=="--arch"): target_arch = value.strip()
|
||||
elif (option=="--nocolor"): DisableColors()
|
||||
@ -292,6 +296,24 @@ def parseopts(args):
|
||||
if target is not None or target_arch is not None:
|
||||
SetTarget(target, target_arch)
|
||||
|
||||
if universal:
|
||||
if target_arch:
|
||||
exit("--universal is incompatible with --arch")
|
||||
|
||||
if OSXTARGET:
|
||||
osxver = OSXTARGET
|
||||
else:
|
||||
maj, min = platform.mac_ver()[0].split('.')[:2]
|
||||
osxver = int(maj), int(min)
|
||||
|
||||
OSX_ARCHS.append("x86_64")
|
||||
|
||||
if osxver >= (11, 0):
|
||||
OSX_ARCHS.append("arm64")
|
||||
|
||||
elif HasTargetArch():
|
||||
OSX_ARCHS.append(GetTargetArch())
|
||||
|
||||
try:
|
||||
SetOptimize(int(optimize))
|
||||
assert GetOptimize() in [1, 2, 3, 4]
|
||||
@ -390,7 +412,26 @@ elif target == 'darwin':
|
||||
if osxver < (10, 9):
|
||||
osxver = (10, 9)
|
||||
|
||||
arch_tag = GetTargetArch()
|
||||
arch_tag = None
|
||||
if not OSX_ARCHS:
|
||||
arch_tag = GetTargetArch()
|
||||
elif len(OSX_ARCHS) == 1:
|
||||
arch_tag = OSX_ARCHS[0]
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('i386', 'ppc')):
|
||||
arch_tag = 'fat'
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('x86_64', 'i386')):
|
||||
arch_tag = 'intel'
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('x86_64', 'ppc64')):
|
||||
arch_tag = 'fat64'
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('x86_64', 'i386', 'ppc')):
|
||||
arch_tag = 'fat32'
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('x86_64', 'i386', 'ppc64', 'ppc')):
|
||||
arch_tag = 'universal'
|
||||
elif frozenset(OSX_ARCHS) == frozenset(('x86_64', 'arm64')):
|
||||
arch_tag = 'universal2'
|
||||
else:
|
||||
raise RuntimeError('No arch tag for arch combination %s' % OSX_ARCHS)
|
||||
|
||||
PLATFORM = 'macosx-{0}.{1}-{2}'.format(osxver[0], osxver[1], arch_tag)
|
||||
|
||||
elif target == 'linux' and (os.path.isfile("/lib/libc-2.5.so") or os.path.isfile("/lib64/libc-2.5.so")) and os.path.isdir("/opt/python"):
|
||||
@ -1258,8 +1299,9 @@ def CompileCxx(obj,src,opts):
|
||||
# Use libc++ to enable C++11 features.
|
||||
cmd += " -stdlib=libc++"
|
||||
|
||||
arch = GetTargetArch()
|
||||
cmd += " -arch %s" % arch
|
||||
for arch in OSX_ARCHS:
|
||||
if 'NOARCH:' + arch.upper() not in opts:
|
||||
cmd += " -arch %s" % arch
|
||||
|
||||
if "SYSROOT" in SDK:
|
||||
if GetTarget() != "android":
|
||||
@ -1776,8 +1818,9 @@ def CompileLink(dll, obj, opts):
|
||||
# Use libc++ to enable C++11 features.
|
||||
cmd += " -stdlib=libc++"
|
||||
|
||||
arch = GetTargetArch()
|
||||
cmd += " -arch %s" % arch
|
||||
for arch in OSX_ARCHS:
|
||||
if 'NOARCH:' + arch.upper() not in opts:
|
||||
cmd += " -arch %s" % arch
|
||||
|
||||
elif GetTarget() == 'android':
|
||||
arch = GetTargetArch()
|
||||
|
Loading…
x
Reference in New Issue
Block a user