1- load ("//scala:scala_cross_version.bzl" , "extract_major_version" , "extract_minor_version" )
1+ load ("//scala:scala_cross_version.bzl" , "extract_major_version" , "extract_minor_version" , "version_suffix" )
22
33def _default_scala_version ():
44 """return the scala version for use in maven coordinates"""
@@ -10,6 +10,16 @@ def _validate_supported_scala_version(scala_major_version, scala_minor_version):
1010 if scala_major_version == "2.12" and int (scala_minor_version ) < 1 :
1111 fail ("Scala version must be newer or equal to 2.12.1 to use compiler dependency tracking." )
1212
13+ def _config_setting (scala_version ):
14+ return """config_setting(
15+ name = "scala_version{version_suffix}",
16+ flag_values = {{":scala_version": "{version}"}},
17+ )
18+ """ .format (version_suffix = version_suffix (scala_version ), version = scala_version )
19+
20+ def _config_settings (scala_versions ):
21+ return "" .join ([_config_setting (v ) for v in scala_versions ])
22+
1323def _store_config (repository_ctx ):
1424 # Default version
1525 scala_version = repository_ctx .os .environ .get (
@@ -39,8 +49,18 @@ def _store_config(repository_ctx):
3949 "ENABLE_COMPILER_DEPENDENCY_TRACKING=" + enable_compiler_dependency_tracking ,
4050 ])
4151
52+ build_file_content = """load("@bazel_skylib//rules:common_settings.bzl", "string_setting")
53+ string_setting(
54+ name = "scala_version",
55+ build_setting_default = "{scala_version}",
56+ values = {scala_versions},
57+ visibility = ["//visibility:public"],
58+ )
59+ """ .format (scala_versions = scala_versions , scala_version = scala_version )
60+ build_file_content += _config_settings (scala_versions )
61+
4262 repository_ctx .file ("config.bzl" , config_file_content )
43- repository_ctx .file ("BUILD" )
63+ repository_ctx .file ("BUILD" , build_file_content )
4464
4565_config_repository = repository_rule (
4666 implementation = _store_config ,
0 commit comments