diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2023-04-28 10:51:59 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-28 10:51:59 +0900 |
| commit | 6b0da5755159c15ea3d4892664c161c3b2bc2dce (patch) | |
| tree | ae3f1f4d68b0f482ed83d8ecf574ec04f278f2a1 /src | |
| parent | 1a6ae3d692cfb52b21d0f45ba50b659486e53d6c (diff) | |
| parent | 787f3fea15978b15738d9047b240841aa2d7b5ce (diff) | |
| download | rust-6b0da5755159c15ea3d4892664c161c3b2bc2dce.tar.gz rust-6b0da5755159c15ea3d4892664c161c3b2bc2dce.zip | |
Rollup merge of #109702 - chenyukang:yukang/fix-109316-configure, r=albertlarsan68
configure --set support list as arguments Fixes #109316 r? `@jyn514`
Diffstat (limited to 'src')
| -rw-r--r-- | src/bootstrap/bootstrap_test.py | 8 | ||||
| -rwxr-xr-x | src/bootstrap/configure.py | 14 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/bootstrap/bootstrap_test.py b/src/bootstrap/bootstrap_test.py index 26bd80a008f..5ecda83ee66 100644 --- a/src/bootstrap/bootstrap_test.py +++ b/src/bootstrap/bootstrap_test.py @@ -112,6 +112,14 @@ class GenerateAndParseConfig(unittest.TestCase): build = self.serialize_and_parse(["--set", "profile=compiler"]) self.assertEqual(build.get_toml("profile"), 'compiler') + def test_set_codegen_backends(self): + build = self.serialize_and_parse(["--set", "rust.codegen-backends=cranelift"]) + self.assertNotEqual(build.config_toml.find("codegen-backends = ['cranelift']"), -1) + build = self.serialize_and_parse(["--set", "rust.codegen-backends=cranelift,llvm"]) + self.assertNotEqual(build.config_toml.find("codegen-backends = ['cranelift', 'llvm']"), -1) + build = self.serialize_and_parse(["--enable-full-tools"]) + self.assertNotEqual(build.config_toml.find("codegen-backends = ['llvm']"), -1) + if __name__ == '__main__': SUITE = unittest.TestSuite() TEST_LOADER = unittest.TestLoader() diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py index dd1851e29a9..571062a3a6f 100755 --- a/src/bootstrap/configure.py +++ b/src/bootstrap/configure.py @@ -153,8 +153,7 @@ v("experimental-targets", "llvm.experimental-targets", "experimental LLVM targets to build") v("release-channel", "rust.channel", "the name of the release channel to build") v("release-description", "rust.description", "optional descriptive string for version output") -v("dist-compression-formats", None, - "comma-separated list of compression formats to use") +v("dist-compression-formats", None, "List of compression formats to use") # Used on systems where "cc" is unavailable v("default-linker", "rust.default-linker", "the default linker") @@ -168,8 +167,8 @@ o("extended", "build.extended", "build an extended rust tool set") v("tools", None, "List of extended tools will be installed") v("codegen-backends", None, "List of codegen backends to build") v("build", "build.build", "GNUs ./configure syntax LLVM build triple") -v("host", None, "GNUs ./configure syntax LLVM host triples") -v("target", None, "GNUs ./configure syntax LLVM target triples") +v("host", None, "List of GNUs ./configure syntax LLVM host triples") +v("target", None, "List of GNUs ./configure syntax LLVM target triples") v("set", None, "set arbitrary key/value pairs in TOML configuration") @@ -182,6 +181,11 @@ def err(msg): print("configure: error: " + msg) sys.exit(1) +def is_value_list(key): + for option in options: + if option.name == key and option.desc.startswith('List of'): + return True + return False if '--help' in sys.argv or '-h' in sys.argv: print('Usage: ./configure [options]') @@ -295,6 +299,8 @@ def set(key, value, config): parts = key.split('.') for i, part in enumerate(parts): if i == len(parts) - 1: + if is_value_list(part) and isinstance(value, str): + value = value.split(',') arr[part] = value else: if part not in arr: |
