• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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