| # Copyright (c) 2020 Project CHIP Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| import("//build_overrides/chip.gni") |
| import("//build_overrides/mbedtls.gni") |
| import("//build_overrides/nlassert.gni") |
| import("//build_overrides/nlio.gni") |
| import("//build_overrides/nlunit_test.gni") |
| import("//build_overrides/pigweed.gni") |
| |
| # This build file should not be used in superproject builds. |
| assert(chip_root == "//") |
| |
| import("${chip_root}/gn/chip/tests.gni") |
| import("${chip_root}/gn/chip/tools.gni") |
| |
| if (current_toolchain != "${dir_pw_toolchain}/dummy:dummy") { |
| # This is a real toolchain. Build CHIP. |
| group("default") { |
| deps = [ ":all" ] |
| } |
| |
| group("all") { |
| deps = [ |
| "${chip_root}/src/app", |
| "${chip_root}/src/ble", |
| "${chip_root}/src/controller", |
| "${chip_root}/src/crypto", |
| "${chip_root}/src/inet", |
| "${chip_root}/src/lib", |
| "${chip_root}/src/lib/core", |
| "${chip_root}/src/lib/support", |
| "${chip_root}/src/lwip:all", |
| "${chip_root}/src/system", |
| "${chip_root}/src/transport", |
| "${mbedtls_root}:mbedtls", |
| "${nlassert_root}:nlassert", |
| "${nlio_root}:nlio", |
| "${nlunit_test_root}:nlunit-test", |
| ] |
| |
| if (chip_build_tests) { |
| deps += [ ":tests" ] |
| } |
| |
| if (chip_build_tools) { |
| deps += [ |
| "${chip_root}/examples/chip-tool", |
| "${chip_root}/examples/shell", |
| "${chip_root}/src/lib/shell", |
| "${chip_root}/src/qrcodetool", |
| "${chip_root}/src/setup_payload", |
| ] |
| } |
| } |
| |
| if (chip_build_tests) { |
| import("${chip_root}/gn/chip/chip_test_group.gni") |
| |
| chip_test_group("tests") { |
| deps = [ |
| "${chip_root}/src/app/plugin/tests", |
| "${chip_root}/src/ble/tests", |
| "${chip_root}/src/crypto/tests", |
| "${chip_root}/src/inet/tests", |
| "${chip_root}/src/lib/core/tests", |
| "${chip_root}/src/lib/support/tests", |
| "${chip_root}/src/lwip/tests", |
| "${chip_root}/src/setup_payload/tests", |
| "${chip_root}/src/system/tests", |
| "${chip_root}/src/transport/tests", |
| ] |
| } |
| |
| group("check") { |
| deps = [ ":tests_run" ] |
| } |
| } |
| } else { |
| # This is the dummy toolchain. Configure various real toolchains. |
| import("${chip_root}/gn/chip/chip_build.gni") |
| declare_args() { |
| # Set this to false to disable all builds by default. |
| enable_default_builds = true |
| } |
| |
| declare_args() { |
| # Enable building chip with clang. |
| enable_host_clang_build = enable_default_builds |
| |
| # Enable building chip with gcc. |
| enable_host_gcc_build = enable_default_builds |
| |
| # Build building chip with gcc & mbedtls. |
| enable_host_gcc_mbdtls_build = enable_default_builds |
| |
| # Build the nRF5 lock app example. |
| enable_nrf5_lock_app_build = false |
| } |
| |
| if (enable_nrf5_lock_app_build) { |
| import("//build_overrides/nrf5_lock_app.gni") |
| } |
| |
| import("//build/toolchain/host_clang/toolchains.gni") |
| import("//build/toolchain/host_gcc/toolchains.gni") |
| chip_build("host_clang") { |
| toolchain = "//build/toolchain/host_clang:${host_os}_${host_cpu}_clang" |
| } |
| |
| chip_build("host_gcc") { |
| toolchain = "//build/toolchain/host_gcc:${host_os}_${host_cpu}_gcc" |
| } |
| |
| chip_build("host_gcc_mbedtls") { |
| toolchain = "//build/toolchain/host_gcc:${host_os}_${host_cpu}_gcc_mbedtls" |
| } |
| |
| group("default") { |
| deps = [] |
| if (enable_host_clang_build) { |
| deps += [ ":all_host_clang" ] |
| } |
| if (enable_host_gcc_build) { |
| deps += [ ":all_host_gcc" ] |
| } |
| if (enable_host_gcc_mbdtls_build) { |
| deps += [ ":all_host_gcc_mbedtls" ] |
| } |
| if (enable_nrf5_lock_app_build) { |
| deps += [ "${nrf5_lock_app_root}:nrf5(${nrf5_lock_app_root}/toolchain:nrf5_lock_app)" ] |
| } |
| } |
| |
| if (chip_build_tests) { |
| group("check") { |
| deps = [] |
| if (enable_host_clang_build) { |
| deps += [ ":check_host_clang" ] |
| } |
| if (enable_host_gcc_build) { |
| deps += [ ":check_host_gcc" ] |
| } |
| if (enable_host_gcc_mbdtls_build) { |
| deps += [ ":check_host_gcc_mbedtls" ] |
| } |
| if (enable_nrf5_lock_app_build) { |
| deps += [ ":default" ] |
| } |
| } |
| } |
| } |