Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1595)

Side by Side Diff: tools/gyp/android.gypi

Issue 10823209: Add support for building the Dart VM for Android OS. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Incorporate review feedback from cshapiro Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 # Copyright 2012 the V8 project authors. All rights reserved.
2 # Redistribution and use in source and binary forms, with or without
3 # modification, are permitted provided that the following conditions are
4 # met:
5 #
6 # * Redistributions of source code must retain the above copyright
7 # notice, this list of conditions and the following disclaimer.
8 # * Redistributions in binary form must reproduce the above
9 # copyright notice, this list of conditions and the following
10 # disclaimer in the documentation and/or other materials provided
11 # with the distribution.
12 # * Neither the name of Google Inc. nor the names of its
13 # contributors may be used to endorse or promote products derived
14 # from this software without specific prior written permission.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 # Definitions for building standalone V8 binaries to run on Android.
29 # This is mostly excerpted from:
30 # http://src.chromium.org/viewvc/chrome/trunk/src/build/common.gypi
31
32 {
33 'variables': {
34 # Location of Android NDK.
35 'variables': {
36 'variables': {
37 'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)',
38
39 # Switch between different build types, currently only '0' is
40 # supported.
41 'android_build_type%': 0,
42 },
43 'android_ndk_root%': '<(android_ndk_root)',
44 'android_ndk_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(and roid_target_arch)',
45 'android_build_type%': '<(android_build_type)',
46 },
47 'android_ndk_root%': '<(android_ndk_root)',
48 'android_ndk_sysroot': '<(android_ndk_sysroot)',
49 'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
50 'android_ndk_lib': '<(android_ndk_sysroot)/usr/lib',
51 # Enable to use the system stlport, otherwise statically
52 # link the NDK one?
53 'use_system_stlport%': '<(android_build_type)',
54 'android_stlport_library': 'stlport_static',
55 # Copy it out one scope.
56 'android_build_type%': '<(android_build_type)',
57
58 'OS': 'android',
59 }, # variables
60 'target_defaults': {
61 'defines': [
62 'ANDROID',
63 'V8_ANDROID_LOG_STDOUT',
64 ],
65 'configurations': {
66 'Release': {
67 'cflags!': [
68 '-O2',
69 '-Os',
70 ],
71 'cflags': [
72 '-fdata-sections',
73 '-ffunction-sections',
74 '-fomit-frame-pointer',
75 '-O3',
76 ],
77 }, # Release
78 }, # configurations
79 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter',
80 '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', ],
81 'target_conditions': [
82 ['_toolset=="target"', {
83 'cflags!': [
84 '-pthread', # Not supported by Android toolchain.
85 ],
86 'cflags': [
87 '-U__linux__', # Don't allow toolchain to claim -D__linux__
88 '-ffunction-sections',
89 '-funwind-tables',
90 '-fstack-protector',
91 '-fno-short-enums',
92 '-finline-limit=64',
93 '-Wa,--noexecstack',
94 '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings.
95 # Note: This include is in cflags to ensure that it comes after
96 # all of the includes.
97 '-I<(android_ndk_include)',
98 ],
99 'defines': [
100 'ANDROID',
101 #'__GNU_SOURCE=1', # Necessary for clone()
102 'USE_STLPORT=1',
103 '_STLP_USE_PTR_SPECIALIZATIONS=1',
104 'HAVE_OFF64_T',
105 'HAVE_SYS_UIO_H',
106 'ANDROID_BINSIZE_HACK', # Enable temporary hacks to reduce binsize.
107 ],
108 'ldflags!': [
109 '-pthread', # Not supported by Android toolchain.
110 ],
111 'ldflags': [
112 '-nostdlib',
113 '-Wl,--no-undefined',
114 # Don't export symbols from statically linked libraries.
115 '-Wl,--exclude-libs=ALL',
116 ],
117 'libraries!': [
118 '-lrt', # librt is built into Bionic.
119 # Not supported by Android toolchain.
120 # Where do these come from? Can't find references in
121 # any Chromium gyp or gypi file. Maybe they come from
122 # gyp itself?
123 '-lpthread', '-lnss3', '-lnssutil3', '-lsmime3', '-lplds4', '-lplc4' , '-lnspr4',
124 ],
125 'libraries': [
126 '-l<(android_stlport_library)',
127 # Manually link the libgcc.a that the cross compiler uses.
128 '<!(${ANDROID_TOOLCHAIN}/*-gcc -print-libgcc-file-name)',
129 '-lc',
130 '-ldl',
131 '-lstdc++',
132 '-lm',
133 ],
134 'conditions': [
135 ['android_build_type==0', {
136 'ldflags': [
137 '-Wl,-rpath-link=<(android_ndk_lib)',
138 '-L<(android_ndk_lib)',
139 ],
140 }],
141 ['target_arch == "arm"', {
142 'ldflags': [
143 # Enable identical code folding to reduce size.
144 '-Wl,--icf=safe',
145 ],
146 }],
147 ['target_arch=="arm" and armv7==1', {
148 'cflags': [
149 '-march=armv7-a',
150 '-mtune=cortex-a8',
151 '-mfpu=vfp3',
152 ],
153 }],
cshapiro 2012/08/07 22:39:40 No cflags for x86 on android? There are some pref
jackpal 2012/08/08 00:26:19 This file comes mostly-unchanged from the v8 build
154 # NOTE: The stlport header include paths below are specified in
155 # cflags rather than include_dirs because they need to come
156 # after include_dirs. Think of them like system headers, but
157 # don't use '-isystem' because the arm-linux-androideabi-4.4.3
158 # toolchain (circa Gingerbread) will exhibit strange errors.
159 # The include ordering here is important; change with caution.
160 ['use_system_stlport==0', {
161 'cflags': [
162 '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
163 ],
164 'conditions': [
165 ['target_arch=="arm" and armv7==1', {
166 'ldflags': [
167 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi-v7 a',
168 ],
169 }],
170 ['target_arch=="arm" and armv7==0', {
171 'ldflags': [
172 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi',
173 ],
174 }],
175 ['target_arch=="ia32"', {
176 'ldflags': [
177 '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86',
178 ],
179 }],
180 ],
181 }],
182 ['target_arch=="ia32"', {
183 # The x86 toolchain currently has problems with stack-protector.
184 'cflags!': [
185 '-fstack-protector',
186 ],
187 'cflags': [
188 '-fno-stack-protector',
189 ],
190 }],
191 ],
192 'target_conditions': [
193 ['_type=="executable"', {
194 'ldflags': [
195 '-Bdynamic',
196 '-Wl,-dynamic-linker,/system/bin/linker',
197 '-Wl,--gc-sections',
198 '-Wl,-z,nocopyreloc',
199 # crtbegin_dynamic.o should be the last item in ldflags.
200 '<(android_ndk_lib)/crtbegin_dynamic.o',
201 ],
202 'libraries': [
203 # crtend_android.o needs to be the last item in libraries.
204 # Do not add any libraries after this!
205 '<(android_ndk_lib)/crtend_android.o',
206 ],
207 }],
208 ['_type=="shared_library"', {
209 'ldflags': [
210 '-Wl,-shared,-Bsymbolic',
211 ],
212 }],
213 ],
214 }], # _toolset=="target"
215 # Settings for building host targets using the system toolchain.
216 ['_toolset=="host"', {
217 'cflags': [ '-m32', '-pthread' ],
218 'ldflags': [ '-m32', '-pthread' ],
219 'ldflags!': [
220 '-Wl,-z,noexecstack',
221 '-Wl,--gc-sections',
222 '-Wl,-O1',
223 '-Wl,--as-needed',
224 ],
225 }],
226 ], # target_conditions
227 }, # target_defaults
228 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698