Home | History | Annotate | Download | only in openssl
      1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 {
      6   'targets': [
      7     {
      8       'target_name': 'openssl',
      9       'type': '<(component)',
     10       'includes': [
     11         # Include the auto-generated gypi file.
     12         'openssl.gypi'
     13       ],
     14       'variables': {
     15         'openssl_include_dirs': [
     16           '.',
     17           'openssl',
     18           'openssl/crypto',
     19           'openssl/crypto/asn1',
     20           'openssl/crypto/evp',
     21           'openssl/crypto/modes',
     22           'openssl/include',
     23         ],
     24         'openssl_public_include_dirs': [
     25           'openssl/include',
     26         ],
     27       },
     28       'sources': [
     29         '<@(openssl_common_sources)',
     30       ],
     31       'defines': [
     32         '<@(openssl_common_defines)',
     33         'PURIFY',
     34         'MONOLITH',
     35         'OPENSSL_NO_ASM',
     36       ],
     37       'defines!': [
     38         'TERMIO',
     39       ],
     40       'conditions': [
     41         ['os_posix==1 and OS!="android"', {
     42           'defines': [
     43             # ENGINESDIR must be defined if OPENSSLDIR is.
     44             'ENGINESDIR="/dev/null"',
     45             # Set to ubuntu default path for convenience. If necessary, override
     46             # this at runtime with the SSL_CERT_DIR environment variable.
     47             'OPENSSLDIR="/etc/ssl"',
     48           ],
     49         }],
     50         ['target_arch == "arm"', {
     51           'sources': [ '<@(openssl_arm_sources)' ],
     52           'sources!': [ '<@(openssl_arm_source_excludes)' ],
     53           'defines': [ '<@(openssl_arm_defines)' ],
     54           'defines!': [ 'OPENSSL_NO_ASM' ],
     55         }],
     56         ['target_arch == "mipsel"', {
     57           'sources': [ '<@(openssl_mips_sources)' ],
     58           'sources!': [ '<@(openssl_mips_source_excludes)' ],
     59           'defines': [ '<@(openssl_mips_defines)' ],
     60           'defines!': [ 'OPENSSL_NO_ASM' ],
     61         }],
     62         ['target_arch == "ia32" and OS !="mac"', {
     63           'sources': [ '<@(openssl_x86_sources)' ],
     64           'sources!': [ '<@(openssl_x86_source_excludes)' ],
     65           'defines': [ '<@(openssl_x86_defines)' ],
     66           'defines!': [ 'OPENSSL_NO_ASM' ],
     67         }],
     68         ['target_arch == "ia32" and OS == "mac"', {
     69           'sources': [ '<@(openssl_mac_ia32_sources)' ],
     70           'sources!': [ '<@(openssl_mac_ia32_source_excludes)' ],
     71           'defines': [ '<@(openssl_mac_ia32_defines)' ],
     72           'defines!': [ 'OPENSSL_NO_ASM' ],
     73           'variables': {
     74             # Ensure the 32-bit opensslconf.h header for OS X is used.
     75             'openssl_include_dirs+': [ 'config/mac/ia32' ],
     76             'openssl_public_include_dirs+': [ 'config/mac/ia32' ],
     77           },
     78           'xcode_settings': {
     79             # Clang needs this to understand the inline assembly keyword 'asm'.
     80             'GCC_C_LANGUAGE_STANDARD': 'gnu99',
     81           },
     82         }],
     83         ['target_arch == "x64"', {
     84           'sources': [ '<@(openssl_x86_64_sources)' ],
     85           'sources!': [ '<@(openssl_x86_64_source_excludes)' ],
     86           'defines': [ '<@(openssl_x86_64_defines)' ],
     87           'defines!': [ 'OPENSSL_NO_ASM' ],
     88           'variables': {
     89             # Ensure the 64-bit opensslconf.h header is used.
     90             'openssl_include_dirs+': [ 'config/x64' ],
     91             'openssl_public_include_dirs+': [ 'config/x64' ],
     92           },
     93         }],
     94         ['component == "shared_library"', {
     95           'xcode_settings': {
     96             'GCC_SYMBOLS_PRIVATE_EXTERN': 'NO',  # no -fvisibility=hidden
     97           },
     98           'cflags!': ['-fvisibility=hidden'],
     99         }],
    100         ['clang==1', {
    101           'cflags': [
    102             # OpenSSL has a few |if ((foo == NULL))| checks.
    103             '-Wno-parentheses-equality',
    104             # OpenSSL uses several function-style macros and then ignores the
    105             # returned value.
    106             '-Wno-unused-value',
    107           ],
    108         }, { # Not clang. Disable all warnings.
    109           'cflags': [
    110             '-w',
    111           ],
    112         }]
    113       ],
    114       'include_dirs': [
    115         '<@(openssl_include_dirs)',
    116       ],
    117       'direct_dependent_settings': {
    118         'include_dirs': [
    119           '<@(openssl_public_include_dirs)',
    120         ],
    121       },
    122     },
    123   ],
    124 }
    125 
    126 # Local Variables:
    127 # tab-width:2
    128 # indent-tabs-mode:nil
    129 # End:
    130 # vim: set expandtab tabstop=2 shiftwidth=2:
    131