1 # 2 # libjingle 3 # Copyright 2012, Google Inc. 4 # 5 # Redistribution and use in source and binary forms, with or without 6 # modification, are permitted provided that the following conditions are met: 7 # 8 # 1. Redistributions of source code must retain the above copyright notice, 9 # this list of conditions and the following disclaimer. 10 # 2. Redistributions in binary form must reproduce the above copyright notice, 11 # this list of conditions and the following disclaimer in the documentation 12 # and/or other materials provided with the distribution. 13 # 3. The name of the author may not be used to endorse or promote products 14 # derived from this software without specific prior written permission. 15 # 16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 # WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 # EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 # 27 28 # This file contains common settings for building libjingle components. 29 30 { 31 'variables': { 32 'webrtc_root%': '<(DEPTH)/webrtc', 33 # TODO(ronghuawu): Chromium build will need a different libjingle_root. 34 'libjingle_root%': '<(DEPTH)', 35 # TODO(ronghuawu): For now, disable the Chrome plugins, which causes a 36 # flood of chromium-style warnings. 37 'clang_use_chrome_plugins%': 0, 38 'libpeer_target_type%': 'static_library', 39 'conditions': [ 40 ['OS=="android" or OS=="linux"', { 41 # TODO(henrike): make sure waterfall bots have $JAVA_HOME configured 42 # properly and remove the default value below. See issue 2113. 43 '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")', 44 }], 45 ], 46 }, 47 'target_defaults': { 48 'include_dirs': [ 49 '../..', 50 '../../third_party', 51 '../../third_party/webrtc', 52 '../../webrtc', 53 ], 54 'defines': [ 55 'EXPAT_RELATIVE_PATH', 56 'FEATURE_ENABLE_VOICEMAIL', 57 'GTEST_RELATIVE_PATH', 58 'JSONCPP_RELATIVE_PATH', 59 'LOGGING=1', 60 'SRTP_RELATIVE_PATH', 61 62 # Feature selection 63 'FEATURE_ENABLE_SSL', 64 'FEATURE_ENABLE_VOICEMAIL', 65 'FEATURE_ENABLE_PSTN', 66 # TODO(eric): enable HAVE_NSS_SSL_H and SSL_USE_NSS once they are ready. 67 # 'HAVE_NSS_SSL_H=1', 68 'HAVE_SRTP', 69 'HAVE_WEBRTC_VIDEO', 70 'HAVE_WEBRTC_VOICE', 71 # 'SSL_USE_NSS', 72 # TODO(ronghuawu): Remove this once libjingle is updated to use the new 73 # webrtc. 74 'USE_WEBRTC_DEV_BRANCH', 75 ], 76 'conditions': [ 77 # TODO(ronghuawu): Support dynamic library build. 78 ['"<(libpeer_target_type)"=="static_library"', { 79 'defines': [ 'LIBPEERCONNECTION_LIB=1' ], 80 }], 81 ['OS=="linux"', { 82 'defines': [ 83 'LINUX', 84 ], 85 'conditions': [ 86 ['clang==1', { 87 'cflags': [ 88 # TODO(ronghuawu): Fix the warning caused by 89 # LateBindingSymbolTable::TableInfo from 90 # latebindingsymboltable.cc.def and remove below flag. 91 '-Wno-address-of-array-temporary', 92 ], 93 }], 94 ], 95 }], 96 ['OS=="mac"', { 97 'defines': [ 98 'OSX', 99 ], 100 }], 101 ['OS=="ios"', { 102 'defines': [ 103 'IOS', 104 'HAVE_NSS_SSL_H=1', 105 'SSL_USE_NSS_RNG', 106 ], 107 'defines!': [ 108 'HAVE_OPENSSL_SSL_H=1', 109 ], 110 }], 111 ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', { 112 'defines': [ 113 'CARBON_DEPRECATED=YES', 114 ], 115 }], 116 ['os_posix==1', { 117 'defines': [ 118 'HASH_NAMESPACE=__gnu_cxx', 119 'POSIX', 120 'DISABLE_DYNAMIC_CAST', 121 'HAVE_OPENSSL_SSL_H=1', 122 # The POSIX standard says we have to define this. 123 '_REENTRANT', 124 ], 125 }], 126 ], 127 }, # target_defaults 128 } 129