@@ -145,8 +145,8 @@ def _internal_toolchain_suite(prefix, runtime_repo_name, target_compatible_with,
145145def define_local_toolchain_suites (
146146 name ,
147147 version_aware_repo_names ,
148- repo_target_settings ,
149- version_unaware_repo_names ):
148+ version_unaware_repo_names ,
149+ repo_target_settings ):
150150 """Define toolchains for `local_runtime_repo` backed toolchains.
151151
152152 This generates `toolchain` targets that can be registered using `:all`. The
@@ -160,26 +160,37 @@ def define_local_toolchain_suites(
160160 version-aware toolchains defined.
161161 version_unaware_repo_names: `list[str]` of the repo names that will have
162162 version-unaware toolchains defined.
163+ repo_target_settings: {type}`dict[str, list[str]]` mapping of repo names
164+ to string labels that are added to the `target_settings` for the
165+ respective repo's toolchain.
166+ repo_target_compatible_with: {type}`dict[str, list[str]]` mapping of repo names
167+ to string labels that are added to the `target_compatible_with` for
168+ the respective repo's toolchain.
169+ repo_exec_compatible_with: {type}`dict[str, list[str]]` mapping of repo names
170+ to string labels that are added to the `exec_compatible_with` for
171+ the respective repo's toolchain.
163172 """
164173 i = 0
165174 for i , repo in enumerate (version_aware_repo_names , start = i ):
166- prefix = render .left_pad_zero (i , 4 )
167175 target_settings = ["@{}//:is_matching_python_version" .format (repo )]
168176 target_settings .extend (repo_target_settings .get (repo , []))
177+ target_compatible_with = ["@{}//:os" .format (repo )]
178+ target_compatible_with .extend (repo_target_compatible_with .get (repo , []))
169179 _internal_toolchain_suite (
170- prefix = prefix ,
180+ prefix = render . left_pad_zero ( i , 4 ) ,
171181 runtime_repo_name = repo ,
172182 target_settings = target_settings ,
173- target_compatible_with = ["@{}//:os" .format (repo )],
183+ target_compatible_with = target_compatible_with ,
184+ exec_compatible_with = repo_exec_compatible_with .get (repo , []),
174185 )
175186
176187 # The version unaware entries must go last because they will match any Python
177188 # version.
178189 for i , repo in enumerate (version_unaware_repo_names , start = i + 1 ):
179- prefix = render .left_pad_zero (i , 4 )
190+ target_compatible_with = ["@{}//:os" .format (repo )]
191+ target_compatible_with .extend (repo_target_compatible_with .get (repo , []))
180192 _internal_toolchain_suite (
181- prefix = prefix ,
193+ prefix = render . left_pad_zero ( i , 4 ) ,
182194 runtime_repo_name = repo ,
183195 target_settings = repo_target_settings .get (repo , []),
184- target_compatible_with = ["@{}//:os" .format (repo )],
185196 )
0 commit comments