aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/jumper/build_stages.py
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-06-28 13:21:47 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-28 18:22:16 +0000
commitc55a6cb05f6bb06261f46d7bfc872dc18d587aff (patch)
tree0bf3a3c600d456de5727750b09a5851ac9ef1768 /src/jumper/build_stages.py
parentdbba55de7026c0ffbf1eff057d7bf87c19ec80d1 (diff)
build regenerating SkJumper stages into GN
I _think_ this makes it so changes to _stages.cpp or _lowp.cpp get noticed, regenerated, and baked into Skia all in the same Ninja invocation. Now you just need to set up the tools we use in GN: skia_jumper_clang = ... skia_jumper_objdump = ... skia_jumper_ccache = ... Change-Id: I09fb54d965644ff6e5825056fb0be2c7cab2ea92 Reviewed-on: https://skia-review.googlesource.com/21140 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/jumper/build_stages.py')
-rwxr-xr-xsrc/jumper/build_stages.py52
1 files changed, 32 insertions, 20 deletions
diff --git a/src/jumper/build_stages.py b/src/jumper/build_stages.py
index 6678020286..c1a22b0283 100755
--- a/src/jumper/build_stages.py
+++ b/src/jumper/build_stages.py
@@ -9,9 +9,21 @@ import re
import subprocess
import sys
-clang = sys.argv[1] if len(sys.argv) > 1 else 'clang-4.0'
-objdump = sys.argv[2] if len(sys.argv) > 2 else 'gobjdump'
-ccache = sys.argv[3] if len(sys.argv) > 3 else 'ccache'
+clang = 'clang-4.0'
+objdump = 'gobjdump'
+ccache = 'ccache'
+stages = 'src/jumper/SkJumper_stages.cpp'
+stages_lowp = 'src/jumper/SkJumper_stages_lowp.cpp'
+generated = 'src/jumper/SkJumper_generated.S'
+generated_win = 'src/jumper/SkJumper_generated_win.S'
+
+clang = sys.argv[1] if len(sys.argv) > 1 else clang
+objdump = sys.argv[2] if len(sys.argv) > 2 else objdump
+ccache = sys.argv[3] if len(sys.argv) > 3 else ccache
+stages = sys.argv[4] if len(sys.argv) > 4 else stages
+stages_lowp = sys.argv[5] if len(sys.argv) > 5 else stages_lowp
+generated = sys.argv[6] if len(sys.argv) > 6 else generated
+generated_win = sys.argv[7] if len(sys.argv) > 7 else generated_win
clang = [ccache, clang, '-x', 'c++']
@@ -24,56 +36,56 @@ x86 = [ '-m32' ]
win = ['-DWIN', '-mno-red-zone']
sse2 = ['-msse2', '-mno-sse3', '-mno-ssse3', '-mno-sse4.1']
subprocess.check_call(clang + cflags + sse2 +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'sse2.o'])
subprocess.check_call(clang + cflags + sse2 + win +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'win_sse2.o'])
subprocess.check_call(clang + cflags + sse2 + x86 +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'x86_sse2.o'])
ssse3 = ['-mssse3', '-mno-sse4.1']
subprocess.check_call(clang + cflags + ssse3 +
- ['-c', 'src/jumper/SkJumper_stages_lowp.cpp'] +
+ ['-c', stages_lowp] +
['-o', 'lowp_ssse3.o'])
subprocess.check_call(clang + cflags + ssse3 + win +
- ['-c', 'src/jumper/SkJumper_stages_lowp.cpp'] +
+ ['-c', stages_lowp] +
['-o', 'win_lowp_ssse3.o'])
sse41 = ['-msse4.1']
subprocess.check_call(clang + cflags + sse41 +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'sse41.o'])
subprocess.check_call(clang + cflags + sse41 + win +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'win_sse41.o'])
avx = ['-mavx']
subprocess.check_call(clang + cflags + avx +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'avx.o'])
subprocess.check_call(clang + cflags + avx + win +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'win_avx.o'])
hsw = ['-mavx2', '-mfma', '-mf16c']
subprocess.check_call(clang + cflags + hsw +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'hsw.o'])
subprocess.check_call(clang + cflags + hsw + win +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'win_hsw.o'])
subprocess.check_call(clang + cflags + hsw +
- ['-c', 'src/jumper/SkJumper_stages_lowp.cpp'] +
+ ['-c', stages_lowp] +
['-o', 'lowp_hsw.o'])
subprocess.check_call(clang + cflags + hsw + win +
- ['-c', 'src/jumper/SkJumper_stages_lowp.cpp'] +
+ ['-c', stages_lowp] +
['-o', 'win_lowp_hsw.o'])
aarch64 = [ '--target=aarch64' ]
subprocess.check_call(clang + cflags + aarch64 +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'aarch64.o'])
vfp4 = [
@@ -81,7 +93,7 @@ vfp4 = [
'-mfpu=neon-vfpv4',
]
subprocess.check_call(clang + cflags + vfp4 +
- ['-c', 'src/jumper/SkJumper_stages.cpp'] +
+ ['-c', stages] +
['-o', 'vfp4.o'])
def parse_object_file(dot_o, directive, target=None):
@@ -162,7 +174,7 @@ def parse_object_file(dot_o, directive, target=None):
print ' ' + directive + ' ' + hexed + ' '*(36-len(hexed)) + \
comment + inst + (' '*(14-len(inst)) + args if args else '')
-sys.stdout = open('src/jumper/SkJumper_generated.S', 'w')
+sys.stdout = open(generated, 'w')
print '''# Copyright 2017 Google Inc.
#
@@ -216,7 +228,7 @@ parse_object_file('x86_sse2.o', '.byte')
print '#endif'
-sys.stdout = open('src/jumper/SkJumper_generated_win.S', 'w')
+sys.stdout = open(generated_win, 'w')
print '''; Copyright 2017 Google Inc.
;
; Use of this source code is governed by a BSD-style license that can be