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

Side by Side Diff: docs/getting_started.md

Issue 2386093003: Enable optimize max for arm in GN + update docs (Closed)
Patch Set: document is_asan=true Created 4 years, 2 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
« no previous file with comments | « docs/deprecated_builds.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Getting Started 1 # Getting Started
2 2
3 How to get and build the libyuv code. 3 How to get and build the libyuv code.
4 4
5 ## Pre-requisites 5 ## Pre-requisites
6 6
7 You'll need to have depot tools installed: https://www.chromium.org/developers/h ow-tos/install-depot-tools 7 You'll need to have depot tools installed: https://www.chromium.org/developers/h ow-tos/install-depot-tools
8 Refer to chromium instructions for each platform for other prerequisites. 8 Refer to chromium instructions for each platform for other prerequisites.
9 9
10 ## Getting the Code 10 ## Getting the Code
11 11
12 Create a working directory, enter it, and run: 12 Create a working directory, enter it, and run:
13 13
14 gclient config https://chromium.googlesource.com/libyuv/libyuv 14 gclient config https://chromium.googlesource.com/libyuv/libyuv
15 gclient sync 15 gclient sync
16 16
17
18 Then you'll get a .gclient file like: 17 Then you'll get a .gclient file like:
19 18
20 solutions = [ 19 solutions = [
21 { "name" : "libyuv", 20 { "name" : "libyuv",
22 "url" : "https://chromium.googlesource.com/libyuv/libyuv", 21 "url" : "https://chromium.googlesource.com/libyuv/libyuv",
23 "deps_file" : "DEPS", 22 "deps_file" : "DEPS",
24 "managed" : True, 23 "managed" : True,
25 "custom_deps" : { 24 "custom_deps" : {
26 }, 25 },
27 "safesync_url": "", 26 "safesync_url": "",
28 }, 27 },
29 ]; 28 ];
30 29
31
32 For iOS add `;target_os=['ios'];` to your OSX .gclient and run `GYP_DEFINES="OS= ios" gclient sync.` 30 For iOS add `;target_os=['ios'];` to your OSX .gclient and run `GYP_DEFINES="OS= ios" gclient sync.`
33 31
34 Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/ma ster 32 Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/ma ster
35 33
36 ### Android 34 ### Android
37 For Android add `;target_os=['android'];` to your Linux .gclient 35 For Android add `;target_os=['android'];` to your Linux .gclient
38 36
39
40 solutions = [ 37 solutions = [
41 { "name" : "libyuv", 38 { "name" : "libyuv",
42 "url" : "https://chromium.googlesource.com/libyuv/libyuv", 39 "url" : "https://chromium.googlesource.com/libyuv/libyuv",
43 "deps_file" : "DEPS", 40 "deps_file" : "DEPS",
44 "managed" : True, 41 "managed" : True,
45 "custom_deps" : { 42 "custom_deps" : {
46 }, 43 },
47 "safesync_url": "", 44 "safesync_url": "",
48 }, 45 },
49 ]; 46 ];
(...skipping 16 matching lines...) Expand all
66 63
67 To get just the source (not buildable): 64 To get just the source (not buildable):
68 65
69 git clone https://chromium.googlesource.com/libyuv/libyuv 66 git clone https://chromium.googlesource.com/libyuv/libyuv
70 67
71 68
72 ## Building the Library and Unittests 69 ## Building the Library and Unittests
73 70
74 ### Windows 71 ### Windows
75 72
76 set GYP_DEFINES=target_arch=ia32 73 call gn gen out/Release "--args=is_debug=false target_cpu=\"x86\""
77 call python gyp_libyuv -fninja -G msvs_version=2013 74 call gn gen out/Debug "--args=is_debug=true target_cpu=\"x86\""
78 ninja -j7 -C out\Release 75 ninja -j7 -v -C out/Release
79 ninja -j7 -C out\Debug 76 ninja -j7 -v -C out/Debug
80 77
81 set GYP_DEFINES=target_arch=x64 78 call gn gen out/Release "--args=is_debug=false target_cpu=\"x64\""
82 call python gyp_libyuv -fninja -G msvs_version=2013 79 call gn gen out/Debug "--args=is_debug=true target_cpu=\"x64\""
83 ninja -C out\Debug_x64 80 ninja -j7 -v -C out/Release
84 ninja -C out\Release_x64 81 ninja -j7 -v -C out/Debug
85 82
86 #### Building with clangcl 83 #### Building with clang-cl
84
87 set GYP_DEFINES=clang=1 target_arch=ia32 85 set GYP_DEFINES=clang=1 target_arch=ia32
88 call python tools\clang\scripts\update.py 86 call python tools\clang\scripts\update.py
89 call python gyp_libyuv -fninja libyuv_test.gyp
90 ninja -C out\Debug
91 ninja -C out\Release
92 87
93 ### OSX 88 call gn gen out/Release "--args=is_debug=false is_official_build=false is_cl ang=true target_cpu=\"x86\""
89 call gn gen out/Debug "--args=is_debug=true is_official_build=false is_clang =true target_cpu=\"x86\""
90 ninja -j7 -v -C out/Release
91 ninja -j7 -v -C out/Debug
94 92
95 Clang 64 bit shown. Remove `clang=1` for GCC and change x64 to ia32 for 32 bit. 93 call gn gen out/Release "--args=is_debug=false is_official_build=false is_cl ang=true target_cpu=\"x64\""
94 call gn gen out/Debug "--args=is_debug=true is_official_build=false is_clang =true target_cpu=\"x64\""
95 ninja -j7 -v -C out/Release
96 ninja -j7 -v -C out/Debug
96 97
97 GYP_DEFINES="clang=1 target_arch=x64" ./gyp_libyuv 98 ### macOS and Linux
98 ninja -j7 -C out/Debug
99 ninja -j7 -C out/Release
100 99
101 GYP_DEFINES="clang=1 target_arch=ia32" ./gyp_libyuv 100 gn gen out/Release "--args=is_debug=false"
102 ninja -j7 -C out/Debug 101 gn gen out/Debug "--args=is_debug=true"
103 ninja -j7 -C out/Release 102 ninja -j7 -v -C out/Release
103 ninja -j7 -v -C out/Debug
104
105 ### Building Offical with GN
106
107 gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_ branded=true"
108 ninja -C out/Official
104 109
105 ### iOS 110 ### iOS
111 This section needs an update to GN build documentation.
106 http://www.chromium.org/developers/how-tos/build-instructions-ios 112 http://www.chromium.org/developers/how-tos/build-instructions-ios
107 113
108 Add to .gclient last line: `target_os=['ios'];` 114 Add to .gclient last line: `target_os=['ios'];`
109 115
110 armv7 116 armv7
111 117
112 GYP_DEFINES="OS=ios target_arch=armv7 target_subarch=arm32" GYP_CROSSCOMPILE =1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv 118 GYP_DEFINES="OS=ios target_arch=armv7 target_subarch=arm32" GYP_CROSSCOMPILE =1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv
113 ninja -j7 -C out_ios/Debug-iphoneos libyuv_unittest 119 ninja -j7 -C out_ios/Debug-iphoneos libyuv_unittest
114 ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest 120 ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest
115 121
(...skipping 15 matching lines...) Expand all
131 ninja -j7 -C out_sim/Debug-iphonesimulator libyuv_unittest 137 ninja -j7 -C out_sim/Debug-iphonesimulator libyuv_unittest
132 ninja -j7 -C out_sim/Release-iphonesimulator libyuv_unittest 138 ninja -j7 -C out_sim/Release-iphonesimulator libyuv_unittest
133 139
134 ### Android 140 ### Android
135 https://code.google.com/p/chromium/wiki/AndroidBuildInstructions 141 https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
136 142
137 Add to .gclient last line: `target_os=['android'];` 143 Add to .gclient last line: `target_os=['android'];`
138 144
139 armv7 145 armv7
140 146
141 GYP_DEFINES="OS=android" GYP_CROSSCOMPILE=1 ./gyp_libyuv 147 gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\ "arm\""
142 ninja -j7 -C out/Debug yuv_unittest_apk 148 gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"ar m\""
143 ninja -j7 -C out/Release yuv_unittest_apk 149 ninja -j7 -v -C out/Debug libyuv_unittest
150 ninja -j7 -v -C out/Release libyuv_unittest
144 151
145 arm64 152 arm64
146 153
147 GYP_DEFINES="OS=android target_arch=arm64 target_subarch=arm64" GYP_CROSSCOM PILE=1 ./gyp_libyuv 154 gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\ "arm64\""
148 ninja -j7 -C out/Debug yuv_unittest_apk 155 gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"ar m64\""
149 ninja -j7 -C out/Release yuv_unittest_apk 156 ninja -j7 -v -C out/Debug libyuv_unittest
157 ninja -j7 -v -C out/Release libyuv_unittest
150 158
151 ia32 159 ia32
152 160
153 GYP_DEFINES="OS=android target_arch=ia32" GYP_CROSSCOMPILE=1 ./gyp_libyuv 161 gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\ "x86\""
154 ninja -j7 -C out/Debug yuv_unittest_apk 162 gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"x8 6\""
155 ninja -j7 -C out/Release yuv_unittest_apk 163 ninja -j7 -v -C out/Debug libyuv_unittest
156 164 ninja -j7 -v -C out/Release libyuv_unittest
157 GYP_DEFINES="OS=android target_arch=ia32 android_full_debug=1" GYP_CROSSCOMP ILE=1 ./gyp_libyuv
158 ninja -j7 -C out/Debug yuv_unittest_apk
159 165
160 mipsel 166 mipsel
161 167
162 GYP_DEFINES="OS=android target_arch=mipsel" GYP_CROSSCOMPILE=1 ./gyp_libyuv 168 gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\ "mipsel\" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_ clang=false"
163 ninja -j7 -C out/Debug yuv_unittest_apk 169 gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"mi psel\"" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_cl ang=false"
164 ninja -j7 -C out/Release yuv_unittest_apk 170 ninja -j7 -v -C out/Debug libyuv_unittest
171 ninja -j7 -v -C out/Release libyuv_unittest
165 172
166 arm32 disassembly: 173 gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\ "mips64el\"" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_clang=false"
174 gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"mi ps64el\"" mips_arch_variant=\"r6\" mips_use_msa=true is_component_build=true is_ clang=false"
175 ninja -j7 -v -C out/Debug libyuv_unittest
176 ninja -j7 -v -C out/Release libyuv_unittest
167 177
168 third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/ linux-x86_64/bin/arm-linux-androideabi-objdump -d out/Release/obj/source/libyuv. row_neon.o 178 arm disassembly:
169 179
170 arm64 disassembly: 180 third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/ linux-x86_64/bin/aarch64-linux-android-objdump -d ./out/Release/obj/libyuv/row_c ommon.o >row_common.txt
171 181
172 third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/ linux-x86_64/bin/aarch64-linux-android-objdump -d out/Release/obj/source/libyuv. row_neon64.o 182 third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/ linux-x86_64/bin/aarch64-linux-android-objdump -d ./out/Release/obj/libyuv_neon/ row_neon.o >row_neon.txt
183
184 third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/ linux-x86_64/bin/aarch64-linux-android-objdump -d ./out/Release/obj/libyuv_neon/ row_neon64.o >row_neon64.txt
173 185
174 Running tests: 186 Running tests:
175 187
176 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=* 188 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=*
177 189
178 Running test as benchmark: 190 Running test as benchmark:
179 191
180 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repea t=999 --libyuv_flags=-1" 192 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repea t=999 --libyuv_flags=-1 --libyuv_cpu_info=-1"
181 193
182 Running test with C code: 194 Running test with C code:
183 195
184 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repea t=999 --libyuv_flags=1 --libyuv_cpu_info=1" 196 util/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --rel ease --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repea t=999 --libyuv_flags=1 --libyuv_cpu_info=1"
185 197
186 #### Building with GN
187
188 gn gen out/Release "--args=is_debug=false target_cpu=\"x86\""
189 gn gen out/Debug "--args=is_debug=true target_cpu=\"x86\""
190 ninja -C out/Release
191 ninja -C out/Debug
192
193 ### Building Offical with GN
194
195 gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_ branded=true"
196 ninja -C out/Official
197
198 #### Building mips with GN
199
200 mipsel
201 gn gen out/Default "--args=is_debug=false target_cpu=\"mipsel\" target_os = \"android\" mips_arch_variant = \"r6\" mips_use_msa = true is_component_build = true is_clang = false"
202 ninja -C out/Default
203
204 mips64el
205 gn gen out/Default "--args=is_debug=false target_cpu=\"mips64el\" target_os = \"android\" mips_arch_variant = \"r6\" mips_use_msa = true is_component_build = true is_clang = false"
206 ninja -C out/Default
207
208 ### Linux
209
210 GYP_DEFINES="target_arch=x64" ./gyp_libyuv
211 ninja -j7 -C out/Debug
212 ninja -j7 -C out/Release
213
214 GYP_DEFINES="target_arch=ia32" ./gyp_libyuv
215 ninja -j7 -C out/Debug
216 ninja -j7 -C out/Release
217
218 #### CentOS
219
220 On CentOS 32 bit the following work around allows a sync:
221
222 export GYP_DEFINES="host_arch=ia32"
223 gclient sync
224
225 ### Windows Shared Library
226
227 Modify libyuv.gyp from 'static_library' to 'shared_library', and add 'LIBYUV_BUI LDING_SHARED_LIBRARY' to 'defines'.
228
229 gclient runhooks
230
231 After this command follow the building the library instructions above.
232
233 If you get a compile error for atlthunk.lib on Windows, read http://www.chromium .org/developers/how-tos/build-instructions-windows
234
235
236 ### Build targets 198 ### Build targets
237 199
238 ninja -C out/Debug libyuv 200 ninja -C out/Debug libyuv
239 ninja -C out/Debug libyuv_unittest 201 ninja -C out/Debug libyuv_unittest
240 ninja -C out/Debug compare 202 ninja -C out/Debug compare
241 ninja -C out/Debug convert 203 ninja -C out/Debug convert
242 ninja -C out/Debug psnr 204 ninja -C out/Debug psnr
243 ninja -C out/Debug cpuid 205 ninja -C out/Debug cpuid
244 206
207 ### ARM Linux
208
209 gn gen out/Release "--args=is_debug=false target_cpu=\"arm64\""
210 gn gen out/Debug "--args=is_debug=true target_cpu=\"arm64\""
211 ninja -j7 -v -C out/Debug libyuv_unittest
212 ninja -j7 -v -C out/Release libyuv_unittest
245 213
246 ## Building the Library with make 214 ## Building the Library with make
247 215
248 ### Linux 216 ### Linux
249 217
250 make -j7 V=1 -f linux.mk 218 make -j7 V=1 -f linux.mk
251 make -j7 V=1 -f linux.mk clean 219 make -j7 V=1 -f linux.mk clean
252 make -j7 V=1 -f linux.mk CXX=clang++ 220 make -j7 V=1 -f linux.mk CXX=clang++
253 221
254 ## Building the Library with cmake 222 ## Building the Library with cmake
255 223
256 Install cmake: http://www.cmake.org/ 224 Install cmake: http://www.cmake.org/
257 225
258 Default debug build: 226 Default debug build:
259 227
260 mkdir out 228 mkdir out
261 cd out 229 cd out
262 cmake .. 230 cmake ..
263 cmake --build . 231 cmake --build .
264 232
265 Release build/install 233 Release build/install
266 234
267 mkdir out 235 mkdir out
268 cd out 236 cd out
269 cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" .. 237 cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" ..
270 cmake --build . --config Release 238 cmake --build . --config Release
271 sudo cmake --build . --target install --config Release 239 sudo cmake --build . --target install --config Release
272 240
273 ### Windows 8 Phone
274
275 Pre-requisite:
276
277 * Install Visual Studio 2012 and Arm to your environment.<br>
278
279 Then:
280
281 call "c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcv arsx86_arm.bat"
282
283 or with Visual Studio 2013:
284
285 call "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_arm\vcv arsx86_arm.bat"
286 nmake /f winarm.mk clean
287 nmake /f winarm.mk
288
289 ### Windows Shared Library
290
291 Modify libyuv.gyp from 'static_library' to 'shared_library', and add 'LIBYUV_BUI LDING_SHARED_LIBRARY' to 'defines'. Then run this.
292
293 gclient runhooks
294
295 After this command follow the building the library instructions above.
296
297 If you get a compile error for atlthunk.lib on Windows, read http://www.chromium .org/developers/how-tos/build-instructions-windows
298
299 ### 64 bit Windows
300
301 set GYP_DEFINES=target_arch=x64
302 gclient runhooks V=1
303
304 ### ARM Linux
305
306 export GYP_DEFINES="target_arch=arm"
307 export CROSSTOOL=`<path>`/arm-none-linux-gnueabi
308 export CXX=$CROSSTOOL-g++
309 export CC=$CROSSTOOL-gcc
310 export AR=$CROSSTOOL-ar
311 export AS=$CROSSTOOL-as
312 export RANLIB=$CROSSTOOL-ranlib
313 gclient runhooks
314
315 ## Running Unittests 241 ## Running Unittests
316 242
317 ### Windows 243 ### Windows
318 244
319 out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="* " 245 out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="* "
320 246
321 ### OSX 247 ### OSX
322 248
323 out/Release/libyuv_unittest --gtest_filter="*" 249 out/Release/libyuv_unittest --gtest_filter="*"
324 250
325 ### Linux 251 ### Linux
326 252
327 out/Release/libyuv_unittest --gtest_filter="*" 253 out/Release/libyuv_unittest --gtest_filter="*"
328 254
329 Replace --gtest_filter="*" with specific unittest to run. May include wildcards . e.g. 255 Replace --gtest_filter="*" with specific unittest to run. May include wildcards . e.g.
330 256
331 out/Release/libyuv_unittest --gtest_filter=libyuvTest.I420ToARGB_Opt 257 out/Release/libyuv_unittest --gtest_filter=*I420ToARGB_Opt
332 258
333 ## CPU Emulator tools 259 ## CPU Emulator tools
334 260
335 ### Intel SDE (Software Development Emulator) 261 ### Intel SDE (Software Development Emulator)
336 262
337 Pre-requisite: Install IntelSDE for Windows: http://software.intel.com/en-us/art icles/intel-software-development-emulator 263 Pre-requisite: Install IntelSDE: http://software.intel.com/en-us/articles/intel- software-development-emulator
338 264
339 Then run: 265 Then run:
340 266
341 c:\intelsde\sde -hsw -- out\release\libyuv_unittest.exe --gtest_filter=* 267 c:\intelsde\sde -hsw -- out\Release\libyuv_unittest.exe --gtest_filter=*
342 268
269 ~/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=**I420ToAR GB_Opt
343 270
344 ## Memory tools 271 ## Sanitizers
272
273 gn gen out/Debug "--args=is_debug=true is_asan=true"
274 ninja -j7 -v -C out/Debug
275
276 Sanitizers available: tsan, msan, asan, ubsan, lsan
345 277
346 ### Running Dr Memory memcheck for Windows 278 ### Running Dr Memory memcheck for Windows
347 279
348 Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www .drmemory.org/docs/page_install_windows.html 280 Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www .drmemory.org/docs/page_install_windows.html
349 281
350 set GYP_DEFINES=build_for_tool=drmemory target_arch=ia32
351 call python gyp_libyuv -fninja -G msvs_version=2013
352 ninja -C out\Debug
353 drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_fi lter=* 282 drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_fi lter=*
354
355 ### Running UBSan
356
357 See Chromium instructions for sanitizers: https://www.chromium.org/developers/te sting/undefinedbehaviorsanitizer
358
359 Sanitizers available: TSan, MSan, ASan, UBSan, LSan
360
361 GYP_DEFINES='ubsan=1' gclient runhooks
362 ninja -C out/Release
363
364 ### Running Valgrind memcheck
365
366 Memory errors and race conditions can be found by running tests under special me mory tools. [Valgrind] [1] is an instrumentation framework for building dynamic analysis tools. Various tests and profilers are built upon it to find memory han dling errors and memory leaks, for instance.
367
368 [1]: http://valgrind.org
369
370 solutions = [
371 { "name" : "libyuv",
372 "url" : "https://chromium.googlesource.com/libyuv/libyuv",
373 "deps_file" : "DEPS",
374 "managed" : True,
375 "custom_deps" : {
376 "libyuv/chromium/src/third_party/valgrind": "https://chromium.googles ource.com/chromium/deps/valgrind/binaries",
377 },
378 "safesync_url": "",
379 },
380 ]
381
382 Then run:
383
384 GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=memcheck" python gyp_lib yuv
385 ninja -C out/Debug
386 valgrind out/Debug/libyuv_unittest
387
388
389 For more information, see http://www.chromium.org/developers/how-tos/using-valgr ind
390
391 ### Running Thread Sanitizer (TSan)
392
393 GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=tsan" python gyp_libyuv
394 ninja -C out/Debug
395 valgrind out/Debug/libyuv_unittest
396
397 For more info, see http://www.chromium.org/developers/how-tos/using-valgrind/thr eadsanitizer
398
399 ### Running Address Sanitizer (ASan)
400
401 GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=asan" python gyp_libyuv
402 ninja -C out/Debug
403 valgrind out/Debug/libyuv_unittest
404
405 For more info, see http://dev.chromium.org/developers/testing/addresssanitizer
406
407 ## Benchmarking
408
409 The unittests can be used to benchmark.
410
411 ### Windows
412
413 set LIBYUV_WIDTH=1280
414 set LIBYUV_HEIGHT=720
415 set LIBYUV_REPEAT=999
416 set LIBYUV_FLAGS=-1
417 out\Release\libyuv_unittest.exe --gtest_filter=*I420ToARGB_Opt
418
419
420 ### Linux and Mac
421
422 LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=1000 out/Release/libyuv_un ittest --gtest_filter=*I420ToARGB_Opt
423
424 libyuvTest.I420ToARGB_Opt (547 ms)
425
426 Indicates 0.547 ms/frame for 1280 x 720.
427
428 ## Making a change
429
430 gclient sync
431 git checkout -b mycl -t origin/master
432 git pull
433 <edit files>
434 git add -u
435 git commit -m "my change"
436 git cl lint
437 git cl try
438 git cl upload -r a-reviewer@chomium.org -s
439 <once approved..>
440 git cl land
OLDNEW
« no previous file with comments | « docs/deprecated_builds.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698