| ## Copyright 2023 The IREE Authors | |
| # | |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| # See https://llvm.org/LICENSE.txt for license information. | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| """Utilities that help generate artifacts.""" | |
| import re | |
| # The characters unsafe for CMake and file systems. It's the negation of the | |
| # allowed list, which is derived from the join of | |
| # https://cmake.org/cmake/help/v3.27/policy/CMP0037.html and | |
| # https://www.mtu.edu/umc/services/websites/writing/characters-avoid/. | |
| UNSAFE_CHARACTERS = re.compile(r"[^0-9a-zA-Z\-_.]") | |
| def get_safe_name(name: str) -> str: | |
| """Replace unsafe characters for CMake and file systems with `_`.""" | |
| return UNSAFE_CHARACTERS.sub("_", name) |