xref: /aosp_15_r20/external/pigweed/third_party/stm32cube/stm32cube.gni (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2021 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerdeclare_args() {
18*61c4878aSAndroid Build Coastguard Worker  # stm32cube_xx install directories
19*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f0 = ""
20*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f1 = ""
21*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f2 = ""
22*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f3 = ""
23*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f4 = ""
24*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_f7 = ""
25*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_g0 = ""
26*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_g4 = ""
27*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_h7 = ""
28*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_l0 = ""
29*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_l1 = ""
30*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_l4 = ""
31*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_l5 = ""
32*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_wb = ""
33*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube_wl = ""
34*61c4878aSAndroid Build Coastguard Worker
35*61c4878aSAndroid Build Coastguard Worker  # The currently selected stm32cube_xx package
36*61c4878aSAndroid Build Coastguard Worker  # This can be selected by the target by doing something like:
37*61c4878aSAndroid Build Coastguard Worker  #  dir_pw_third_party_stm32cube = dir_pw_third_party_stm32cube_f4
38*61c4878aSAndroid Build Coastguard Worker  dir_pw_third_party_stm32cube = ""
39*61c4878aSAndroid Build Coastguard Worker
40*61c4878aSAndroid Build Coastguard Worker  # The Product specified in as much detail as possible.
41*61c4878aSAndroid Build Coastguard Worker  # i.e. "stm32f429zit", "stm32l552ze", "stm32f207zg", etc.
42*61c4878aSAndroid Build Coastguard Worker  pw_third_party_stm32cube_PRODUCT = ""
43*61c4878aSAndroid Build Coastguard Worker
44*61c4878aSAndroid Build Coastguard Worker  # pw_source_set with `stm32{family}xx_hal_conf.h`
45*61c4878aSAndroid Build Coastguard Worker  # The default uses the in-tree `stm32{family}xx_hal_conf_template.h`.
46*61c4878aSAndroid Build Coastguard Worker  pw_third_party_stm32cube_CONFIG =
47*61c4878aSAndroid Build Coastguard Worker      "$dir_pw_third_party/stm32cube:hal_config_template"
48*61c4878aSAndroid Build Coastguard Worker
49*61c4878aSAndroid Build Coastguard Worker  # pw_source_set containing timebase
50*61c4878aSAndroid Build Coastguard Worker  # The default uses the in-tree `stm32{family}xx_hal_timebase_tim_template.c`
51*61c4878aSAndroid Build Coastguard Worker  pw_third_party_stm32cube_TIMEBASE =
52*61c4878aSAndroid Build Coastguard Worker      "$dir_pw_third_party/stm32cube:hal_timebase_template"
53*61c4878aSAndroid Build Coastguard Worker
54*61c4878aSAndroid Build Coastguard Worker  # pw_source_set containing cmsis init logic
55*61c4878aSAndroid Build Coastguard Worker  # The default uses the in-tree `system_stm32{family}xx.c`
56*61c4878aSAndroid Build Coastguard Worker  pw_third_party_stm32cube_CMSIS_INIT =
57*61c4878aSAndroid Build Coastguard Worker      "$dir_pw_third_party/stm32cube:cmsis_init_template"
58*61c4878aSAndroid Build Coastguard Worker
59*61c4878aSAndroid Build Coastguard Worker  # pw_source_set containing the core initization logic. This normally includes
60*61c4878aSAndroid Build Coastguard Worker  # a `startup_stm32{...}.s` + a dependent `pw_linker_script`. The default
61*61c4878aSAndroid Build Coastguard Worker  # `core_init_template` uses the upstream startup and linker script matching
62*61c4878aSAndroid Build Coastguard Worker  # $pw_third_party_stm32cube_PRODUCT. If set to "", you must provide your own
63*61c4878aSAndroid Build Coastguard Worker  # linker/startup logic somewhere else in the build.
64*61c4878aSAndroid Build Coastguard Worker  pw_third_party_stm32cube_CORE_INIT =
65*61c4878aSAndroid Build Coastguard Worker      "$dir_pw_third_party/stm32cube:core_init_template"
66*61c4878aSAndroid Build Coastguard Worker}
67