diff --git a/util/cmake/condition_simplifier_cache.py b/util/cmake/condition_simplifier_cache.py index b405ef23f8..d1efff1d87 100644 --- a/util/cmake/condition_simplifier_cache.py +++ b/util/cmake/condition_simplifier_cache.py @@ -37,6 +37,13 @@ import time from typing import Callable +condition_simplifier_cache_enabled = True + + +def set_condition_simplified_cache_enabled(value: bool): + global condition_simplifier_cache_enabled + condition_simplifier_cache_enabled = value + def get_current_file_path() -> str: try: @@ -106,7 +113,7 @@ def simplify_condition_memoize(f: Callable[[str], str]): atexit.register(update_cache_file) def helper(condition: str) -> str: - if condition not in cache_file_content["cache"]["conditions"]: + if condition not in cache_file_content["cache"]["conditions"] or not condition_simplifier_cache_enabled: cache_file_content["cache"]["conditions"][condition] = f(condition) return cache_file_content["cache"]["conditions"][condition] diff --git a/util/cmake/pro2cmake.py b/util/cmake/pro2cmake.py index 7698876553..042d8022f1 100755 --- a/util/cmake/pro2cmake.py +++ b/util/cmake/pro2cmake.py @@ -40,6 +40,7 @@ import glob import collections from condition_simplifier import simplify_condition +from condition_simplifier_cache import set_condition_simplified_cache_enabled try: collectionsAbc = collections.abc @@ -155,6 +156,14 @@ def _parse_commandline(): help="Don't automatically remove CMakeLists.gen.txt and other " "intermediate files.", ) + parser.add_argument( + "-e", + "--skip-condition-cache", + dest="skip_condition_cache", + action="store_true", + help="Don't use condition simplifier cache (conversion speed may decrease).", + ) + parser.add_argument( "files", metavar="<.pro/.pri file>", @@ -162,7 +171,6 @@ def _parse_commandline(): nargs="+", help="The .pro/.pri file to process", ) - return parser.parse_args() @@ -3460,6 +3468,8 @@ def main() -> None: args = _parse_commandline() debug_parsing = args.debug_parser or args.debug + if args.skip_condition_cache: + set_condition_simplified_cache_enabled(False) backup_current_dir = os.getcwd()