| OLD | NEW | 
|---|
| 1 # Copyright 2016 Google Inc. | 1 # Copyright 2016 Google Inc. | 
| 2 # | 2 # | 
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be | 
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. | 
| 5 | 5 | 
| 6 declare_args() { | 6 declare_args() { | 
| 7   ar = "ar" | 7   ar = "ar" | 
| 8   cc = "cc" | 8   cc = "cc" | 
| 9   cxx = "c++" | 9   cxx = "c++" | 
| 10 | 10 | 
| 11   if (is_android) { | 11   if (is_android) { | 
| 12     ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar" | 12     ar = "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin/ar" | 
| 13     cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang" | 13     cc = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang" | 
| 14     cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++" | 14     cxx = "$ndk/toolchains/llvm/prebuilt/$ndk_host/bin/clang++" | 
| 15   } | 15   } | 
| 16 | 16 | 
| 17   extra_cflags = "" | 17   extra_cflags = "" | 
| 18   extra_cflags_c = "" | 18   extra_cflags_c = "" | 
| 19   extra_cflags_cc = "" | 19   extra_cflags_cc = "" | 
| 20   extra_ldflags = "" | 20   extra_ldflags = "" | 
| 21 | 21 | 
| 22   compiler_prefix = "" | 22   compiler_prefix = "" | 
| 23 } | 23 } | 
| 24 | 24 | 
| 25 config("no_rtti") { | 25 config("no_rtti") { | 
| 26   cflags_cc = [ "-fno-rtti" ] | 26   if (sanitize != "ASAN") {  # -fsanitize=vptr requires RTTI | 
|  | 27     cflags_cc = [ "-fno-rtti" ] | 
|  | 28   } | 
| 27 } | 29 } | 
| 28 | 30 | 
| 29 config("default") { | 31 config("default") { | 
| 30   cflags = [ | 32   cflags = [ | 
| 31     "-O1", | 33     "-O1", | 
| 32     "-g", | 34     "-g", | 
| 33     "-fstrict-aliasing", | 35     "-fstrict-aliasing", | 
| 34     "-fPIC", | 36     "-fPIC", | 
| 35     "-fvisibility=hidden", | 37     "-fvisibility=hidden", | 
| 36 | 38 | 
| 37     "-Werror", | 39     "-Werror", | 
| 38     "-Wall", | 40     "-Wall", | 
| 39     "-Wextra", | 41     "-Wextra", | 
| 40     "-Winit-self", | 42     "-Winit-self", | 
| 41     "-Wpointer-arith", | 43     "-Wpointer-arith", | 
| 42     "-Wsign-compare", | 44     "-Wsign-compare", | 
| 43     "-Wvla", | 45     "-Wvla", | 
| 44 | 46 | 
| 45     "-Wno-deprecated-declarations", | 47     "-Wno-deprecated-declarations", | 
| 46     "-Wno-unused-parameter", | 48     "-Wno-unused-parameter", | 
| 47   ] | 49   ] | 
| 48   cflags_cc = [ | 50   cflags_cc = [ | 
| 49     "-std=c++11", | 51     "-std=c++11", | 
| 50     "-fno-exceptions", | 52     "-fno-exceptions", | 
| 51     "-fno-threadsafe-statics", | 53     "-fno-threadsafe-statics", | 
| 52     "-fvisibility-inlines-hidden", | 54     "-fvisibility-inlines-hidden", | 
| 53 | 55 | 
| 54     "-Wnon-virtual-dtor", | 56     "-Wnon-virtual-dtor", | 
| 55   ] | 57   ] | 
|  | 58   ldflags = [] | 
|  | 59 | 
| 56   if (current_cpu == "arm") { | 60   if (current_cpu == "arm") { | 
| 57     cflags += [ | 61     cflags += [ | 
| 58       "-march=armv7-a", | 62       "-march=armv7-a", | 
| 59       "-mfpu=neon", | 63       "-mfpu=neon", | 
| 60       "-mthumb", | 64       "-mthumb", | 
| 61     ] | 65     ] | 
| 62   } else if (current_cpu == "mipsel") { | 66   } else if (current_cpu == "mipsel") { | 
| 63     cflags += [ | 67     cflags += [ | 
| 64       "-march=mips32r2", | 68       "-march=mips32r2", | 
| 65       "-mdspr2", | 69       "-mdspr2", | 
| 66     ] | 70     ] | 
| 67   } | 71   } | 
| 68 | 72 | 
| 69   if (is_android) { | 73   if (is_android) { | 
| 70     asmflags = [ | 74     asmflags = [ | 
| 71       "--target=$ndk_target", | 75       "--target=$ndk_target", | 
| 72       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 76       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 
| 73     ] | 77     ] | 
| 74     cflags += [ | 78     cflags += [ | 
| 75       "--sysroot=$ndk/platforms/$ndk_platform", | 79       "--sysroot=$ndk/platforms/$ndk_platform", | 
| 76       "--target=$ndk_target", | 80       "--target=$ndk_target", | 
| 77       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 81       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 
| 78     ] | 82     ] | 
| 79     cflags_cc += [ | 83     cflags_cc += [ | 
| 80       "-isystem$ndk/sources/android/support/include", | 84       "-isystem$ndk/sources/android/support/include", | 
| 81       "-isystem$ndk/sources/cxx-stl/llvm-libc++/libcxx/include", | 85       "-isystem$ndk/sources/cxx-stl/llvm-libc++/libcxx/include", | 
| 82     ] | 86     ] | 
| 83     ldflags = [ | 87     ldflags += [ | 
| 84       "--sysroot=$ndk/platforms/$ndk_platform", | 88       "--sysroot=$ndk/platforms/$ndk_platform", | 
| 85       "--target=$ndk_target", | 89       "--target=$ndk_target", | 
| 86       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 90       "-B$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/$ndk_target/bin", | 
| 87       "-pie", | 91       "-pie", | 
| 88     ] | 92     ] | 
| 89     lib_dirs = [ | 93     lib_dirs = [ | 
| 90       "$ndk/sources/cxx-stl/llvm-libc++/libs/$ndk_stdlib", | 94       "$ndk/sources/cxx-stl/llvm-libc++/libs/$ndk_stdlib", | 
| 91       "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.
     9.x", | 95       "$ndk/toolchains/$ndk_gccdir-4.9/prebuilt/$ndk_host/lib/gcc/$ndk_target/4.
     9.x", | 
| 92     ] | 96     ] | 
| 93     libs = [ | 97     libs = [ | 
| 94       # Order matters here!  Keep these three in exactly this order. | 98       # Order matters here!  Keep these three in exactly this order. | 
| 95       "c++_static", | 99       "c++_static", | 
| 96       "c++abi", | 100       "c++abi", | 
| 97       "android_support", | 101       "android_support", | 
| 98     ] | 102     ] | 
| 99     if (target_cpu == "arm") { | 103     if (target_cpu == "arm") { | 
| 100       libs += [ "unwind" ] | 104       libs += [ "unwind" ] | 
| 101     } | 105     } | 
| 102   } | 106   } | 
| 103 | 107 | 
| 104   if (is_linux) { | 108   if (is_linux) { | 
| 105     libs = [ "pthread" ] | 109     libs = [ "pthread" ] | 
| 106   } | 110   } | 
|  | 111 | 
|  | 112   if (sanitize != "") { | 
|  | 113     # You can either pass the sanitizers directly, e.g. "address,undefined", | 
|  | 114     # or pass one of the couple common aliases used by the bots. | 
|  | 115     sanitizers = sanitize | 
|  | 116     if (sanitize == "ASAN") { | 
|  | 117       sanitizers = "address,bool,function,integer-divide-by-zero,nonnull-attribu
     te,null,object-size,return,returns-nonnull-attribute,shift,signed-integer-overfl
     ow,unreachable,vla-bound,vptr" | 
|  | 118     } else if (sanitize == "TSAN") { | 
|  | 119       sanitizers = "thread" | 
|  | 120     } else if (sanitize == "MSAN") { | 
|  | 121       sanitizers = "memory" | 
|  | 122     } | 
|  | 123 | 
|  | 124     cflags += [ | 
|  | 125       "-fsanitize=$sanitizers", | 
|  | 126       "-fno-sanitize-recover=$sanitizers", | 
|  | 127       "-fsanitize-blacklist=" + rebase_path("../tools/xsan.blacklist"), | 
|  | 128     ] | 
|  | 129     ldflags += [ "-fsanitize=$sanitizers" ] | 
|  | 130     if (sanitizers == "memory") { | 
|  | 131       cflags += [ "-fsanitize-memory-track-origins" ] | 
|  | 132       cflags_cc += [ "-stdlib=libc++" ] | 
|  | 133       ldflags += [ "-stdlib=libc++" ] | 
|  | 134     } | 
|  | 135   } | 
| 107 } | 136 } | 
| 108 | 137 | 
| 109 config("release") { | 138 config("release") { | 
| 110   cflags = [ "-O3" ] | 139   cflags = [ "-O3" ] | 
| 111   defines = [ "NDEBUG" ] | 140   defines = [ "NDEBUG" ] | 
| 112 } | 141 } | 
| 113 | 142 | 
| 114 config("executable") { | 143 config("executable") { | 
| 115   if (is_mac) { | 144   if (is_mac) { | 
| 116     ldflags = [ "-Wl,-rpath,@loader_path/." ] | 145     ldflags = [ "-Wl,-rpath,@loader_path/." ] | 
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 192   } | 221   } | 
| 193 | 222 | 
| 194   tool("stamp") { | 223   tool("stamp") { | 
| 195     command = "touch {{output}}" | 224     command = "touch {{output}}" | 
| 196   } | 225   } | 
| 197 | 226 | 
| 198   tool("copy") { | 227   tool("copy") { | 
| 199     command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} && 
     cp -af {{source}} {{output}})" | 228     command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} && 
     cp -af {{source}} {{output}})" | 
| 200   } | 229   } | 
| 201 } | 230 } | 
| OLD | NEW | 
|---|