1 # Copyright 2014 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 # Rule to extract integer values for each symbol from an object file. 6 # The output file name is the input file name with extension replaced with 7 # asm or h. 8 # The following gyp variables must be set before including this gypi: 9 # output_format, the output format of integer value. 10 # output_dir, the full path where the output file should be created. 11 # 12 # For example: 13 # 14 # 'sources': ['a.o', 'b.o'], 15 # 'variables': { 16 # 'output_format': 'cheader', 17 # 'output_dir': 'output', 18 # }, 19 # 'includes': ['obj_int_extract.gypi'], 20 # 21 # This extracts the symbol from a.o and b.o, and outputs them to a.h and b.h 22 # in output directory. 23 { 24 'variables': { 25 'conditions': [ 26 ['os_posix==1', { 27 'asm_obj_extension': 'o', 28 }], 29 ['OS=="win"', { 30 'asm_obj_extension': 'obj', 31 }], 32 ['output_format=="cheader"', { 33 'output_extension': 'h', 34 }, { 35 'output_extension': 'asm', 36 }], 37 ], 38 }, 39 'rules': [ 40 { 41 'rule_name': 'obj_int_extract', 42 'extension': '<(asm_obj_extension)', 43 'inputs': [ 44 '<(PRODUCT_DIR)/libvpx_obj_int_extract', 45 'obj_int_extract.py', 46 ], 47 'outputs': [ 48 '<(output_dir)/<(RULE_INPUT_ROOT).<(output_extension)', 49 ], 50 'action': [ 51 'python', 52 '<(DEPTH)/third_party/libvpx/obj_int_extract.py', 53 '-e', '<(PRODUCT_DIR)/libvpx_obj_int_extract', 54 '-f', '<(output_format)', 55 '-b', '<(RULE_INPUT_PATH)', 56 '-o', '<(output_dir)/<(RULE_INPUT_ROOT).<(output_extension)', 57 ], 58 'message': 'Generate assembly offsets <(RULE_INPUT_PATH)', 59 }, 60 ], 61 } 62