Separated post back build into release and debug #4464
Also related to #4463
This commit is contained in:
parent
0b4d480bcc
commit
e0cb5bda6e
|
@ -698,33 +698,36 @@ class InternalCommands:
|
||||||
raise Exception('Build command not supported with generator: ' + generator)
|
raise Exception('Build command not supported with generator: ' + generator)
|
||||||
|
|
||||||
def makeGui(self, targets, args=""):
|
def makeGui(self, targets, args=""):
|
||||||
name = "Synergy.app"
|
for target in targets:
|
||||||
self.try_chdir(self.getGenerator().binDir)
|
|
||||||
if os.path.exists(name):
|
|
||||||
print "removing exisiting bundle"
|
|
||||||
shutil.rmtree(name)
|
|
||||||
self.restore_chdir()
|
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
gui_make_cmd = self.w32_make_cmd
|
|
||||||
elif sys.platform in ['linux2', 'sunos5', 'freebsd7', 'darwin']:
|
|
||||||
gui_make_cmd = self.make_cmd + " -w"
|
|
||||||
else:
|
|
||||||
raise Exception('Unsupported platform: ' + sys.platform)
|
|
||||||
|
|
||||||
gui_make_cmd += args
|
|
||||||
|
|
||||||
|
gui_make_cmd = self.w32_make_cmd + ' ' + target + args
|
||||||
print 'Make GUI command: ' + gui_make_cmd
|
print 'Make GUI command: ' + gui_make_cmd
|
||||||
|
|
||||||
if sys.platform == 'win32':
|
|
||||||
for target in targets:
|
|
||||||
self.try_chdir(self.gui_dir)
|
self.try_chdir(self.gui_dir)
|
||||||
err = os.system(gui_make_cmd + ' ' + target)
|
err = os.system(gui_make_cmd)
|
||||||
self.restore_chdir()
|
self.restore_chdir()
|
||||||
|
|
||||||
if err != 0:
|
if err != 0:
|
||||||
raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
||||||
else:
|
|
||||||
|
elif sys.platform in ['linux2', 'sunos5', 'freebsd7', 'darwin']:
|
||||||
|
|
||||||
|
gui_make_cmd = self.make_cmd + " -w" + args
|
||||||
|
print 'Make GUI command: ' + gui_make_cmd
|
||||||
|
|
||||||
|
# start with a clean app bundle
|
||||||
|
targetDir = self.getGenerator().getBinDir(target)
|
||||||
|
bundleTargetDir = targetDir + '/Synergy.app'
|
||||||
|
if os.path.exists(bundleTargetDir):
|
||||||
|
shutil.rmtree(bundleTargetDir)
|
||||||
|
|
||||||
|
binDir = self.getGenerator().binDir
|
||||||
|
bundleTempDir = binDir + '/Synergy.app'
|
||||||
|
if os.path.exists(bundleTempDir):
|
||||||
|
shutil.rmtree(bundleTempDir)
|
||||||
|
|
||||||
self.try_chdir(self.gui_dir)
|
self.try_chdir(self.gui_dir)
|
||||||
err = os.system(gui_make_cmd)
|
err = os.system(gui_make_cmd)
|
||||||
self.restore_chdir()
|
self.restore_chdir()
|
||||||
|
@ -733,8 +736,9 @@ class InternalCommands:
|
||||||
raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
||||||
|
|
||||||
if sys.platform == 'darwin' and not "clean" in args:
|
if sys.platform == 'darwin' and not "clean" in args:
|
||||||
for target in targets:
|
self.macPostGuiMake(target)
|
||||||
self.macPostMake(target)
|
else:
|
||||||
|
raise Exception('Unsupported platform: ' + sys.platform)
|
||||||
|
|
||||||
def symlink(self, source, target):
|
def symlink(self, source, target):
|
||||||
if not os.path.exists(target):
|
if not os.path.exists(target):
|
||||||
|
@ -744,36 +748,41 @@ class InternalCommands:
|
||||||
if os.path.exists(source):
|
if os.path.exists(source):
|
||||||
shutil.move(source, target)
|
shutil.move(source, target)
|
||||||
|
|
||||||
def macPostMake(self, target):
|
def macPostGuiMake(self, target):
|
||||||
|
|
||||||
dir = self.getGenerator().binDir
|
bundle = 'Synergy.app'
|
||||||
|
binDir = self.getGenerator().binDir
|
||||||
|
targetDir = self.getGenerator().getBinDir(target)
|
||||||
|
bundleTempDir = binDir + '/' + bundle
|
||||||
|
bundleTargetDir = targetDir + '/' + bundle
|
||||||
|
|
||||||
|
if os.path.exists(bundleTempDir):
|
||||||
|
shutil.move(bundleTempDir, bundleTargetDir)
|
||||||
|
|
||||||
if self.enableMakeCore:
|
if self.enableMakeCore:
|
||||||
# copy core binaries into the bundle, since the gui
|
# copy core binaries into the bundle, since the gui
|
||||||
# now looks for the binaries in the current app dir.
|
# now looks for the binaries in the current app dir.
|
||||||
|
|
||||||
targetDir = self.getGenerator().getBinDir(target)
|
bundleBinDir = bundleTargetDir + "/Contents/MacOS/"
|
||||||
bundleBinDir = dir + "/Synergy.app/Contents/MacOS/"
|
|
||||||
shutil.copy(targetDir + "/synergyc", bundleBinDir)
|
shutil.copy(targetDir + "/synergyc", bundleBinDir)
|
||||||
shutil.copy(targetDir + "/synergys", bundleBinDir)
|
shutil.copy(targetDir + "/synergys", bundleBinDir)
|
||||||
shutil.copy(targetDir + "/syntool", bundleBinDir)
|
shutil.copy(targetDir + "/syntool", bundleBinDir)
|
||||||
|
|
||||||
if self.enableMakeGui:
|
|
||||||
|
|
||||||
self.loadConfig()
|
self.loadConfig()
|
||||||
if not self.macIdentity:
|
if not self.macIdentity:
|
||||||
raise Exception("run config with --mac-identity")
|
raise Exception("run config with --mac-identity")
|
||||||
|
|
||||||
# use qt to copy libs to bundle so no dependencies are needed. do not create a
|
if sys.version_info < (2, 4):
|
||||||
# dmg at this point, since we need to sign it first, and then create our own
|
raise Exception("Python 2.4 or greater required.")
|
||||||
# after signing (so that qt does not affect the signed app bundle).
|
|
||||||
bin = "macdeployqt Synergy.app -verbose=2 -codesign='" + self.macIdentity + "'"
|
|
||||||
self.try_chdir(dir)
|
|
||||||
err = os.system(bin)
|
|
||||||
self.restore_chdir()
|
|
||||||
|
|
||||||
if err != 0:
|
output = os.popen(
|
||||||
raise Exception(bin + " failed with error: " + str(err))
|
"macdeployqt %s/Synergy.app -verbose=2 -codesign='%s'" % (
|
||||||
|
targetDir, self.macIdentity)).read()
|
||||||
|
|
||||||
|
print output
|
||||||
|
|
||||||
|
if "ERROR" in output:
|
||||||
|
raise Exception("macdeployqt failed")
|
||||||
|
|
||||||
def signmac(self):
|
def signmac(self):
|
||||||
print "signmac is now obsolete"
|
print "signmac is now obsolete"
|
||||||
|
@ -1183,16 +1192,16 @@ class InternalCommands:
|
||||||
|
|
||||||
def distMac(self):
|
def distMac(self):
|
||||||
self.loadConfig()
|
self.loadConfig()
|
||||||
dir = self.getGenerator().binDir
|
binDir = self.getGenerator().getBinDir('Release')
|
||||||
name = "Synergy"
|
name = "Synergy"
|
||||||
dist = dir + "/" + name
|
dist = binDir + "/" + name
|
||||||
|
|
||||||
# ensure dist dir is clean
|
# ensure dist dir is clean
|
||||||
if os.path.exists(dist):
|
if os.path.exists(dist):
|
||||||
shutil.rmtree(dist)
|
shutil.rmtree(dist)
|
||||||
|
|
||||||
os.makedirs(dist)
|
os.makedirs(dist)
|
||||||
shutil.move(dir + "/" + name + ".app", dist + "/" + name + ".app")
|
shutil.move(binDir + "/" + name + ".app", dist + "/" + name + ".app")
|
||||||
|
|
||||||
self.try_chdir(dist)
|
self.try_chdir(dist)
|
||||||
err = os.system("ln -s /Applications")
|
err = os.system("ln -s /Applications")
|
||||||
|
@ -1205,7 +1214,7 @@ class InternalCommands:
|
||||||
|
|
||||||
cmd = "hdiutil create " + fileName + " -srcfolder ./" + name + "/ -ov"
|
cmd = "hdiutil create " + fileName + " -srcfolder ./" + name + "/ -ov"
|
||||||
|
|
||||||
self.try_chdir(dir)
|
self.try_chdir(binDir)
|
||||||
err = os.system(cmd)
|
err = os.system(cmd)
|
||||||
self.restore_chdir()
|
self.restore_chdir()
|
||||||
|
|
||||||
|
@ -1376,8 +1385,9 @@ class InternalCommands:
|
||||||
|
|
||||||
pattern = re.escape(self.project + '-') + '\d+\.\d+\.\d+' + re.escape('-' + platform + '.' + ext)
|
pattern = re.escape(self.project + '-') + '\d+\.\d+\.\d+' + re.escape('-' + platform + '.' + ext)
|
||||||
|
|
||||||
# only use release dir if not windows
|
|
||||||
target = ''
|
target = ''
|
||||||
|
if type == 'mac':
|
||||||
|
target = 'Release'
|
||||||
|
|
||||||
for filename in os.listdir(self.getBinDir(target)):
|
for filename in os.listdir(self.getBinDir(target)):
|
||||||
if re.search(pattern, filename):
|
if re.search(pattern, filename):
|
||||||
|
|
|
@ -0,0 +1,153 @@
|
||||||
|
diff --git a/ext/toolchain/commands1.py b/ext/toolchain/commands1.py
|
||||||
|
index f29a721..cdd2ac6 100644
|
||||||
|
--- a/ext/toolchain/commands1.py
|
||||||
|
+++ b/ext/toolchain/commands1.py
|
||||||
|
@@ -698,43 +698,49 @@ class InternalCommands:
|
||||||
|
raise Exception('Build command not supported with generator: ' + generator)
|
||||||
|
|
||||||
|
def makeGui(self, targets, args=""):
|
||||||
|
- name = "Synergy.app"
|
||||||
|
- self.try_chdir(self.getGenerator().binDir)
|
||||||
|
- if os.path.exists(name):
|
||||||
|
- print "removing exisiting bundle"
|
||||||
|
- shutil.rmtree(name)
|
||||||
|
- self.restore_chdir()
|
||||||
|
-
|
||||||
|
- if sys.platform == 'win32':
|
||||||
|
- gui_make_cmd = self.w32_make_cmd
|
||||||
|
- elif sys.platform in ['linux2', 'sunos5', 'freebsd7', 'darwin']:
|
||||||
|
- gui_make_cmd = self.make_cmd + " -w"
|
||||||
|
- else:
|
||||||
|
- raise Exception('Unsupported platform: ' + sys.platform)
|
||||||
|
-
|
||||||
|
- gui_make_cmd += args
|
||||||
|
-
|
||||||
|
- print 'Make GUI command: ' + gui_make_cmd
|
||||||
|
+ for target in targets:
|
||||||
|
|
||||||
|
- if sys.platform == 'win32':
|
||||||
|
- for target in targets:
|
||||||
|
+ if sys.platform == 'win32':
|
||||||
|
+
|
||||||
|
+ gui_make_cmd = self.w32_make_cmd + ' ' + target + args
|
||||||
|
+ print 'Make GUI command: ' + gui_make_cmd
|
||||||
|
+
|
||||||
|
self.try_chdir(self.gui_dir)
|
||||||
|
- err = os.system(gui_make_cmd + ' ' + target)
|
||||||
|
+ err = os.system(gui_make_cmd)
|
||||||
|
self.restore_chdir()
|
||||||
|
|
||||||
|
if err != 0:
|
||||||
|
raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
||||||
|
- else:
|
||||||
|
- self.try_chdir(self.gui_dir)
|
||||||
|
- err = os.system(gui_make_cmd)
|
||||||
|
- self.restore_chdir()
|
||||||
|
|
||||||
|
- if err != 0:
|
||||||
|
- raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
||||||
|
+ elif sys.platform in ['linux2', 'sunos5', 'freebsd7', 'darwin']:
|
||||||
|
|
||||||
|
- if sys.platform == 'darwin' and not "clean" in args:
|
||||||
|
- for target in targets:
|
||||||
|
- self.macPostMake(target)
|
||||||
|
+ gui_make_cmd = self.make_cmd + " -w" + args
|
||||||
|
+ print 'Make GUI command: ' + gui_make_cmd
|
||||||
|
+
|
||||||
|
+ # start with a clean app bundle
|
||||||
|
+ targetDir = self.getGenerator().getBinDir(target)
|
||||||
|
+ bundleTargetDir = targetDir + '/Synergy.app'
|
||||||
|
+ print bundleTargetDir
|
||||||
|
+ if os.path.exists(bundleTargetDir):
|
||||||
|
+ shutil.rmtree(bundleTargetDir)
|
||||||
|
+
|
||||||
|
+ binDir = self.getGenerator().binDir
|
||||||
|
+ bundleTempDir = binDir + '/Synergy.app'
|
||||||
|
+ print bundleTempDir
|
||||||
|
+ if os.path.exists(bundleTempDir):
|
||||||
|
+ shutil.rmtree(bundleTempDir)
|
||||||
|
+
|
||||||
|
+ self.try_chdir(self.gui_dir)
|
||||||
|
+ err = os.system(gui_make_cmd)
|
||||||
|
+ self.restore_chdir()
|
||||||
|
+
|
||||||
|
+ if err != 0:
|
||||||
|
+ raise Exception(gui_make_cmd + ' failed with error: ' + str(err))
|
||||||
|
+
|
||||||
|
+ if sys.platform == 'darwin' and not "clean" in args:
|
||||||
|
+ self.macPostGuiMake(target)
|
||||||
|
+ else:
|
||||||
|
+ raise Exception('Unsupported platform: ' + sys.platform)
|
||||||
|
|
||||||
|
def symlink(self, source, target):
|
||||||
|
if not os.path.exists(target):
|
||||||
|
@@ -744,36 +750,51 @@ class InternalCommands:
|
||||||
|
if os.path.exists(source):
|
||||||
|
shutil.move(source, target)
|
||||||
|
|
||||||
|
- def macPostMake(self, target):
|
||||||
|
+ def macPostGuiMake(self, target):
|
||||||
|
|
||||||
|
- dir = self.getGenerator().binDir
|
||||||
|
+ bundle = 'Synergy.app'
|
||||||
|
+ binDir = self.getGenerator().binDir
|
||||||
|
+ targetDir = self.getGenerator().getBinDir(target)
|
||||||
|
+ bundleTempDir = binDir + '/' + bundle
|
||||||
|
+ bundleTargetDir = targetDir + '/' + bundle
|
||||||
|
+
|
||||||
|
+ if os.path.exists(bundleTempDir):
|
||||||
|
+ shutil.move(bundleTempDir, bundleTargetDir)
|
||||||
|
|
||||||
|
if self.enableMakeCore:
|
||||||
|
# copy core binaries into the bundle, since the gui
|
||||||
|
# now looks for the binaries in the current app dir.
|
||||||
|
|
||||||
|
- targetDir = self.getGenerator().getBinDir(target)
|
||||||
|
- bundleBinDir = dir + "/Synergy.app/Contents/MacOS/"
|
||||||
|
+ bundleBinDir = bundleTargetDir + "/Contents/MacOS/"
|
||||||
|
shutil.copy(targetDir + "/synergyc", bundleBinDir)
|
||||||
|
shutil.copy(targetDir + "/synergys", bundleBinDir)
|
||||||
|
shutil.copy(targetDir + "/syntool", bundleBinDir)
|
||||||
|
|
||||||
|
- if self.enableMakeGui:
|
||||||
|
+ self.loadConfig()
|
||||||
|
+ if not self.macIdentity:
|
||||||
|
+ raise Exception("run config with --mac-identity")
|
||||||
|
|
||||||
|
- self.loadConfig()
|
||||||
|
- if not self.macIdentity:
|
||||||
|
- raise Exception("run config with --mac-identity")
|
||||||
|
-
|
||||||
|
- # use qt to copy libs to bundle so no dependencies are needed. do not create a
|
||||||
|
- # dmg at this point, since we need to sign it first, and then create our own
|
||||||
|
- # after signing (so that qt does not affect the signed app bundle).
|
||||||
|
- bin = "macdeployqt Synergy.app -verbose=2 -codesign='" + self.macIdentity + "'"
|
||||||
|
- self.try_chdir(dir)
|
||||||
|
- err = os.system(bin)
|
||||||
|
- self.restore_chdir()
|
||||||
|
+ if sys.version_info < (2, 4):
|
||||||
|
+ raise Exception("Python 2.4 or greater required.")
|
||||||
|
|
||||||
|
- if err != 0:
|
||||||
|
- raise Exception(bin + " failed with error: " + str(err))
|
||||||
|
+ self.try_chdir(targetDir)
|
||||||
|
+
|
||||||
|
+ p = subprocess.Popen(
|
||||||
|
+ ["macdeployqt", "Synergy.app", "-verbose=2",
|
||||||
|
+ "-codesign='" + self.macIdentity + "'"],
|
||||||
|
+ stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
|
+
|
||||||
|
+ stdout, stderr = p.communicate()
|
||||||
|
+
|
||||||
|
+ self.restore_chdir()
|
||||||
|
+
|
||||||
|
+ # print stderr to standard out, since macdeployqt sends
|
||||||
|
+ # everything to stderr making it meaningless.
|
||||||
|
+ print stdout
|
||||||
|
+ print stderr
|
||||||
|
+
|
||||||
|
+ if "ERROR" in stderr:
|
||||||
|
+ raise Exception("macdeployqt failed")
|
||||||
|
|
||||||
|
def signmac(self):
|
||||||
|
print "signmac is now obsolete"
|
Loading…
Reference in New Issue