libjingle gyp: signal errors during gyp time to avoid cryptic failures during build time.

- $JAVA_HOME / java_home missing or not pointing to a JDK
- Multiple or zero mac codesigning identities

BUG=2206
R=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2012004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4527 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
fischman@webrtc.org 2013-08-12 18:06:29 +00:00
parent 1928d0ef67
commit dd14b2add1
2 changed files with 22 additions and 7 deletions

@ -29,18 +29,22 @@
{
'variables': {
'webrtc_root%': '<(DEPTH)/webrtc',
'webrtc_root%': '<(DEPTH)/webrtc',
# TODO(ronghuawu): Chromium build will need a different libjingle_root.
'libjingle_root%': '<(DEPTH)',
# TODO(ronghuawu): For now, disable the Chrome plugins, which causes a
# flood of chromium-style warnings.
'clang_use_chrome_plugins%': 0,
'libpeer_target_type%': 'static_library',
# TODO(henrike): make sure waterfall bots have $JAVA_HOME configured
# properly and remove the default value below. See issue 2113.
'java_home%': '<!(python -c "import os; print os.getenv(\'JAVA_HOME\', \'/usr/lib/jvm/java-6-sun\');")',
# Whether or not to build the ObjectiveC PeerConnection API & tests.
'libjingle_objc%' : 0,
'libjingle_objc%': 0,
'conditions': [
['OS=="android" or OS=="linux"', {
# TODO(henrike): make sure waterfall bots have $JAVA_HOME configured
# properly and remove the default value below. See issue 2113.
'java_home%': '<!(python -c "import os; dir=os.getenv(\'JAVA_HOME\', \'/usr/lib/jvm/java-6-sun\'); assert os.path.exists(os.path.join(dir, \'include/jni.h\')), \'Point \\$JAVA_HOME or the java_home gyp variable to a directory containing include/jni.h!\'; print dir")',
}],
],
},
'target_defaults': {
'include_dirs': [

@ -266,9 +266,20 @@
# Ideally app signing would be a part of gyp.
# Delete if/when that comes to pass.
'postbuild_name': 'Sign AppRTCDemo',
'variables': {
'variables': {
'key_id%': '<!(security find-identity -p codesigning -v | grep "iPhone Developer" | awk \'{print $2}\')',
},
'key_id%': '<(key_id)',
# Total HACK to give a more informative message when multiple
# codesigning keys are present in the default keychain. Ideally
# we could pick more intelligently among the keys, but as a
# first cut just tell the developer to specify a key identity
# explicitly.
'ensure_single_key': '<!(python -c "assert len(\'\'\'<(key_id)\'\'\') > 0 and \'\\n\' not in \'\'\'<(key_id)\'\'\', \'key_id gyp variable needs to be set explicitly because there are multiple codesigning keys, or none!\'")',
},
'action': [
'/usr/bin/codesign', '-v', '--force', '--sign',
'<!(security find-identity -p codesigning -v | grep "iPhone Developer" | awk \'{print $2}\')',
'/usr/bin/codesign', '-v', '--force', '--sign', '<(key_id)',
'${BUILT_PRODUCTS_DIR}/AppRTCDemo.app',
],
},