| OLD | NEW | 
|---|
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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/arm.gni") | 5 import("//build/config/arm.gni") | 
| 6 import("//build/config/android/config.gni") | 6 import("//build/config/android/config.gni") | 
| 7 import("//third_party/libvpx/libvpx_srcs.gni") | 7 import("//third_party/libvpx/libvpx_srcs.gni") | 
| 8 import("//third_party/yasm/yasm_assemble.gni") | 8 import("//third_party/yasm/yasm_assemble.gni") | 
| 9 | 9 | 
| 10 if (is_posix && !is_mac) { | 10 if (is_posix && !is_mac) { | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 34   cpu_arch_full = cpu_arch | 34   cpu_arch_full = cpu_arch | 
| 35 } | 35 } | 
| 36 | 36 | 
| 37 config("libvpx_config") { | 37 config("libvpx_config") { | 
| 38   include_dirs = [ | 38   include_dirs = [ | 
| 39     "//third_party/libvpx/source/config", | 39     "//third_party/libvpx/source/config", | 
| 40     "//third_party/libvpx/source/config/$os_category/$cpu_arch_full", | 40     "//third_party/libvpx/source/config/$os_category/$cpu_arch_full", | 
| 41     "//third_party/libvpx/source/libvpx", | 41     "//third_party/libvpx/source/libvpx", | 
| 42     "$root_gen_dir/third_party/libvpx", # Provides vpx_rtcd.h. | 42     "$root_gen_dir/third_party/libvpx", # Provides vpx_rtcd.h. | 
| 43   ] | 43   ] | 
| 44   cflags = [ "-Wno-unused-function", "-Wno-sign-compare" ] | 44   if (!is_win) { | 
|  | 45     cflags = [ "-Wno-unused-function", "-Wno-sign-compare" ] | 
|  | 46   } | 
| 45 } | 47 } | 
| 46 | 48 | 
| 47 # This config is applied to targets that depend on libvpx. | 49 # This config is applied to targets that depend on libvpx. | 
| 48 config("libvpx_external_config") { | 50 config("libvpx_external_config") { | 
| 49   include_dirs = [ | 51   include_dirs = [ | 
| 50     "//third_party/libvpx/source/libvpx", | 52     "//third_party/libvpx/source/libvpx", | 
| 51   ] | 53   ] | 
| 52 } | 54 } | 
| 53 | 55 | 
| 54 executable("libvpx_obj_int_extract") { | 56 executable("libvpx_obj_int_extract") { | 
| 55   sources = [ | 57   sources = [ | 
| 56     "//third_party/libvpx/source/libvpx/build/make/obj_int_extract.c" | 58     "//third_party/libvpx/source/libvpx/build/make/obj_int_extract.c" | 
| 57   ] | 59   ] | 
| 58   configs += [ ":libvpx_config" ] | 60   configs += [ ":libvpx_config" ] | 
|  | 61   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 62   configs += [ "//build/config/compiler:no_chromium_code" ] | 
| 59   if (is_android_webview_build) { | 63   if (is_android_webview_build) { | 
| 60     defines += [ "FORCE_PARSE_ELF" ] | 64     defines += [ "FORCE_PARSE_ELF" ] | 
| 61     include_dirs += [ "//third_party/libvpx/include" ] | 65     include_dirs += [ "//third_party/libvpx/include" ] | 
| 62   } | 66   } | 
| 63 } | 67 } | 
| 64 | 68 | 
| 65 # A library whose object files contain integers to be extracted. | 69 # A library whose object files contain integers to be extracted. | 
| 66 static_library("libvpx_asm_offsets") { | 70 static_library("libvpx_asm_offsets") { | 
| 67   sources = [ | 71   sources = [ | 
| 68     "//third_party/libvpx/source/libvpx/vp8/encoder/vp8_asm_enc_offsets.c", | 72     "//third_party/libvpx/source/libvpx/vp8/encoder/vp8_asm_enc_offsets.c", | 
| 69     "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale_asm_offsets.c" | 73     "//third_party/libvpx/source/libvpx/vpx_scale/vpx_scale_asm_offsets.c" | 
| 70   ] | 74   ] | 
| 71   configs += [ ":libvpx_config" ] | 75   configs += [ ":libvpx_config" ] | 
|  | 76   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 77   configs += [ "//build/config/compiler:no_chromium_code" ] | 
| 72   if (is_clang) { | 78   if (is_clang) { | 
| 73     cflags = [ "-Wno-unused-function" ] | 79     cflags = [ "-Wno-unused-function" ] | 
| 74   } | 80   } | 
| 75 } | 81 } | 
| 76 | 82 | 
| 77 # This works only on POSIX to extract integer values from an object file. | 83 # This works only on POSIX to extract integer values from an object file. | 
| 78 template("obj_int_extract") { | 84 template("obj_int_extract") { | 
| 79   action(target_name) { | 85   action(target_name) { | 
| 80     script = "//third_party/libvpx/obj_int_extract.py" | 86     script = "//third_party/libvpx/obj_int_extract.py" | 
| 81     bin_label = "//third_party/libvpx($host_toolchain)" | 87     bin_label = "//third_party/libvpx($host_toolchain)" | 
| 82 | 88 | 
| 83     args = [ | 89     args = [ | 
| 84       "-e", | 90       "-e", | 
| 85       "./" + rebase_path(get_label_info(bin_label, "root_out_dir") + | 91       "./" + rebase_path(get_label_info(bin_label, "root_out_dir") + | 
| 86                          "/libvpx_obj_int_extract", | 92                          "/libvpx_obj_int_extract", | 
| 87                          root_build_dir) | 93                          root_build_dir) | 
| 88     ] | 94     ] | 
| 89 | 95 | 
| 90     if (cpu_arch == "arm") { | 96     if (cpu_arch == "arm") { | 
| 91       args += [ "-f", "gas" ] | 97       args += [ "-f", "gas" ] | 
| 92     } else { | 98     } else { | 
| 93       args += [ "-f", "rvds" ] | 99       args += [ "-f", "rvds" ] | 
| 94     } | 100     } | 
| 95 | 101 | 
|  | 102     if (is_win) { | 
|  | 103       obj_extension = "obj" | 
|  | 104     } else { | 
|  | 105       obj_extension = "o" | 
|  | 106     } | 
|  | 107 | 
| 96     args += [ | 108     args += [ | 
| 97       "-b", | 109       "-b", | 
| 98       rebase_path(get_label_info(":libvpx_asm_offsets", "target_out_dir")) + | 110       rebase_path(get_label_info(":libvpx_asm_offsets", "target_out_dir")) + | 
| 99           "/" + invoker.src_dir + "/libvpx_asm_offsets." + | 111           "/" + invoker.src_dir + "/libvpx_asm_offsets." + | 
| 100           invoker.obj_file_root + ".o" | 112           invoker.obj_file_root + ".${obj_extension}" | 
| 101     ] | 113     ] | 
| 102     out_file = "$target_gen_dir/" + invoker.obj_file_root + ".asm" | 114     out_file = "$target_gen_dir/" + invoker.obj_file_root + ".asm" | 
| 103     args += [ "-o", rebase_path(out_file) ] | 115     args += [ "-o", rebase_path(out_file) ] | 
| 104     outputs = [ out_file ] | 116     outputs = [ out_file ] | 
| 105     deps = [ | 117     deps = [ | 
| 106       ":libvpx_asm_offsets", | 118       ":libvpx_asm_offsets", | 
| 107       ":libvpx_obj_int_extract($host_toolchain)" | 119       ":libvpx_obj_int_extract($host_toolchain)" | 
| 108     ] | 120     ] | 
| 109   } | 121   } | 
| 110 } | 122 } | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 136     ] | 148     ] | 
| 137     deps = [ | 149     deps = [ | 
| 138       ":gen_asm_offsets_vp8", | 150       ":gen_asm_offsets_vp8", | 
| 139       ":gen_asm_offsets_scale", | 151       ":gen_asm_offsets_scale", | 
| 140     ] | 152     ] | 
| 141   } | 153   } | 
| 142 } | 154 } | 
| 143 | 155 | 
| 144 static_library("libvpx_intrinsics_mmx") { | 156 static_library("libvpx_intrinsics_mmx") { | 
| 145   configs += [ ":libvpx_config" ] | 157   configs += [ ":libvpx_config" ] | 
| 146   cflags = [ "-mmmx" ] | 158   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 159   configs += [ "//build/config/compiler:no_chromium_code" ] | 
|  | 160   if (!is_win) { | 
|  | 161     cflags = [ "-mmmx" ] | 
|  | 162   } | 
| 147   if (cpu_arch == "x86") { | 163   if (cpu_arch == "x86") { | 
| 148     sources = libvpx_srcs_x86_mmx | 164     sources = libvpx_srcs_x86_mmx | 
| 149   } else if (cpu_arch == "x64") { | 165   } else if (cpu_arch == "x64") { | 
| 150     sources = libvpx_srcs_x86_64_mmx | 166     sources = libvpx_srcs_x86_64_mmx | 
| 151   } | 167   } | 
| 152 } | 168 } | 
| 153 | 169 | 
| 154 static_library("libvpx_intrinsics_sse2") { | 170 static_library("libvpx_intrinsics_sse2") { | 
| 155   configs += [ ":libvpx_config" ] | 171   configs += [ ":libvpx_config" ] | 
| 156   cflags = [ "-msse2" ] | 172   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 173   configs += [ "//build/config/compiler:no_chromium_code" ] | 
|  | 174   if (!is_win) { | 
|  | 175     cflags = [ "-msse2" ] | 
|  | 176   } | 
| 157   if (cpu_arch == "x86") { | 177   if (cpu_arch == "x86") { | 
| 158     sources = libvpx_srcs_x86_sse2 | 178     sources = libvpx_srcs_x86_sse2 | 
| 159   } else if (cpu_arch == "x64") { | 179   } else if (cpu_arch == "x64") { | 
| 160     sources = libvpx_srcs_x86_64_sse2 | 180     sources = libvpx_srcs_x86_64_sse2 | 
| 161   } | 181   } | 
| 162 } | 182 } | 
| 163 | 183 | 
| 164 static_library("libvpx_intrinsics_ssse3") { | 184 static_library("libvpx_intrinsics_ssse3") { | 
| 165   configs += [ ":libvpx_config" ] | 185   configs += [ ":libvpx_config" ] | 
| 166   cflags = [ "-mssse3" ] | 186   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 187   configs += [ "//build/config/compiler:no_chromium_code" ] | 
|  | 188   if (!is_win) { | 
|  | 189     cflags = [ "-mssse3" ] | 
|  | 190   } | 
| 167   if (cpu_arch == "x86") { | 191   if (cpu_arch == "x86") { | 
| 168     sources = libvpx_srcs_x86_ssse3 | 192     sources = libvpx_srcs_x86_ssse3 | 
| 169   } else if (cpu_arch == "x64") { | 193   } else if (cpu_arch == "x64") { | 
| 170     sources = libvpx_srcs_x86_64_ssse3 | 194     sources = libvpx_srcs_x86_64_ssse3 | 
| 171   } | 195   } | 
| 172 } | 196 } | 
| 173 | 197 | 
| 174 static_library("libvpx_intrinsics_sse4_1") { | 198 static_library("libvpx_intrinsics_sse4_1") { | 
| 175   configs += [ ":libvpx_config" ] | 199   configs += [ ":libvpx_config" ] | 
| 176   cflags = [ "-msse4.1" ] | 200   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 201   configs += [ "//build/config/compiler:no_chromium_code" ] | 
|  | 202   if (!is_win) { | 
|  | 203     cflags = [ "-msse4.1" ] | 
|  | 204   } | 
| 177   if (cpu_arch == "x86") { | 205   if (cpu_arch == "x86") { | 
| 178     sources = libvpx_srcs_x86_sse4_1 | 206     sources = libvpx_srcs_x86_sse4_1 | 
| 179   } else if (cpu_arch == "x64") { | 207   } else if (cpu_arch == "x64") { | 
| 180     sources = libvpx_srcs_x86_64_sse4_1 | 208     sources = libvpx_srcs_x86_64_sse4_1 | 
| 181   } | 209   } | 
| 182 } | 210 } | 
| 183 | 211 | 
| 184 if (cpu_arch_full == "arm-neon-cpu-detect") { | 212 if (cpu_arch_full == "arm-neon-cpu-detect") { | 
| 185   static_library("libvpx_intrinsics_neon") { | 213   static_library("libvpx_intrinsics_neon") { | 
| 186     configs -= [ "//build/config/compiler:compiler_arm_fpu" ] | 214     configs -= [ "//build/config/compiler:compiler_arm_fpu" ] | 
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 248       sources = libvpx_srcs_arm_neon | 276       sources = libvpx_srcs_arm_neon | 
| 249     } else if (is_android) { | 277     } else if (is_android) { | 
| 250       sources = libvpx_srcs_arm_neon_cpu_detect | 278       sources = libvpx_srcs_arm_neon_cpu_detect | 
| 251     } else { | 279     } else { | 
| 252       sources = libvpx_srcs_arm | 280       sources = libvpx_srcs_arm | 
| 253     } | 281     } | 
| 254   } else if (cpu_arch == "arm64") { | 282   } else if (cpu_arch == "arm64") { | 
| 255     sources = libvpx_srcs_arm64 | 283     sources = libvpx_srcs_arm64 | 
| 256   } | 284   } | 
| 257   configs += [ ":libvpx_config" ] | 285   configs += [ ":libvpx_config" ] | 
|  | 286   configs -= [ "//build/config/compiler:chromium_code" ] | 
|  | 287   configs += [ "//build/config/compiler:no_chromium_code" ] | 
| 258   deps = [] | 288   deps = [] | 
| 259   if (cpu_arch == "x86" || (cpu_arch == "x64" && !is_msan)) { | 289   if (cpu_arch == "x86" || (cpu_arch == "x64" && !is_msan)) { | 
| 260     deps += [ | 290     deps += [ | 
| 261       ":libvpx_yasm", | 291       ":libvpx_yasm", | 
| 262       ":libvpx_intrinsics_mmx", | 292       ":libvpx_intrinsics_mmx", | 
| 263       ":libvpx_intrinsics_sse2", | 293       ":libvpx_intrinsics_sse2", | 
| 264       ":libvpx_intrinsics_ssse3", | 294       ":libvpx_intrinsics_ssse3", | 
| 265       ":libvpx_intrinsics_sse4_1", | 295       ":libvpx_intrinsics_sse4_1", | 
| 266     ] | 296     ] | 
| 267   } | 297   } | 
| 268   if (cpu_arch_full == "arm-neon-cpu-detect") { | 298   if (cpu_arch_full == "arm-neon-cpu-detect") { | 
| 269     deps += [ ":libvpx_intrinsics_neon" ] | 299     deps += [ ":libvpx_intrinsics_neon" ] | 
| 270   } | 300   } | 
| 271   if (is_android) { | 301   if (is_android) { | 
| 272     deps += [ "//third_party/android_tools:cpu_features" ] | 302     deps += [ "//third_party/android_tools:cpu_features" ] | 
| 273   } | 303   } | 
| 274   if (cpu_arch == "arm") { | 304   if (cpu_arch == "arm") { | 
| 275     deps += [ ":libvpx_assembly_arm" ] | 305     deps += [ ":libvpx_assembly_arm" ] | 
| 276   } | 306   } | 
| 277 | 307 | 
| 278   public_configs = [ ":libvpx_external_config" ] | 308   public_configs = [ ":libvpx_external_config" ] | 
| 279 } | 309 } | 
| OLD | NEW | 
|---|