| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 1 | // | 
|  | 2 | // Copyright (C) 2017 The Android Open Source Project | 
|  | 3 | // | 
|  | 4 | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | 5 | // you may not use this file except in compliance with the License. | 
|  | 6 | // You may obtain a copy of the License at | 
|  | 7 | // | 
|  | 8 | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 9 | // | 
|  | 10 | // Unless required by applicable law or agreed to in writing, software | 
|  | 11 | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | 12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | 13 | // See the License for the specific language governing permissions and | 
|  | 14 | // limitations under the License. | 
|  | 15 | // | 
|  | 16 |  | 
|  | 17 | cc_defaults { | 
|  | 18 | name: "init_defaults", | 
|  | 19 | cpp_std: "experimental", | 
|  | 20 | sanitize: { | 
| Tom Cherry | 2ffd65e | 2017-07-26 14:17:09 -0700 | [diff] [blame] | 21 | misc_undefined: ["signed-integer-overflow"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 22 | }, | 
| Chih-Hung Hsieh | 122352d | 2017-10-02 15:20:07 -0700 | [diff] [blame] | 23 | cflags: [ | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 24 | "-DLOG_UEVENTS=0", | 
|  | 25 | "-Wall", | 
|  | 26 | "-Wextra", | 
|  | 27 | "-Wno-unused-parameter", | 
|  | 28 | "-Werror", | 
|  | 29 | "-DALLOW_LOCAL_PROP_OVERRIDE=0", | 
|  | 30 | "-DALLOW_PERMISSIVE_SELINUX=0", | 
|  | 31 | "-DREBOOT_BOOTLOADER_ON_PANIC=0", | 
|  | 32 | "-DWORLD_WRITABLE_KMSG=0", | 
|  | 33 | "-DDUMP_ON_UMOUNT_FAILURE=0", | 
|  | 34 | "-DSHUTDOWN_ZERO_TIMEOUT=0", | 
|  | 35 | ], | 
|  | 36 | product_variables: { | 
|  | 37 | debuggable: { | 
|  | 38 | cppflags: [ | 
|  | 39 | "-UALLOW_LOCAL_PROP_OVERRIDE", | 
|  | 40 | "-DALLOW_LOCAL_PROP_OVERRIDE=1", | 
|  | 41 | "-UALLOW_PERMISSIVE_SELINUX", | 
|  | 42 | "-DALLOW_PERMISSIVE_SELINUX=1", | 
|  | 43 | "-UREBOOT_BOOTLOADER_ON_PANIC", | 
|  | 44 | "-DREBOOT_BOOTLOADER_ON_PANIC=1", | 
|  | 45 | "-UWORLD_WRITABLE_KMSG", | 
|  | 46 | "-DWORLD_WRITABLE_KMSG=1", | 
|  | 47 | "-UDUMP_ON_UMOUNT_FAILURE", | 
|  | 48 | "-DDUMP_ON_UMOUNT_FAILURE=1", | 
|  | 49 | ], | 
|  | 50 | }, | 
|  | 51 | eng: { | 
|  | 52 | cppflags: [ | 
|  | 53 | "-USHUTDOWN_ZERO_TIMEOUT", | 
|  | 54 | "-DSHUTDOWN_ZERO_TIMEOUT=1", | 
|  | 55 | ], | 
|  | 56 | }, | 
| Dmitry Shmidt | c3bc509 | 2017-08-23 14:57:07 -0700 | [diff] [blame] | 57 | uml: { | 
|  | 58 | cppflags: ["-DUSER_MODE_LINUX"], | 
| Elliott Hughes | dc699a2 | 2018-02-16 17:58:14 -0800 | [diff] [blame] | 59 | }, | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 60 | }, | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 61 | static_libs: [ | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 62 | "libseccomp_policy", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 63 | "libavb", | 
| Bowgo Tsai | 30afda7 | 2019-04-11 23:57:24 +0800 | [diff] [blame] | 64 | "libc++fs", | 
| Yifan Hong | d8ce1fb | 2019-03-22 17:21:58 -0700 | [diff] [blame] | 65 | "libcgrouprc_format", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 66 | "libprotobuf-cpp-lite", | 
|  | 67 | "libpropertyinfoserializer", | 
|  | 68 | "libpropertyinfoparser", | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 69 | ], | 
|  | 70 | shared_libs: [ | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 71 | "libbase", | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 72 | "libbinder", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 73 | "libbootloader_message", | 
|  | 74 | "libcutils", | 
| Branden Archer | d052118 | 2018-11-15 08:43:48 -0800 | [diff] [blame] | 75 | "libcrypto", | 
| Jiyong Park | 787322c | 2018-06-01 19:26:42 +0900 | [diff] [blame] | 76 | "libdl", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 77 | "libext4_utils", | 
|  | 78 | "libfs_mgr", | 
| Eric Biggers | f05da4a | 2018-10-23 13:10:33 -0700 | [diff] [blame] | 79 | "libfscrypt", | 
| David Anderson | 0e330f1 | 2019-01-03 18:16:56 -0800 | [diff] [blame] | 80 | "libgsi", | 
| Tao Bao | 66209ca | 2018-07-25 22:35:45 -0700 | [diff] [blame] | 81 | "libhidl-gen-utils", | 
|  | 82 | "libkeyutils", | 
|  | 83 | "liblog", | 
|  | 84 | "liblogwrap", | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 85 | "liblp", | 
| Suren Baghdasaryan | 82b72a5 | 2018-12-21 11:41:50 -0800 | [diff] [blame] | 86 | "libprocessgroup", | 
| Yifan Hong | 6f9ce2e | 2019-03-05 15:47:16 -0800 | [diff] [blame] | 87 | "libprocessgroup_setup", | 
| Jiyong Park | 012171d | 2018-06-19 16:55:05 +0900 | [diff] [blame] | 88 | "libselinux", | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 89 | "libutils", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 90 | ], | 
| Jiyong Park | 93318d4 | 2018-12-26 17:34:39 +0900 | [diff] [blame] | 91 | bootstrap: true, | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 92 | } | 
|  | 93 |  | 
|  | 94 | cc_library_static { | 
|  | 95 | name: "libinit", | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 96 | recovery_available: true, | 
| Jeff Vander Stoep | 724eda5 | 2019-02-15 12:13:38 -0800 | [diff] [blame] | 97 | defaults: ["init_defaults", "selinux_policy_version"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 98 | srcs: [ | 
|  | 99 | "action.cpp", | 
| Tom Cherry | 7fd3bc2 | 2018-02-13 15:36:14 -0800 | [diff] [blame] | 100 | "action_manager.cpp", | 
| Tom Cherry | 0f6417f | 2018-02-13 15:25:29 -0800 | [diff] [blame] | 101 | "action_parser.cpp", | 
| Branden Archer | d052118 | 2018-11-15 08:43:48 -0800 | [diff] [blame] | 102 | "boringssl_self_test.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 103 | "bootchart.cpp", | 
|  | 104 | "builtins.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 105 | "capabilities.cpp", | 
|  | 106 | "descriptors.cpp", | 
|  | 107 | "devices.cpp", | 
| Mark Salyzyn | 6c6ec72 | 2015-10-24 16:20:18 -0700 | [diff] [blame] | 108 | "epoll.cpp", | 
| Tom Cherry | ed506f7 | 2017-05-25 15:58:59 -0700 | [diff] [blame] | 109 | "firmware_handler.cpp", | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 110 | "first_stage_init.cpp", | 
| Tom Cherry | 38a11cc | 2018-07-20 15:18:04 -0700 | [diff] [blame] | 111 | "first_stage_mount.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 112 | "import_parser.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 113 | "init.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 114 | "keychords.cpp", | 
| Andrew F. Davis | 9963847 | 2018-07-09 13:12:00 -0500 | [diff] [blame] | 115 | "modalias_handler.cpp", | 
| Mark Salyzyn | a73ed22 | 2019-03-13 10:18:24 -0700 | [diff] [blame] | 116 | "mount_handler.cpp", | 
| Jiyong Park | 6866041 | 2019-01-16 23:00:59 +0900 | [diff] [blame] | 117 | "mount_namespace.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 118 | "parser.cpp", | 
| Tom Cherry | 16fad42 | 2017-08-04 15:59:03 -0700 | [diff] [blame] | 119 | "persistent_properties.cpp", | 
| Tom Cherry | a97faba | 2017-09-15 15:44:04 -0700 | [diff] [blame] | 120 | "persistent_properties.proto", | 
| Tom Cherry | 2a978d3 | 2017-08-09 17:13:21 -0700 | [diff] [blame] | 121 | "property_service.cpp", | 
| Tom Cherry | 927c5d5 | 2017-12-11 01:40:07 -0800 | [diff] [blame] | 122 | "property_type.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 123 | "reboot.cpp", | 
| Tom Cherry | 44aceed | 2018-08-03 13:36:18 -0700 | [diff] [blame] | 124 | "reboot_utils.cpp", | 
| Tom Cherry | 0c8d6d2 | 2017-08-10 12:22:44 -0700 | [diff] [blame] | 125 | "security.cpp", | 
|  | 126 | "selinux.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 127 | "service.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 128 | "sigchld_handler.cpp", | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 129 | "subcontext.cpp", | 
|  | 130 | "subcontext.proto", | 
| Tom Cherry | 7bfea3d | 2018-11-06 14:12:05 -0800 | [diff] [blame] | 131 | "switch_root.cpp", | 
| Tom Cherry | 7ac013d | 2017-08-25 10:39:25 -0700 | [diff] [blame] | 132 | "rlimit_parser.cpp", | 
| Tom Cherry | 67dee62 | 2017-07-27 12:54:48 -0700 | [diff] [blame] | 133 | "tokenizer.cpp", | 
| Tom Cherry | ed506f7 | 2017-05-25 15:58:59 -0700 | [diff] [blame] | 134 | "uevent_listener.cpp", | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 135 | "ueventd.cpp", | 
| Tom Cherry | ed506f7 | 2017-05-25 15:58:59 -0700 | [diff] [blame] | 136 | "ueventd_parser.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 137 | "util.cpp", | 
|  | 138 | ], | 
| Jiyong Park | 8502ed3 | 2019-02-25 22:18:37 +0900 | [diff] [blame] | 139 | whole_static_libs: ["libcap", "com.android.sysprop.apex"], | 
| Jayant Chowdhary | 478c7c1 | 2018-03-28 18:45:35 -0700 | [diff] [blame] | 140 | header_libs: ["bootimg_headers"], | 
| Tom Cherry | a97faba | 2017-09-15 15:44:04 -0700 | [diff] [blame] | 141 | proto: { | 
|  | 142 | type: "lite", | 
|  | 143 | export_proto_headers: true, | 
|  | 144 | }, | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 145 |  | 
|  | 146 | target: { | 
|  | 147 | recovery: { | 
|  | 148 | cflags: ["-DRECOVERY"], | 
|  | 149 | exclude_shared_libs: ["libbinder", "libutils"], | 
|  | 150 | }, | 
|  | 151 | }, | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 152 | } | 
|  | 153 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 154 | cc_binary { | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 155 | name: "init_second_stage", | 
|  | 156 | recovery_available: true, | 
|  | 157 | stem: "init", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 158 | defaults: ["init_defaults"], | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 159 | static_libs: ["libinit"], | 
| Jin Qian | 0045697 | 2017-07-06 11:43:45 -0700 | [diff] [blame] | 160 | required: [ | 
|  | 161 | "e2fsdroid", | 
|  | 162 | "mke2fs", | 
| Jaegeuk Kim | 899ad55 | 2017-11-28 19:26:34 -0800 | [diff] [blame] | 163 | "sload_f2fs", | 
|  | 164 | "make_f2fs", | 
| Jin Qian | 0045697 | 2017-07-06 11:43:45 -0700 | [diff] [blame] | 165 | ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 166 | srcs: ["main.cpp"], | 
| Tom Cherry | 3143848 | 2018-07-20 14:57:00 -0700 | [diff] [blame] | 167 | symlinks: ["ueventd"], | 
| Martijn Coenen | 62e985a | 2018-09-04 06:29:14 +0200 | [diff] [blame] | 168 | target: { | 
|  | 169 | recovery: { | 
|  | 170 | cflags: ["-DRECOVERY"], | 
|  | 171 | exclude_shared_libs: ["libbinder", "libutils"], | 
|  | 172 | }, | 
|  | 173 | }, | 
| Jiyong Park | 6866041 | 2019-01-16 23:00:59 +0900 | [diff] [blame] | 174 | ldflags: ["-Wl,--rpath,/system/${LIB}/bootstrap"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 175 | } | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 176 |  | 
|  | 177 | // Tests | 
|  | 178 | // ------------------------------------------------------------------------------ | 
|  | 179 |  | 
|  | 180 | cc_test { | 
|  | 181 | name: "init_tests", | 
|  | 182 | defaults: ["init_defaults"], | 
| Tao Bao | a3d36a8 | 2018-08-24 09:40:04 -0700 | [diff] [blame] | 183 | compile_multilib: "first", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 184 | srcs: [ | 
|  | 185 | "devices_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 186 | "init_test.cpp", | 
| Mark Salyzyn | 75b901d | 2018-05-15 11:19:43 -0700 | [diff] [blame] | 187 | "keychords_test.cpp", | 
| Tom Cherry | 16fad42 | 2017-08-04 15:59:03 -0700 | [diff] [blame] | 188 | "persistent_properties_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 189 | "property_service_test.cpp", | 
| Tom Cherry | 927c5d5 | 2017-12-11 01:40:07 -0800 | [diff] [blame] | 190 | "property_type_test.cpp", | 
| Tom Cherry | 11a3aee | 2017-08-03 12:54:07 -0700 | [diff] [blame] | 191 | "result_test.cpp", | 
| Tom Cherry | 7ac013d | 2017-08-25 10:39:25 -0700 | [diff] [blame] | 192 | "rlimit_parser_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 193 | "service_test.cpp", | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 194 | "subcontext_test.cpp", | 
| Tom Cherry | 2a5a4e7 | 2018-06-26 13:56:34 -0700 | [diff] [blame] | 195 | "tokenizer_test.cpp", | 
| Tom Cherry | 5f0198b | 2018-07-17 15:28:16 -0700 | [diff] [blame] | 196 | "ueventd_parser_test.cpp", | 
| Tom Cherry | c2e181c | 2017-07-14 16:29:23 -0700 | [diff] [blame] | 197 | "ueventd_test.cpp", | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 198 | "util_test.cpp", | 
|  | 199 | ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 200 | static_libs: ["libinit"], | 
| Elliott Hughes | 40fdf3f | 2018-04-27 16:12:06 -0700 | [diff] [blame] | 201 | test_suites: ["device-tests"], | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 202 | } | 
|  | 203 |  | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 204 | cc_benchmark { | 
|  | 205 | name: "init_benchmarks", | 
|  | 206 | defaults: ["init_defaults"], | 
|  | 207 | srcs: [ | 
|  | 208 | "subcontext_benchmark.cpp", | 
|  | 209 | ], | 
| Tom Cherry | 618d310 | 2018-01-19 14:25:48 -0800 | [diff] [blame] | 210 | static_libs: ["libinit"], | 
| Tom Cherry | cb0f9bb | 2017-09-12 15:58:47 -0700 | [diff] [blame] | 211 | } | 
|  | 212 |  | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 213 | // Host Verifier | 
|  | 214 | // ------------------------------------------------------------------------------ | 
|  | 215 |  | 
|  | 216 | genrule { | 
|  | 217 | name: "generated_stub_builtin_function_map", | 
|  | 218 | out: ["generated_stub_builtin_function_map.h"], | 
|  | 219 | srcs: ["builtins.cpp"], | 
| Tom Cherry | 547f731 | 2018-02-28 21:40:46 -0800 | [diff] [blame] | 220 | cmd: "sed -n '/Builtin-function-map start/{:a;n;/Builtin-function-map end/q;p;ba}' $(in) | sed -e 's/do_[^}]*/do_stub/g' > $(out)", | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 221 | } | 
|  | 222 |  | 
|  | 223 | cc_binary { | 
|  | 224 | name: "host_init_verifier", | 
|  | 225 | host_supported: true, | 
|  | 226 | cpp_std: "experimental", | 
|  | 227 | cflags: [ | 
|  | 228 | "-Wall", | 
|  | 229 | "-Wextra", | 
|  | 230 | "-Wno-unused-parameter", | 
|  | 231 | "-Werror", | 
|  | 232 | ], | 
|  | 233 | static_libs: [ | 
|  | 234 | "libbase", | 
|  | 235 | "libselinux", | 
|  | 236 | ], | 
|  | 237 | whole_static_libs: ["libcap"], | 
|  | 238 | shared_libs: [ | 
|  | 239 | "libprotobuf-cpp-lite", | 
|  | 240 | "libhidl-gen-utils", | 
|  | 241 | "libprocessgroup", | 
|  | 242 | "liblog", | 
|  | 243 | "libcutils", | 
|  | 244 | ], | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 245 | srcs: [ | 
|  | 246 | "action.cpp", | 
|  | 247 | "action_manager.cpp", | 
|  | 248 | "action_parser.cpp", | 
|  | 249 | "capabilities.cpp", | 
|  | 250 | "descriptors.cpp", | 
|  | 251 | "epoll.cpp", | 
|  | 252 | "keychords.cpp", | 
|  | 253 | "import_parser.cpp", | 
|  | 254 | "host_import_parser.cpp", | 
|  | 255 | "host_init_verifier.cpp", | 
|  | 256 | "host_init_stubs.cpp", | 
|  | 257 | "parser.cpp", | 
|  | 258 | "rlimit_parser.cpp", | 
|  | 259 | "tokenizer.cpp", | 
|  | 260 | "service.cpp", | 
|  | 261 | "subcontext.cpp", | 
|  | 262 | "subcontext.proto", | 
|  | 263 | "util.cpp", | 
|  | 264 | ], | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 265 | proto: { | 
|  | 266 | type: "lite", | 
|  | 267 | }, | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 268 | generated_headers: [ | 
|  | 269 | "generated_stub_builtin_function_map", | 
|  | 270 | "generated_android_ids" | 
|  | 271 | ], | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 272 | target: { | 
| Tom Cherry | 547f731 | 2018-02-28 21:40:46 -0800 | [diff] [blame] | 273 | android: { | 
|  | 274 | enabled: false, | 
|  | 275 | }, | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 276 | darwin: { | 
| Yifan Hong | 3c4aa11 | 2018-06-20 22:49:48 +0000 | [diff] [blame] | 277 | enabled: false, | 
| Tom Cherry | 96ff0fe | 2018-02-28 17:20:27 -0800 | [diff] [blame] | 278 | }, | 
|  | 279 | }, | 
| Tom Cherry | de6bd50 | 2018-02-13 16:50:08 -0800 | [diff] [blame] | 280 | } | 
|  | 281 |  | 
| Tom Cherry | 14fc013 | 2017-05-09 17:11:57 -0700 | [diff] [blame] | 282 | subdirs = ["*"] |