mirror of https://github.com/KLayout/klayout.git
Overhaul the Mac build system for Apple Silicon + Tahoe (Part-2)
This commit is contained in:
parent
68ebbe4abc
commit
30332d298a
|
|
@ -2262,20 +2262,22 @@ def Deploy_Binaries_For_Bundle(config, parameters):
|
||||||
else:
|
else:
|
||||||
print( " [8] Skipped deploying Qt's Frameworks and optional Python/Ruby Frameworks..." )
|
print( " [8] Skipped deploying Qt's Frameworks and optional Python/Ruby Frameworks..." )
|
||||||
print( "##### Finished deploying the libraries and executables for <klayout.app> #####" )
|
print( "##### Finished deploying the libraries and executables for <klayout.app> #####" )
|
||||||
|
print("")
|
||||||
|
|
||||||
#-------------------------------------------------------------
|
#-------------------------------------------------------------
|
||||||
# [11] Sign the application bundle
|
# [11] Sign the application bundle
|
||||||
#-------------------------------------------------------------
|
#-------------------------------------------------------------
|
||||||
print("")
|
if Platform in ['Tahoe']:
|
||||||
print( " [11] Signing the macOS application bundle (ad-hoc) after all post-build edits (install_name_tool/strip)..." )
|
print( " [11] Signing the macOS application bundle (ad-hoc) after all post-build edits (install_name_tool/strip)..." )
|
||||||
appbundle = "%s/klayout.app" % AbsMacPkgDir
|
appbundle = "%s/klayout.app" % AbsMacPkgDir
|
||||||
res = Sign_App_Bundle(appbundle)
|
res = Sign_App_Bundle(appbundle)
|
||||||
print(res["ok"], res["verify_codesign_ok"], res["verify_spctl_ok"])
|
print(res["ok"], res["verify_codesign_ok"], res["verify_spctl_ok"])
|
||||||
if not res["ok"]:
|
if not res["ok"]:
|
||||||
print("ERROR:", res.get("error",""))
|
print("ERROR:", res.get("error",""))
|
||||||
for tag, ok, out in res["log"][-6:]:
|
for tag, ok, out in res["log"][-6:]:
|
||||||
print(f"[{tag}] ok={ok}\n{out}")
|
print(f"[{tag}] ok={ok}\n{out}")
|
||||||
os.chdir(ProjectDir)
|
os.chdir(ProjectDir)
|
||||||
|
print("")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -287,6 +287,7 @@ def Parse_CommandLine_Arguments():
|
||||||
global Target # target list
|
global Target # target list
|
||||||
global QtTarget # list of (Qt, target, bdType)-tuple
|
global QtTarget # list of (Qt, target, bdType)-tuple
|
||||||
global Build # operation flag
|
global Build # operation flag
|
||||||
|
global Deploy # operation flag
|
||||||
global WithPymod # operation flag
|
global WithPymod # operation flag
|
||||||
global QATest # operation flag
|
global QATest # operation flag
|
||||||
global QACheck # operation flag
|
global QACheck # operation flag
|
||||||
|
|
@ -322,10 +323,11 @@ def Parse_CommandLine_Arguments():
|
||||||
Usage += " + You can use this option multiple times. |\n"
|
Usage += " + You can use this option multiple times. |\n"
|
||||||
Usage += " + Or you can pass those list by the 'nightlyBuild.csv' file. |\n"
|
Usage += " + Or you can pass those list by the 'nightlyBuild.csv' file. |\n"
|
||||||
Usage += " A sample file 'macbuild/nightlyBuild.sample.csv' is available. |\n"
|
Usage += " A sample file 'macbuild/nightlyBuild.sample.csv' is available. |\n"
|
||||||
Usage += " [--build] : build and deploy | disabled\n"
|
Usage += " [--build] : build and deploy | disabled\n"
|
||||||
Usage += " [--pymod] : build and deploy Pymod, too (release build only) | disabled\n"
|
Usage += " [--deploy] : deploy only | disabled\n"
|
||||||
Usage += " [--test] : run the QA Test | disabled\n"
|
Usage += " [--pymod] : build and deploy Pymod, too (release build only) | disabled\n"
|
||||||
Usage += " [--check] : check the QA Test results | disabled\n"
|
Usage += " [--test] : run the QA Test | disabled\n"
|
||||||
|
Usage += " [--check] : check the QA Test results | disabled\n"
|
||||||
Usage += " [--makedmg|--cleandmg <srlno>] : make or clean DMGs | disabled\n"
|
Usage += " [--makedmg|--cleandmg <srlno>] : make or clean DMGs | disabled\n"
|
||||||
Usage += " [--upload <dropbox>] : upload DMGs to $HOME/Dropbox/klayout/<dropbox> | disabled\n"
|
Usage += " [--upload <dropbox>] : upload DMGs to $HOME/Dropbox/klayout/<dropbox> | disabled\n"
|
||||||
Usage += " [--dryrun] : dry-run for --build option | disabled\n"
|
Usage += " [--dryrun] : dry-run for --build option | disabled\n"
|
||||||
|
|
@ -365,6 +367,12 @@ def Parse_CommandLine_Arguments():
|
||||||
default=False,
|
default=False,
|
||||||
help='build and deploy' )
|
help='build and deploy' )
|
||||||
|
|
||||||
|
p.add_option( '--deploy',
|
||||||
|
action='store_true',
|
||||||
|
dest='deploy',
|
||||||
|
default=False,
|
||||||
|
help='deploy only' )
|
||||||
|
|
||||||
p.add_option( '--pymod',
|
p.add_option( '--pymod',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
dest='with_pymod',
|
dest='with_pymod',
|
||||||
|
|
@ -411,6 +419,7 @@ def Parse_CommandLine_Arguments():
|
||||||
targets = "%s" % targetopt,
|
targets = "%s" % targetopt,
|
||||||
qt_target = list(),
|
qt_target = list(),
|
||||||
build = False,
|
build = False,
|
||||||
|
deploy = False,
|
||||||
with_pymod = False,
|
with_pymod = False,
|
||||||
qa_test = False,
|
qa_test = False,
|
||||||
qa_check = False,
|
qa_check = False,
|
||||||
|
|
@ -501,6 +510,7 @@ def Parse_CommandLine_Arguments():
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
Build = opt.build
|
Build = opt.build
|
||||||
|
Deploy = opt.deploy
|
||||||
WithPymod = opt.with_pymod
|
WithPymod = opt.with_pymod
|
||||||
QATest = opt.qa_test
|
QATest = opt.qa_test
|
||||||
QACheck = opt.qa_check
|
QACheck = opt.qa_check
|
||||||
|
|
@ -526,7 +536,7 @@ def Parse_CommandLine_Arguments():
|
||||||
Upload = True
|
Upload = True
|
||||||
Dropbox = opt.upload
|
Dropbox = opt.upload
|
||||||
|
|
||||||
if not (Build or QATest or QACheck or MakeDMG or CleanDMG or Upload):
|
if not (Build or Deploy or QATest or QACheck or MakeDMG or CleanDMG or Upload):
|
||||||
print( "! No action selected" )
|
print( "! No action selected" )
|
||||||
print(Usage)
|
print(Usage)
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
@ -534,7 +544,7 @@ def Parse_CommandLine_Arguments():
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
## To build and deploy
|
## To build and deploy
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
def Build_Deploy():
|
def Build_Deploy( deployonly=False ):
|
||||||
pyBuilder = "./build4mac.py"
|
pyBuilder = "./build4mac.py"
|
||||||
myPlatform = Test_My_Platform()
|
myPlatform = Test_My_Platform()
|
||||||
buildOp, logfile = Get_Build_Options( Get_Build_Target_Dict(), myPlatform )
|
buildOp, logfile = Get_Build_Options( Get_Build_Target_Dict(), myPlatform )
|
||||||
|
|
@ -571,19 +581,20 @@ def Build_Deploy():
|
||||||
print( "" )
|
print( "" )
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if subprocess.call( command1, shell=False ) != 0:
|
if not deployonly:
|
||||||
print( "", file=sys.stderr )
|
if subprocess.call( command1, shell=False ) != 0:
|
||||||
print( "-----------------------------------------------------------------", file=sys.stderr )
|
print( "", file=sys.stderr )
|
||||||
print( "!!! <%s>: failed to build KLayout" % pyBuilder, file=sys.stderr )
|
print( "-----------------------------------------------------------------", file=sys.stderr )
|
||||||
print( "-----------------------------------------------------------------", file=sys.stderr )
|
print( "!!! <%s>: failed to build KLayout" % pyBuilder, file=sys.stderr )
|
||||||
print( "", file=sys.stderr )
|
print( "-----------------------------------------------------------------", file=sys.stderr )
|
||||||
sys.exit(1)
|
print( "", file=sys.stderr )
|
||||||
else:
|
sys.exit(1)
|
||||||
print( "", file=sys.stderr )
|
else:
|
||||||
print( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", file=sys.stderr )
|
print( "", file=sys.stderr )
|
||||||
print( "### <%s>: successfully built KLayout" % pyBuilder, file=sys.stderr )
|
print( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", file=sys.stderr )
|
||||||
print( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", file=sys.stderr )
|
print( "### <%s>: successfully built KLayout" % pyBuilder, file=sys.stderr )
|
||||||
print( "", file=sys.stderr )
|
print( "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", file=sys.stderr )
|
||||||
|
print( "", file=sys.stderr )
|
||||||
|
|
||||||
if subprocess.call( command2, shell=True ) != 0:
|
if subprocess.call( command2, shell=True ) != 0:
|
||||||
print( "", file=sys.stderr )
|
print( "", file=sys.stderr )
|
||||||
|
|
@ -784,7 +795,10 @@ def Main():
|
||||||
Parse_CommandLine_Arguments()
|
Parse_CommandLine_Arguments()
|
||||||
|
|
||||||
if Build:
|
if Build:
|
||||||
Build_Deploy()
|
Build_Deploy(deployonly=False)
|
||||||
|
if Deploy:
|
||||||
|
Build_Deploy(deployonly=True)
|
||||||
|
sys.exit(0)
|
||||||
if QATest:
|
if QATest:
|
||||||
Run_QATest( [] ) # ex. ['pymod', 'pya']
|
Run_QATest( [] ) # ex. ['pymod', 'pya']
|
||||||
if QACheck:
|
if QACheck:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue