Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: skia/BUILD.gn

Issue 2008853002: [GN] Define SK_BUILD_NO_OPTS when building skia on iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix compilation on iOS device Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | skia/skia_common.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/features.gni") 5 import("//build/config/features.gni")
6 import("//build/config/ui.gni") 6 import("//build/config/ui.gni")
7 import("//testing/test.gni") 7 import("//testing/test.gni")
8 if (current_cpu == "arm") { 8 if (current_cpu == "arm") {
9 import("//build/config/arm.gni") 9 import("//build/config/arm.gni")
10 } 10 }
11 if (current_cpu == "mipsel" || current_cpu == "mips64el") { 11 if (current_cpu == "mipsel" || current_cpu == "mips64el") {
12 import("//build/config/mips.gni") 12 import("//build/config/mips.gni")
13 } 13 }
14 14
15 skia_support_gpu = !is_ios 15 skia_support_gpu = !is_ios
16 skia_support_pdf = !is_ios && (enable_basic_printing || enable_print_preview) 16 skia_support_pdf = !is_ios && (enable_basic_printing || enable_print_preview)
17 17
18 # When building Chrome for iOS with GYP, the target cpu is not known during
19 # the invocation of gyp. This cause the iOS build to use non-optimised skia.
20 # Replicate this with GN to avoid introducing regression as recommended by
21 # the OWNERS of skia.
22
23 declare_args() {
24 # TODO(crbug.com/607933): Once GYP is no longer supported, port iOS to use
25 # optimised skia.
26 skia_build_no_opts = is_ios
27 }
28
18 # The list of Skia defines that are to be set for chromium. 29 # The list of Skia defines that are to be set for chromium.
19 gypi_chromium_skia_defines = 30 gypi_chromium_skia_defines =
20 exec_script("//build/gypi_to_gn.py", 31 exec_script("//build/gypi_to_gn.py",
21 [ 32 [
22 rebase_path("//skia/chromium_skia_defines.gypi"), 33 rebase_path("//skia/chromium_skia_defines.gypi"),
23 "--replace=<(skia_include_path)=//third_party/skia/include", 34 "--replace=<(skia_include_path)=//third_party/skia/include",
24 "--replace=<(skia_src_path)=//third_party/skia/src", 35 "--replace=<(skia_src_path)=//third_party/skia/src",
25 ], 36 ],
26 "scope", 37 "scope",
27 [ "//skia/chromium_skia_defines.gypi" ]) 38 [ "//skia/chromium_skia_defines.gypi" ])
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 "//third_party/skia/include/pipe", 145 "//third_party/skia/include/pipe",
135 "//third_party/skia/include/ports", 146 "//third_party/skia/include/ports",
136 "//third_party/skia/include/utils", 147 "//third_party/skia/include/utils",
137 ] 148 ]
138 149
139 defines = gypi_chromium_skia_defines.chromium_skia_defines 150 defines = gypi_chromium_skia_defines.chromium_skia_defines
140 defines += gypi_skia_defines.skia_for_chromium_defines 151 defines += gypi_skia_defines.skia_for_chromium_defines
141 152
142 defines += [] 153 defines += []
143 154
155 if (skia_build_no_opts) {
156 defines += [ "SK_BUILD_NO_OPTS" ]
157 }
158
144 if (is_component_build) { 159 if (is_component_build) {
145 defines += [ 160 defines += [
146 "SKIA_DLL", 161 "SKIA_DLL",
147 "GR_GL_IGNORE_ES3_MSAA=0", 162 "GR_GL_IGNORE_ES3_MSAA=0",
148 ] 163 ]
149 } 164 }
150 165
151 if (skia_support_gpu) { 166 if (skia_support_gpu) {
152 include_dirs += [ 167 include_dirs += [
153 "//third_party/skia/include/gpu", 168 "//third_party/skia/include/gpu",
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 if (is_mac) { 212 if (is_mac) {
198 include_dirs += [ "//third_party/skia/include/utils/ios" ] 213 include_dirs += [ "//third_party/skia/include/utils/ios" ]
199 } 214 }
200 215
201 defines = [] 216 defines = []
202 217
203 if (is_component_build) { 218 if (is_component_build) {
204 defines += [ "SKIA_IMPLEMENTATION=1" ] 219 defines += [ "SKIA_IMPLEMENTATION=1" ]
205 } 220 }
206 221
207 if (current_cpu == "arm") { 222 if (current_cpu == "arm" && !skia_build_no_opts) {
208 if (arm_use_neon) { 223 if (arm_use_neon) {
209 defines += [ "SK_ARM_HAS_NEON" ] 224 defines += [ "SK_ARM_HAS_NEON" ]
210 } else if (arm_optionally_use_neon) { 225 } else if (arm_optionally_use_neon) {
211 defines += [ "SK_ARM_HAS_OPTIONAL_NEON" ] 226 defines += [ "SK_ARM_HAS_OPTIONAL_NEON" ]
212 } 227 }
213 } 228 }
214 229
215 # Settings for text blitting, chosen to approximate the system browser. 230 # Settings for text blitting, chosen to approximate the system browser.
216 if (is_linux) { 231 if (is_linux) {
217 defines += [ 232 defines += [
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 "//third_party/skia/src/utils/mac/SkStream_mac.cpp", 532 "//third_party/skia/src/utils/mac/SkStream_mac.cpp",
518 ] 533 ]
519 set_sources_assignment_filter(sources_assignment_filter) 534 set_sources_assignment_filter(sources_assignment_filter)
520 535
521 # To disable warning "CGContextSelectFont' is deprecated" 536 # To disable warning "CGContextSelectFont' is deprecated"
522 cflags = [ "-Wno-deprecated-declarations" ] 537 cflags = [ "-Wno-deprecated-declarations" ]
523 } 538 }
524 } 539 }
525 540
526 # Separated out so it can be compiled with different flags for SSE. 541 # Separated out so it can be compiled with different flags for SSE.
527 if (current_cpu == "x86" || current_cpu == "x64") { 542 if (!skia_build_no_opts) {
528 source_set("skia_opts_sse3") { 543 if (current_cpu == "x86" || current_cpu == "x64") {
529 sources = gypi_skia_opts.ssse3_sources 544 source_set("skia_opts_sse3") {
530 if (!is_win || is_clang) { 545 sources = gypi_skia_opts.ssse3_sources
531 cflags = [ "-mssse3" ] 546 if (!is_win || is_clang) {
547 cflags = [ "-mssse3" ]
548 }
549 if (is_win) {
550 defines = [ "SK_CPU_SSE_LEVEL=31" ]
551 }
552 visibility = [ ":skia_opts" ]
553 configs -= [ "//build/config/compiler:chromium_code" ]
554 configs += [
555 ":skia_config",
556 ":skia_library_config",
557 "//build/config/compiler:no_chromium_code",
558 ]
532 } 559 }
533 if (is_win) { 560 source_set("skia_opts_sse41") {
534 defines = [ "SK_CPU_SSE_LEVEL=31" ] 561 sources = gypi_skia_opts.sse41_sources
562 if (!is_win || is_clang) {
563 cflags = [ "-msse4.1" ]
564 }
565 if (is_win) {
566 defines = [ "SK_CPU_SSE_LEVEL=41" ]
567 }
568 visibility = [ ":skia_opts" ]
569 configs -= [ "//build/config/compiler:chromium_code" ]
570 configs += [
571 ":skia_config",
572 ":skia_library_config",
573 "//build/config/compiler:no_chromium_code",
574 ]
535 } 575 }
536 visibility = [ ":skia_opts" ] 576 source_set("skia_opts_sse42") {
537 configs -= [ "//build/config/compiler:chromium_code" ] 577 sources = gypi_skia_opts.sse42_sources
538 configs += [ 578 if (!is_win || is_clang) {
539 ":skia_config", 579 cflags = [ "-msse4.2" ]
540 ":skia_library_config", 580 }
541 "//build/config/compiler:no_chromium_code", 581 if (is_win) {
542 ] 582 defines = [ "SK_CPU_SSE_LEVEL=42" ]
543 } 583 }
544 source_set("skia_opts_sse41") { 584 visibility = [ ":skia_opts" ]
545 sources = gypi_skia_opts.sse41_sources 585 configs -= [ "//build/config/compiler:chromium_code" ]
546 if (!is_win || is_clang) { 586 configs += [
547 cflags = [ "-msse4.1" ] 587 ":skia_config",
588 ":skia_library_config",
589 "//build/config/compiler:no_chromium_code",
590 ]
548 } 591 }
549 if (is_win) { 592 source_set("skia_opts_avx") {
550 defines = [ "SK_CPU_SSE_LEVEL=41" ] 593 sources = gypi_skia_opts.avx_sources
594 if (!is_win) {
595 cflags = [ "-mavx" ]
596 }
597 if (is_win) {
598 cflags = [ "/arch:AVX" ]
599 }
600 visibility = [ ":skia_opts" ]
601 configs -= [ "//build/config/compiler:chromium_code" ]
602 configs += [
603 ":skia_config",
604 ":skia_library_config",
605 "//build/config/compiler:no_chromium_code",
606 ]
551 } 607 }
552 visibility = [ ":skia_opts" ] 608 source_set("skia_opts_avx2") {
553 configs -= [ "//build/config/compiler:chromium_code" ] 609 sources = gypi_skia_opts.avx2_sources
554 configs += [ 610 if (!is_win) {
555 ":skia_config", 611 cflags = [ "-mavx2" ]
556 ":skia_library_config", 612 }
557 "//build/config/compiler:no_chromium_code", 613 if (is_win) {
558 ] 614 cflags = [ "/arch:AVX2" ]
559 } 615 }
560 source_set("skia_opts_sse42") { 616 visibility = [ ":skia_opts" ]
561 sources = gypi_skia_opts.sse42_sources 617 configs -= [ "//build/config/compiler:chromium_code" ]
562 if (!is_win || is_clang) { 618 configs += [
563 cflags = [ "-msse4.2" ] 619 ":skia_config",
620 ":skia_library_config",
621 "//build/config/compiler:no_chromium_code",
622 ]
564 } 623 }
565 if (is_win) {
566 defines = [ "SK_CPU_SSE_LEVEL=42" ]
567 }
568 visibility = [ ":skia_opts" ]
569 configs -= [ "//build/config/compiler:chromium_code" ]
570 configs += [
571 ":skia_config",
572 ":skia_library_config",
573 "//build/config/compiler:no_chromium_code",
574 ]
575 }
576 source_set("skia_opts_avx") {
577 sources = gypi_skia_opts.avx_sources
578 if (!is_win) {
579 cflags = [ "-mavx" ]
580 }
581 if (is_win) {
582 cflags = [ "/arch:AVX" ]
583 }
584 visibility = [ ":skia_opts" ]
585 configs -= [ "//build/config/compiler:chromium_code" ]
586 configs += [
587 ":skia_config",
588 ":skia_library_config",
589 "//build/config/compiler:no_chromium_code",
590 ]
591 }
592 source_set("skia_opts_avx2") {
593 sources = gypi_skia_opts.avx2_sources
594 if (!is_win) {
595 cflags = [ "-mavx2" ]
596 }
597 if (is_win) {
598 cflags = [ "/arch:AVX2" ]
599 }
600 visibility = [ ":skia_opts" ]
601 configs -= [ "//build/config/compiler:chromium_code" ]
602 configs += [
603 ":skia_config",
604 ":skia_library_config",
605 "//build/config/compiler:no_chromium_code",
606 ]
607 } 624 }
608 } 625 }
626
609 source_set("skia_opts") { 627 source_set("skia_opts") {
610 cflags = [] 628 cflags = []
611 defines = [] 629 defines = []
612 630
613 deps = [ 631 deps = [
614 "//base", 632 "//base",
615 ] 633 ]
616 634
617 if (current_cpu == "x86" || current_cpu == "x64") { 635 if (skia_build_no_opts) {
636 sources = gypi_skia_opts.none_sources
637 } else if (current_cpu == "x86" || current_cpu == "x64") {
618 sources = gypi_skia_opts.sse2_sources 638 sources = gypi_skia_opts.sse2_sources
619 deps += [ 639 deps += [
620 ":skia_opts_avx", 640 ":skia_opts_avx",
621 ":skia_opts_avx2", 641 ":skia_opts_avx2",
622 ":skia_opts_sse3", 642 ":skia_opts_sse3",
623 ":skia_opts_sse41", 643 ":skia_opts_sse41",
624 ":skia_opts_sse42", 644 ":skia_opts_sse42",
625 ] 645 ]
626 } else if (current_cpu == "arm") { 646 } else if (current_cpu == "arm") {
627 # The assembly uses the frame pointer register (r7 in Thumb/r11 in 647 # The assembly uses the frame pointer register (r7 in Thumb/r11 in
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 ] 747 ]
728 748
729 deps = [ 749 deps = [
730 ":skia", 750 ":skia",
731 "//base", 751 "//base",
732 "//base/test:test_support", 752 "//base/test:test_support",
733 "//build/config/sanitizers:deps", 753 "//build/config/sanitizers:deps",
734 ] 754 ]
735 } 755 }
736 } 756 }
OLDNEW
« no previous file with comments | « no previous file | skia/skia_common.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698