Chromium Code Reviews| Index: third_party/yasm/yasm_compile.gypi |
| diff --git a/third_party/yasm/yasm_compile.gypi b/third_party/yasm/yasm_compile.gypi |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a87ab979239dc04eca3f302d486da967202bec48 |
| --- /dev/null |
| +++ b/third_party/yasm/yasm_compile.gypi |
| @@ -0,0 +1,97 @@ |
| +# Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +# This is an gyp include to use YASM for compiling assembly files. |
| +# |
| +# Files to be compiled with YASM should have an extension of .asm. |
| +# |
| +# There are two variables for this include: |
| +# yasm_flags : Pass additional flags into YASM. |
| +# yasm_output_path : Output directory for the compiled object files. |
| +# |
| +# Sample usage: |
| +# 'sources': [ |
| +# 'ultra_optimized_awsome.asm', |
|
scherkus (not reviewing)
2011/09/06 16:51:13
awsome -> awesome :)
Alpha Left Google
2011/09/06 17:12:13
Done.
|
| +# ], |
| +# 'variables': { |
| +# 'yasm_flags': [ |
|
scherkus (not reviewing)
2011/09/06 16:51:13
does including a gypi do a dictionary merge or a c
Alpha Left Google
2011/09/06 17:12:13
It'll be a merge.
|
| +# '-I', 'assembly_include', |
| +# ], |
| +# 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/project', |
| +# }, |
| +# 'includes': [ |
| +# 'third_party/yasm/yasm_compile.gypi' |
| +# ], |
| + |
| +{ |
| + 'variables': { |
| + 'yasm_path': '<(PRODUCT_DIR)/yasm', |
| + 'conditions': [ |
| + # Define yasm_flags that pass into YASM. |
| + [ 'OS=="linux" and target_arch=="ia32"', { |
| + 'yasm_flags': [ |
| + '-felf32', |
| + '-m', 'x86', |
| + ], |
| + }], |
| + [ 'OS=="linux" and target_arch=="x64"', { |
| + 'yasm_flags': [ |
| + '-DPIC', |
| + '-felf64', |
| + '-m', 'amd64', |
| + ], |
| + }], |
| + [ 'OS=="mac" and target_arch=="ia32"', { |
| + 'yasm_flags': [ |
| + '-fmacho32', |
| + '-m', 'x86', |
| + ], |
| + }], |
| + [ 'OS=="win" and target_arch=="ia32"', { |
| + 'yasm_flags': [ |
| + '-DPREFIX', |
| + '-fwin32', |
| + '-m', 'x86', |
| + ], |
| + }], |
| + |
| + # Define output extension. |
| + ['OS=="mac" or OS=="linux"', { |
| + 'asm_obj_extension': 'o', |
| + }], |
| + ['OS=="win"', { |
| + 'asm_obj_extension': 'obj', |
| + }], |
| + ], |
| + }, # variables |
| + |
| + 'conditions': [ |
| + # Only depend on YASM on x86 systems, do this so that compiling |
| + # .asm files for ARM will fail. |
|
scherkus (not reviewing)
2011/09/06 16:51:13
interesting... I thought we were using YASM for AR
Alpha Left Google
2011/09/06 17:12:13
YASM doesn't compile ARM code, it's for x86 only.
|
| + ['target_arch=="ia32" or target_arch=="x64"', { |
| + 'dependencies': [ |
| + '<(DEPTH)/third_party/yasm/yasm.gyp:yasm#host', |
| + ], |
| + }], |
| + ], # conditions |
| + |
| + 'rules': [ |
| + { |
| + 'rule_name': 'assemble', |
| + 'extension': 'asm', |
| + 'inputs': [ '<(yasm_path)', ], |
| + 'outputs': [ |
| + '<(yasm_output_path)/<(RULE_INPUT_ROOT).<(asm_obj_extension)', |
| + ], |
| + 'action': [ |
| + '<(yasm_path)', |
| + '<@(yasm_flags)', |
| + '-o', '<(yasm_output_path)/<(RULE_INPUT_ROOT).<(asm_obj_extension)', |
| + '<(RULE_INPUT_PATH)', |
| + ], |
| + 'process_outputs_as_sources': 1, |
| + 'message': 'Compile assemly <(RULE_INPUT_PATH).', |
| + }, |
| + ], # rules |
| +} |