Wyatt Hepler | 0412a7d | 2020-01-28 16:27:32 -0800 | [diff] [blame] | 1 | # Copyright 2020 The Pigweed Authors |
Alexei Frolov | 1a82c14 | 2019-10-31 17:37:12 -0700 | [diff] [blame] | 2 | # |
| 3 | # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| 4 | # use this file except in compliance with the License. You may obtain a copy of |
| 5 | # the License at |
| 6 | # |
| 7 | # https://www.apache.org/licenses/LICENSE-2.0 |
| 8 | # |
| 9 | # Unless required by applicable law or agreed to in writing, software |
| 10 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| 11 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| 12 | # License for the specific language governing permissions and limitations under |
| 13 | # the License. |
| 14 | |
Armando Montanez | fb3d3fb | 2020-06-09 18:12:12 -0700 | [diff] [blame] | 15 | import("//build_overrides/pigweed.gni") |
Wyatt Hepler | edf6f29 | 2019-11-25 18:52:21 -0800 | [diff] [blame] | 16 | |
Anthony DiGirolamo | eea0d77 | 2020-08-06 12:00:36 -0700 | [diff] [blame] | 17 | import("$dir_pw_arduino_build/arduino.gni") |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 18 | import("$dir_pw_build/host_tool.gni") |
Wyatt Hepler | b16dfd3 | 2020-10-12 08:46:38 -0700 | [diff] [blame] | 19 | import("$dir_pw_build/python.gni") |
Alexei Frolov | 258fc1b | 2020-06-10 16:24:50 -0700 | [diff] [blame] | 20 | import("$dir_pw_docgen/docs.gni") |
Armando Montanez | 8600320 | 2020-06-16 18:00:06 -0700 | [diff] [blame] | 21 | import("$dir_pw_toolchain/generate_toolchain.gni") |
Armando Montanez | fb3d3fb | 2020-06-09 18:12:12 -0700 | [diff] [blame] | 22 | import("$dir_pw_unit_test/test.gni") |
Alexei Frolov | 258fc1b | 2020-06-10 16:24:50 -0700 | [diff] [blame] | 23 | |
| 24 | # Main build file for upstream Pigweed. |
| 25 | |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 26 | declare_args() { |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 27 | # The default optimization level for building upstream Pigweed targets. |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 28 | # |
| 29 | # Choices: |
| 30 | # debug |
| 31 | # size_optimized |
| 32 | # speed_optimized |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 33 | pw_default_optimization_level = "debug" |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 34 | |
| 35 | # List of application image GN targets specific to the Pigweed target. |
| 36 | pw_TARGET_APPLICATIONS = [] |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 37 | } |
| 38 | |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 39 | # Enumerate all of the different targets that upstream Pigweed will build by |
| 40 | # default. Downstream projects should not depend on this target; this target is |
| 41 | # exclusively to facilitate easy upstream development and testing. |
Armando Montanez | 04c56ae | 2019-12-12 14:34:05 -0800 | [diff] [blame] | 42 | group("default") { |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 43 | deps = [ |
| 44 | ":docs", |
Ali Zhang | 5876558 | 2021-01-29 12:04:06 -0800 | [diff] [blame] | 45 | ":fuzzers", |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 46 | ":host", |
Wyatt Hepler | e04d468 | 2021-07-21 08:52:28 -0700 | [diff] [blame] | 47 | ":integration_tests", |
Armando Montanez | 6f07fa7 | 2020-09-17 17:19:14 -0700 | [diff] [blame] | 48 | ":stm32f429i", |
Rob Mohr | 0d644f6 | 2021-02-24 16:15:51 -0800 | [diff] [blame] | 49 | "$dir_pw_env_setup:python.install", |
| 50 | "$dir_pw_env_setup:python.lint", |
| 51 | "$dir_pw_env_setup:python.tests", |
| 52 | "$dir_pw_env_setup:target_support_packages.lint", |
| 53 | "$dir_pw_env_setup:target_support_packages.tests", |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 54 | ] |
| 55 | } |
| 56 | |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 57 | # This template generates a group that builds pigweed_default with a particular |
| 58 | # toolchain. |
| 59 | template("_build_pigweed_default_at_all_optimization_levels") { |
| 60 | _toolchain_prefix = invoker.toolchain_prefix |
| 61 | |
| 62 | group(target_name) { |
| 63 | deps = [ |
| 64 | ":pigweed_default(${_toolchain_prefix}$pw_default_optimization_level)", |
| 65 | ] |
| 66 | } |
| 67 | |
| 68 | foreach(optimization, |
| 69 | [ |
| 70 | "debug", |
| 71 | "size_optimized", |
| 72 | "speed_optimized", |
| 73 | ]) { |
| 74 | group(target_name + "_$optimization") { |
| 75 | deps = [ ":pigweed_default($_toolchain_prefix$optimization)" ] |
| 76 | } |
| 77 | } |
| 78 | } |
| 79 | |
Wyatt Hepler | b16dfd3 | 2020-10-12 08:46:38 -0700 | [diff] [blame] | 80 | # Select a default toolchain based on host OS. |
| 81 | if (host_os == "linux") { |
| 82 | _default_toolchain_prefix = "$dir_pigweed/targets/host:host_clang_" |
| 83 | } else if (host_os == "mac") { |
| 84 | _default_toolchain_prefix = "$dir_pigweed/targets/host:host_clang_" |
| 85 | } else if (host_os == "win") { |
| 86 | _default_toolchain_prefix = "$dir_pigweed/targets/host:host_gcc_" |
| 87 | } else { |
| 88 | assert(false, "Please define a host config for your system: $host_os") |
| 89 | } |
| 90 | |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 91 | # Below are a list of GN targets you can build to force Pigweed to build for a |
| 92 | # specific Pigweed target. |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 93 | _build_pigweed_default_at_all_optimization_levels("host") { |
Wyatt Hepler | b16dfd3 | 2020-10-12 08:46:38 -0700 | [diff] [blame] | 94 | toolchain_prefix = _default_toolchain_prefix |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 95 | } |
| 96 | |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 97 | _build_pigweed_default_at_all_optimization_levels("host_clang") { |
| 98 | toolchain_prefix = "$dir_pigweed/targets/host:host_clang_" |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 99 | } |
| 100 | |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 101 | _build_pigweed_default_at_all_optimization_levels("host_gcc") { |
| 102 | toolchain_prefix = "$dir_pigweed/targets/host:host_gcc_" |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 103 | } |
| 104 | |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 105 | _build_pigweed_default_at_all_optimization_levels("stm32f429i") { |
Rob Mohr | 3d61b32 | 2021-05-17 10:52:24 -0700 | [diff] [blame] | 106 | toolchain_prefix = "$dir_pigweed/targets/stm32f429i_disc1:stm32f429i_disc1_" |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 107 | } |
| 108 | |
Anthony DiGirolamo | 383be05 | 2020-11-26 12:06:41 -0800 | [diff] [blame] | 109 | if (pw_arduino_build_CORE_PATH != "") { |
Wyatt Hepler | 38c398d | 2020-07-14 11:15:30 -0700 | [diff] [blame] | 110 | _build_pigweed_default_at_all_optimization_levels("arduino") { |
| 111 | toolchain_prefix = "$dir_pigweed/targets/arduino:arduino_" |
Anthony DiGirolamo | eea0d77 | 2020-08-06 12:00:36 -0700 | [diff] [blame] | 112 | } |
| 113 | } |
| 114 | |
Armando Montanez | 1ee925c | 2020-06-29 13:15:28 -0700 | [diff] [blame] | 115 | _build_pigweed_default_at_all_optimization_levels("qemu_gcc") { |
| 116 | toolchain_prefix = |
Rob Mohr | 3d61b32 | 2021-05-17 10:52:24 -0700 | [diff] [blame] | 117 | "$dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_gcc_" |
Armando Montanez | 1ee925c | 2020-06-29 13:15:28 -0700 | [diff] [blame] | 118 | } |
| 119 | |
| 120 | _build_pigweed_default_at_all_optimization_levels("qemu_clang") { |
| 121 | toolchain_prefix = |
Rob Mohr | 3d61b32 | 2021-05-17 10:52:24 -0700 | [diff] [blame] | 122 | "$dir_pigweed/targets/lm3s6965evb_qemu:lm3s6965evb_qemu_clang_" |
Armando Montanez | ebe27c6 | 2020-06-11 15:23:15 -0700 | [diff] [blame] | 123 | } |
| 124 | |
| 125 | group("docs") { |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 126 | deps = [ "$dir_pigweed/docs($dir_pigweed/targets/docs)" ] |
Alexei Frolov | 844ff0f | 2020-05-06 12:15:29 -0700 | [diff] [blame] | 127 | } |
| 128 | |
Wyatt Hepler | e04d468 | 2021-07-21 08:52:28 -0700 | [diff] [blame] | 129 | _default_toolchain = _default_toolchain_prefix + pw_default_optimization_level |
| 130 | |
Wyatt Hepler | 81017fe | 2021-08-02 17:46:41 -0700 | [diff] [blame] | 131 | # Tests larger than unit tests, typically run in a specific configuration. |
Wyatt Hepler | e04d468 | 2021-07-21 08:52:28 -0700 | [diff] [blame] | 132 | group("integration_tests") { |
| 133 | deps = [] |
| 134 | |
| 135 | if (host_os != "windows") { |
Wyatt Hepler | 2253040 | 2021-07-30 23:40:40 -0700 | [diff] [blame] | 136 | deps += [ |
Wyatt Hepler | 81017fe | 2021-08-02 17:46:41 -0700 | [diff] [blame] | 137 | # Uses port 33000 |
Wyatt Hepler | 2253040 | 2021-07-30 23:40:40 -0700 | [diff] [blame] | 138 | "$dir_pw_rpc/py:python_client_cpp_server_test.action($_default_toolchain)", |
Wyatt Hepler | 81017fe | 2021-08-02 17:46:41 -0700 | [diff] [blame] | 139 | |
| 140 | # Uses port 33001 |
Wyatt Hepler | 2253040 | 2021-07-30 23:40:40 -0700 | [diff] [blame] | 141 | "$dir_pw_transfer/py:python_cpp_transfer_test.action($_default_toolchain)", |
Wyatt Hepler | 81017fe | 2021-08-02 17:46:41 -0700 | [diff] [blame] | 142 | |
| 143 | # Uses port 33002 |
| 144 | "$dir_pw_unit_test/py:rpc_service_test.action($_default_toolchain)", |
Wyatt Hepler | 2253040 | 2021-07-30 23:40:40 -0700 | [diff] [blame] | 145 | ] |
Wyatt Hepler | e04d468 | 2021-07-21 08:52:28 -0700 | [diff] [blame] | 146 | } else { |
| 147 | not_needed([ "_default_toolchain" ]) |
| 148 | } |
| 149 | } |
| 150 | |
Ali Zhang | 5876558 | 2021-01-29 12:04:06 -0800 | [diff] [blame] | 151 | # OSS-Fuzz uses this target to build fuzzers alone. |
| 152 | group("fuzzers") { |
| 153 | # Fuzzing is only supported on Linux and MacOS using clang. |
| 154 | if (host_os != "win") { |
| 155 | deps = [ ":pw_module_tests($dir_pigweed/targets/host:host_clang_fuzz)" ] |
| 156 | } |
| 157 | } |
| 158 | |
Rob Mohr | 0d644f6 | 2021-02-24 16:15:51 -0800 | [diff] [blame] | 159 | # TODO(pwbug/325) Delete this target. |
Wyatt Hepler | b16dfd3 | 2020-10-12 08:46:38 -0700 | [diff] [blame] | 160 | pw_python_group("python") { |
Rob Mohr | 0d644f6 | 2021-02-24 16:15:51 -0800 | [diff] [blame] | 161 | python_deps = [ "$dir_pw_env_setup:python" ] |
Wyatt Hepler | b16dfd3 | 2020-10-12 08:46:38 -0700 | [diff] [blame] | 162 | } |
| 163 | |
Rob Mohr | 0d644f6 | 2021-02-24 16:15:51 -0800 | [diff] [blame] | 164 | # TODO(pwbug/325) Delete this target. |
Wyatt Hepler | 96992c7 | 2020-10-23 08:05:33 -0700 | [diff] [blame] | 165 | pw_python_group("target_support_packages") { |
Rob Mohr | 0d644f6 | 2021-02-24 16:15:51 -0800 | [diff] [blame] | 166 | python_deps = [ "$dir_pw_env_setup:target_support_packages" ] |
Wyatt Hepler | 96992c7 | 2020-10-23 08:05:33 -0700 | [diff] [blame] | 167 | } |
| 168 | |
Alexei Frolov | 844ff0f | 2020-05-06 12:15:29 -0700 | [diff] [blame] | 169 | # By default, Pigweed will build this target when invoking ninja. |
| 170 | group("pigweed_default") { |
Alexei Frolov | 799be5d | 2020-01-09 15:54:39 -0800 | [diff] [blame] | 171 | deps = [] |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 172 | |
| 173 | # Prevent the default toolchain from parsing any other BUILD.gn files. |
| 174 | if (current_toolchain != default_toolchain) { |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 175 | deps = [ ":apps" ] |
| 176 | if (pw_unit_test_AUTOMATIC_RUNNER == "") { |
| 177 | # Without a test runner defined, build the tests but don't run them. |
| 178 | deps += [ ":pw_module_tests" ] |
Alexei Frolov | 799be5d | 2020-01-09 15:54:39 -0800 | [diff] [blame] | 179 | } else { |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 180 | # With a test runner, depend on the run targets so they run with the |
| 181 | # build. |
| 182 | deps += [ ":pw_module_tests.run" ] |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 183 | } |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 184 | } |
| 185 | if (defined(pw_toolchain_SCOPE.is_host_toolchain) && |
| 186 | pw_toolchain_SCOPE.is_host_toolchain && pw_build_HOST_TOOLS) { |
| 187 | deps += [ ":host_tools" ] |
| 188 | } |
Robert Oliver | 70b9264 | 2020-07-13 15:04:10 -0400 | [diff] [blame] | 189 | |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 190 | # Trace examples currently only support running on non-windows host |
| 191 | if (defined(pw_toolchain_SCOPE.is_host_toolchain) && |
| 192 | pw_toolchain_SCOPE.is_host_toolchain && host_os != "win") { |
| 193 | deps += [ |
| 194 | "$dir_pw_trace:trace_example_basic", |
| 195 | "$dir_pw_trace_tokenized:trace_tokenized_example_basic", |
| 196 | "$dir_pw_trace_tokenized:trace_tokenized_example_filter", |
Rob Oliver | 9d66337 | 2021-02-05 11:02:05 -0500 | [diff] [blame] | 197 | "$dir_pw_trace_tokenized:trace_tokenized_example_rpc", |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 198 | "$dir_pw_trace_tokenized:trace_tokenized_example_trigger", |
| 199 | ] |
Keir Mierle | e2f5d0f | 2019-12-16 11:36:22 -0800 | [diff] [blame] | 200 | } |
Alexei Frolov | ca9cf60 | 2019-12-26 13:00:03 -0800 | [diff] [blame] | 201 | } |
| 202 | |
Wyatt Hepler | 09d84aa | 2021-02-03 14:25:45 -0800 | [diff] [blame] | 203 | # The default toolchain is not used for compiling C/C++ code. |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 204 | if (current_toolchain != default_toolchain) { |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 205 | group("apps") { |
| 206 | # Application images built for all targets. |
Alexei Frolov | d3e5cb7 | 2021-01-08 13:08:45 -0800 | [diff] [blame] | 207 | deps = [ "$dir_pw_hdlc/rpc_example" ] |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 208 | |
| 209 | # Add target-specific images. |
| 210 | deps += pw_TARGET_APPLICATIONS |
Jason Graffius | 4d13de9 | 2021-01-16 20:26:21 -0800 | [diff] [blame] | 211 | |
| 212 | # Add the pw_tool target to be built on host. |
| 213 | if (defined(pw_toolchain_SCOPE.is_host_toolchain) && |
| 214 | pw_toolchain_SCOPE.is_host_toolchain) { |
| 215 | deps += [ "$dir_pw_tool" ] |
| 216 | } |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 217 | } |
| 218 | |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 219 | group("host_tools") { |
| 220 | deps = [ |
| 221 | "$dir_pw_target_runner/go:simple_client", |
| 222 | "$dir_pw_target_runner/go:simple_server", |
Rob Mohr | 2156c0a | 2020-02-07 10:06:53 -0800 | [diff] [blame] | 223 | ] |
Alexei Frolov | 8c4b752 | 2020-01-31 11:15:57 -0800 | [diff] [blame] | 224 | } |
Alexei Frolov | 925fb8f | 2019-11-05 16:32:30 -0800 | [diff] [blame] | 225 | |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 226 | # All Pigweed modules that can be built using gn. This is not built by default. |
| 227 | group("pw_modules") { |
| 228 | deps = [ |
| 229 | "$dir_pigweed/docs", |
| 230 | "$dir_pw_allocator", |
Kevin Zeng | 62683b6 | 2021-03-18 12:22:08 -0700 | [diff] [blame] | 231 | "$dir_pw_analog", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 232 | "$dir_pw_base64", |
David Rogers | 2d19502 | 2020-07-16 14:07:47 -0700 | [diff] [blame] | 233 | "$dir_pw_blob_store", |
shaneajg | 9c19db4 | 2020-06-11 15:49:51 -0400 | [diff] [blame] | 234 | "$dir_pw_bytes", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 235 | "$dir_pw_checksum", |
Ewout van Bekkum | 3c61ae9 | 2020-10-30 15:52:25 -0700 | [diff] [blame] | 236 | "$dir_pw_chrono", |
Anthony DiGirolamo | 26ed98a | 2021-06-11 14:50:29 -0700 | [diff] [blame] | 237 | "$dir_pw_console", |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 238 | "$dir_pw_cpu_exception", |
Alexei Frolov | d3e5cb7 | 2021-01-08 13:08:45 -0800 | [diff] [blame] | 239 | "$dir_pw_hdlc", |
Ewout van Bekkum | d1669a8 | 2020-12-04 16:00:47 -0800 | [diff] [blame] | 240 | "$dir_pw_i2c", |
Keir Mierle | 45fa785 | 2020-08-10 21:09:54 -0700 | [diff] [blame] | 241 | "$dir_pw_metric", |
Ewout van Bekkum | 32dc5c5 | 2021-03-16 11:35:37 -0700 | [diff] [blame] | 242 | "$dir_pw_persistent_ram", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 243 | "$dir_pw_polyfill", |
| 244 | "$dir_pw_preprocessor", |
| 245 | "$dir_pw_protobuf", |
| 246 | "$dir_pw_result", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 247 | "$dir_pw_status", |
| 248 | "$dir_pw_stream", |
| 249 | "$dir_pw_string", |
Ewout van Bekkum | 5890193 | 2020-11-09 12:46:52 -0800 | [diff] [blame] | 250 | "$dir_pw_sync", |
Alexei Frolov | f675390 | 2020-07-08 11:01:45 -0700 | [diff] [blame] | 251 | "$dir_pw_sys_io", |
Ewout van Bekkum | e3b5603 | 2020-12-22 12:00:18 -0800 | [diff] [blame] | 252 | "$dir_pw_thread", |
Jason Graffius | 4d13de9 | 2021-01-16 20:26:21 -0800 | [diff] [blame] | 253 | "$dir_pw_tool", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 254 | "$dir_pw_trace", |
| 255 | "$dir_pw_unit_test", |
| 256 | "$dir_pw_varint", |
| 257 | ] |
| 258 | |
| 259 | if (host_os != "win") { |
| 260 | deps += [ |
| 261 | # TODO(frolv): Remove these two when new KVS is ready. |
| 262 | "$dir_pw_kvs", |
| 263 | "$dir_pw_minimal_cpp_stdlib", |
| 264 | |
| 265 | # TODO(pwbug/111): Remove this when building successfully on Windows. |
| 266 | "$dir_pw_tokenizer", |
| 267 | ] |
| 268 | } |
Armando Montanez | 870a86b | 2020-05-26 10:54:38 -0700 | [diff] [blame] | 269 | } |
| 270 | |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 271 | # Targets for all module unit test groups. |
| 272 | pw_test_group("pw_module_tests") { |
| 273 | group_deps = [ |
Armando Montanez | 28f8218 | 2021-02-05 17:10:43 -0800 | [diff] [blame] | 274 | "$dir_pw_allocator:tests", |
Kevin Zeng | 62683b6 | 2021-03-18 12:22:08 -0700 | [diff] [blame] | 275 | "$dir_pw_analog:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 276 | "$dir_pw_assert:tests", |
| 277 | "$dir_pw_base64:tests", |
David Rogers | 2d19502 | 2020-07-16 14:07:47 -0700 | [diff] [blame] | 278 | "$dir_pw_blob_store:tests", |
shaneajg | 9c19db4 | 2020-06-11 15:49:51 -0400 | [diff] [blame] | 279 | "$dir_pw_bytes:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 280 | "$dir_pw_checksum:tests", |
Ewout van Bekkum | 3c61ae9 | 2020-10-30 15:52:25 -0700 | [diff] [blame] | 281 | "$dir_pw_chrono:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 282 | "$dir_pw_containers:tests", |
Armando Montanez | a9ca999 | 2021-01-26 17:06:10 -0800 | [diff] [blame] | 283 | "$dir_pw_cpu_exception_cortex_m:tests", |
Ali Zhang | ef68dc6 | 2021-06-25 16:25:44 -0700 | [diff] [blame] | 284 | "$dir_pw_crypto:tests", |
Alexei Frolov | 99de52d | 2021-05-11 19:58:01 -0700 | [diff] [blame] | 285 | "$dir_pw_function:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 286 | "$dir_pw_fuzzer:tests", |
Alexei Frolov | d3e5cb7 | 2021-01-08 13:08:45 -0800 | [diff] [blame] | 287 | "$dir_pw_hdlc:tests", |
Armando Montanez | 593d0d5 | 2020-07-08 19:55:01 -0700 | [diff] [blame] | 288 | "$dir_pw_hex_dump:tests", |
Max Koopman | 84d599d | 2021-02-11 09:38:57 -0800 | [diff] [blame] | 289 | "$dir_pw_i2c:tests", |
Keir Mierle | 32829d3 | 2020-11-25 15:38:40 -0800 | [diff] [blame] | 290 | "$dir_pw_libc:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 291 | "$dir_pw_log:tests", |
Wyatt Hepler | 24a6e27 | 2020-09-01 10:25:28 -0700 | [diff] [blame] | 292 | "$dir_pw_log_null:tests", |
Prashanth Swaminathan | fce26ba | 2020-09-25 13:36:07 -0700 | [diff] [blame] | 293 | "$dir_pw_log_rpc:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 294 | "$dir_pw_log_tokenized:tests", |
Chenghan Zhou | d4f44d2 | 2020-06-18 15:42:06 -0400 | [diff] [blame] | 295 | "$dir_pw_malloc_freelist:tests", |
Keir Mierle | 45fa785 | 2020-08-10 21:09:54 -0700 | [diff] [blame] | 296 | "$dir_pw_metric:tests", |
Prashanth Swaminathan | f36832a | 2021-01-27 16:20:32 -0800 | [diff] [blame] | 297 | "$dir_pw_multisink:tests", |
Ewout van Bekkum | 32dc5c5 | 2021-03-16 11:35:37 -0700 | [diff] [blame] | 298 | "$dir_pw_persistent_ram:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 299 | "$dir_pw_polyfill:tests", |
| 300 | "$dir_pw_preprocessor:tests", |
| 301 | "$dir_pw_protobuf:tests", |
| 302 | "$dir_pw_protobuf_compiler:tests", |
Armando Montanez | 47008e8 | 2020-08-04 11:04:45 -0700 | [diff] [blame] | 303 | "$dir_pw_random:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 304 | "$dir_pw_result:tests", |
| 305 | "$dir_pw_ring_buffer:tests", |
Alexei Frolov | 5af57d1 | 2021-01-12 11:38:06 -0800 | [diff] [blame] | 306 | "$dir_pw_router:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 307 | "$dir_pw_rpc:tests", |
Armando Montanez | 179aa8e | 2021-03-10 11:46:35 -0800 | [diff] [blame] | 308 | "$dir_pw_snapshot:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 309 | "$dir_pw_span:tests", |
| 310 | "$dir_pw_status:tests", |
| 311 | "$dir_pw_stream:tests", |
| 312 | "$dir_pw_string:tests", |
Ewout van Bekkum | 5890193 | 2020-11-09 12:46:52 -0800 | [diff] [blame] | 313 | "$dir_pw_sync:tests", |
Ewout van Bekkum | e3b5603 | 2020-12-22 12:00:18 -0800 | [diff] [blame] | 314 | "$dir_pw_thread:tests", |
Ewout van Bekkum | 0f3901e | 2020-12-22 12:00:18 -0800 | [diff] [blame] | 315 | "$dir_pw_thread_stl:tests", |
Yecheng Zhao | 7917415 | 2021-07-22 12:52:29 -0700 | [diff] [blame] | 316 | "$dir_pw_tls_client:tests", |
Yecheng Zhao | ba9e06d | 2021-06-29 17:12:57 -0700 | [diff] [blame] | 317 | "$dir_pw_tls_client_boringssl:tests", |
Yecheng Zhao | 60465a7 | 2021-06-23 21:14:02 -0700 | [diff] [blame] | 318 | "$dir_pw_tls_client_mbedtls:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 319 | "$dir_pw_tokenizer:tests", |
| 320 | "$dir_pw_trace:tests", |
Robert Oliver | 21dcf27 | 2020-05-12 15:41:52 -0400 | [diff] [blame] | 321 | "$dir_pw_trace_tokenized:tests", |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 322 | "$dir_pw_unit_test:tests", |
| 323 | "$dir_pw_varint:tests", |
| 324 | ] |
| 325 | |
Armando Montanez | 8600320 | 2020-06-16 18:00:06 -0700 | [diff] [blame] | 326 | if (defined(pw_toolchain_SCOPE.is_host_toolchain) && |
| 327 | pw_toolchain_SCOPE.is_host_toolchain) { |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 328 | # TODO(pwbug/196): KVS tests are not compatible with device builds as they |
| 329 | # use features such as std::map and are computationally expensive. Solving |
| 330 | # this requires a more complex capabilities-based build and configuration |
| 331 | # system which allowing enabling specific tests for targets that support |
| 332 | # them and modifying test parameters for different targets. |
| 333 | # |
| 334 | # Checking for pw_build_host_tools (which is only set by the host) is a |
| 335 | # temporary fix until the problem can be properly solved. |
| 336 | group_deps += [ "$dir_pw_kvs:tests" ] |
Alexei Frolov | f93cb26 | 2021-07-14 16:05:15 -0700 | [diff] [blame] | 337 | |
| 338 | if (host_os != "win") { |
| 339 | # TODO(pwbug/441): Fix transfer tests on Windows. |
| 340 | group_deps += [ "$dir_pw_transfer:tests" ] |
| 341 | } |
Alexei Frolov | 4c0428a | 2020-06-10 10:46:04 -0700 | [diff] [blame] | 342 | } |
| 343 | |
| 344 | if (host_os != "win") { |
| 345 | # TODO(amontanez): pw_minimal_cpp_stdlib tests do not build on windows. |
| 346 | group_deps += [ "$dir_pw_minimal_cpp_stdlib:tests" ] |
| 347 | } |
Alexei Frolov | 8c4b752 | 2020-01-31 11:15:57 -0800 | [diff] [blame] | 348 | } |
Alexei Frolov | 925fb8f | 2019-11-05 16:32:30 -0800 | [diff] [blame] | 349 | } |