blob: 42640b01861f9086ecdc103d6f36680801b2517a [file] [log] [blame]
Wyatt Hepler21192402020-01-15 15:40:51 -08001# Copyright 2020 The Pigweed Authors
Alexei Frolov1a82c142019-10-31 17:37:12 -07002#
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 Montanez0ef17a72020-01-07 13:17:04 -080015# This BUILDCONFIG file tells GN how to build upstream Pigweed. When starting a
16# new project, you'll need to copy this file to your project and then modify it
17# to fit your needs. Due to the way Pigweed handles file imports, you won't be
18# able to simply import this file in your own BUILDCONFIG.gn.
19#
20# Keep in mind when importing .gni files that `gn format` will try to
21# alphabetically sort imports unless they're separated by comments. For this
22# file, import order matters (modules.gni MUST be imported first).
Alexei Frolov1a82c142019-10-31 17:37:12 -070023
Armando Montanezfb3d3fb2020-06-09 18:12:12 -070024# This is imported into a scope so as not to pollute the global variable space.
25_pigweed_directory = {
26 import("//build_overrides/pigweed.gni")
Alexei Frolov1a82c142019-10-31 17:37:12 -070027}
28
Armando Montanezfb3d3fb2020-06-09 18:12:12 -070029_pigweed_modules = {
30 # Import target configuration. This is what "completes" a Pigweed
31 # configuration. This file should set a default toolchain, configure
32 # pw_executable, select backends to build against, and provide target-specific
33 # build arguments.
34 import("${_pigweed_directory.dir_pigweed}/legacy_target.gni")
35}
Alexei Frolove899dcf2019-11-13 14:49:14 -080036
Armando Montanez0ef17a72020-01-07 13:17:04 -080037# Ensure some sort of default toolchain was provided by the target, and then
38# set the default toolchain.
Armando Montanezfb3d3fb2020-06-09 18:12:12 -070039assert(_pigweed_modules.pw_target_toolchain != "",
Alexei Frolove899dcf2019-11-13 14:49:14 -080040 "Build target must provide its own toolchain.")
Alexei Frolovedd2f142020-06-09 19:11:27 -070041
42# The default toolchain is not used in Pigweed builds, so it is set to a dummy
43# toolchain. The top-level BUILD.gn should stamp a group with all of the build
44# targets and their toolchains.
Armando Montanezfb3d3fb2020-06-09 18:12:12 -070045set_default_toolchain("${_pigweed_modules.dir_pw_toolchain}/dummy")