diff options
author | Mike Klein <mtklein@chromium.org> | 2017-06-28 13:21:47 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-06-28 18:22:16 +0000 |
commit | c55a6cb05f6bb06261f46d7bfc872dc18d587aff (patch) | |
tree | 0bf3a3c600d456de5727750b09a5851ac9ef1768 /src/jumper/build_stages.py | |
parent | dbba55de7026c0ffbf1eff057d7bf87c19ec80d1 (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-x | src/jumper/build_stages.py | 52 |
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 |