Files
incubator-pagespeed-ngx/third_party/libjpeg_turbo/yasm/yasm_compile.gypi
T
Maks Orlovich 1188016590 Update to using Chromium from git (since there is no more SVN)
Mechanically/high-volume-wise this required duplicating some of the build/
and yasm/ build bits, since they're in the main Chrome repo.
More messy is the url/ situation: there is a version available, but not completely
up-to-date one, in fact one that's older than our base and what we were using from svn,
so we need to do weird compatibility massaging.
(I've also picked up newest RE2, which required some sync up changes).
2016-09-02 11:15:12 -04:00

120 lines
3.1 KiB
Python

# Copyright (c) 2012 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 three variables for this include:
# yasm_flags : Pass additional flags into YASM.
# yasm_output_path : Output directory for the compiled object files.
# yasm_includes : Includes used by .asm code. Changes to which should force
# recompilation.
#
# Sample usage:
# 'sources': [
# 'ultra_optimized_awesome.asm',
# ],
# 'variables': {
# 'yasm_flags': [
# '-I', 'assembly_include',
# ],
# 'yasm_output_path': '<(SHARED_INTERMEDIATE_DIR)/project',
# 'yasm_includes': ['ultra_optimized_awesome.inc']
# },
# 'includes': [
# 'third_party/yasm/yasm_compile.gypi'
# ],
{
'variables': {
'yasm_flags': [],
'yasm_includes': [],
'conditions': [
[ 'use_system_yasm==0', {
'yasm_path': '<(PRODUCT_DIR)/yasm<(EXECUTABLE_SUFFIX)',
}, {
'yasm_path': '<!(which yasm)',
}],
# Define yasm_flags that pass into YASM.
[ 'os_posix==1 and OS!="mac" and OS!="ios" and target_arch=="ia32"', {
'yasm_flags': [
'-felf32',
'-m', 'x86',
],
}],
[ 'os_posix==1 and OS!="mac" and OS!="ios" and target_arch=="x64"', {
'yasm_flags': [
'-DPIC',
'-felf64',
'-m', 'amd64',
],
}],
[ '(OS=="mac" or OS=="ios") and target_arch=="ia32"', {
'yasm_flags': [
'-fmacho32',
'-m', 'x86',
],
}],
[ '(OS=="mac" or OS=="ios") and target_arch=="x64"', {
'yasm_flags': [
'-fmacho64',
'-m', 'amd64',
],
}],
[ 'OS=="win" and target_arch=="ia32"', {
'yasm_flags': [
'-DPREFIX',
'-fwin32',
'-m', 'x86',
],
}],
[ 'OS=="win" and target_arch=="x64"', {
'yasm_flags': [
'-fwin64',
'-m', 'amd64',
],
}],
# Define output extension.
['OS=="win"', {
'asm_obj_extension': 'obj',
}, {
'asm_obj_extension': 'o',
}],
],
}, # variables
'conditions': [
# Only depend on YASM on x86 systems, do this so that compiling
# .asm files for ARM will fail.
['use_system_yasm==0 and ( 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)', '<@(yasm_includes)'],
'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 assembly <(RULE_INPUT_PATH)',
},
], # rules
}