Loading core/release_config.bzl +6 −28 Original line number Diff line number Diff line Loading @@ -55,11 +55,6 @@ _all_flags_schema = { }, "declared_in": {"type": "string"}, }, "optional_keys": { "appends": { "type": "bool", }, }, }, } Loading @@ -80,23 +75,17 @@ _all_values_schema = { }, } def flag(name, partitions, default, _kwmarker = (), appends = False): def flag(name, partitions, default): """Declare a flag. Args: name: name of the flag partitions: the partitions where this should be recorded. default: the default value of the flag. _kwmarker: Used to detect argument misuse. appends: Whether new values should be append (not replace) the old. Returns: A dictionary containing the flag declaration. """ # If specified, appends must be a keyword value. if _kwmarker != (): fail("Too many positional parameters") if not partitions: fail("At least 1 partition is required") if not name.startswith("RELEASE_"): Loading @@ -116,7 +105,6 @@ def flag(name, partitions, default, _kwmarker = (), appends = False): "name": name, "partitions": partitions, "default": default, "appends": appends, } def value(name, value): Loading Loading @@ -165,12 +153,10 @@ def release_config(all_flags, all_values): # Validate flags flag_names = [] flags_dict = {} for flag in all_flags: if flag["name"] in flag_names: fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"]) flag_names.append(flag["name"]) flags_dict[flag["name"]] = flag # Record which flags go on which partition partitions = {} Loading @@ -184,21 +170,13 @@ def release_config(all_flags, all_values): else: partitions.setdefault(partition, []).append(flag["name"]) # Generate final values. # Only declared flags may have a value. # Validate values # TODO(joeo): Disallow duplicate values after we've split AOSP and vendor flags. values = {} for value in all_values: name = value["name"] if name not in flag_names: fail(value["set_in"] + ": Value set for undeclared build flag: " + name) if flags_dict[name]["appends"]: if name in values: values[name]["value"] += " " + value["value"] values[name]["set_in"] += " " + value["set_in"] else: values[name] = value else: values[name] = value if value["name"] not in flag_names: fail(value["set_in"] + ": Value set for undeclared build flag: " + value["name"]) values[value["name"]] = value # Collect values result = { Loading Loading
core/release_config.bzl +6 −28 Original line number Diff line number Diff line Loading @@ -55,11 +55,6 @@ _all_flags_schema = { }, "declared_in": {"type": "string"}, }, "optional_keys": { "appends": { "type": "bool", }, }, }, } Loading @@ -80,23 +75,17 @@ _all_values_schema = { }, } def flag(name, partitions, default, _kwmarker = (), appends = False): def flag(name, partitions, default): """Declare a flag. Args: name: name of the flag partitions: the partitions where this should be recorded. default: the default value of the flag. _kwmarker: Used to detect argument misuse. appends: Whether new values should be append (not replace) the old. Returns: A dictionary containing the flag declaration. """ # If specified, appends must be a keyword value. if _kwmarker != (): fail("Too many positional parameters") if not partitions: fail("At least 1 partition is required") if not name.startswith("RELEASE_"): Loading @@ -116,7 +105,6 @@ def flag(name, partitions, default, _kwmarker = (), appends = False): "name": name, "partitions": partitions, "default": default, "appends": appends, } def value(name, value): Loading Loading @@ -165,12 +153,10 @@ def release_config(all_flags, all_values): # Validate flags flag_names = [] flags_dict = {} for flag in all_flags: if flag["name"] in flag_names: fail(flag["declared_in"] + ": Duplicate declaration of flag " + flag["name"]) flag_names.append(flag["name"]) flags_dict[flag["name"]] = flag # Record which flags go on which partition partitions = {} Loading @@ -184,21 +170,13 @@ def release_config(all_flags, all_values): else: partitions.setdefault(partition, []).append(flag["name"]) # Generate final values. # Only declared flags may have a value. # Validate values # TODO(joeo): Disallow duplicate values after we've split AOSP and vendor flags. values = {} for value in all_values: name = value["name"] if name not in flag_names: fail(value["set_in"] + ": Value set for undeclared build flag: " + name) if flags_dict[name]["appends"]: if name in values: values[name]["value"] += " " + value["value"] values[name]["set_in"] += " " + value["set_in"] else: values[name] = value else: values[name] = value if value["name"] not in flag_names: fail(value["set_in"] + ": Value set for undeclared build flag: " + value["name"]) values[value["name"]] = value # Collect values result = { Loading