pro2cmake: Allow disabling condition cache
New option --skip-condition-cache allows forcing recomputation of condition simplification. Useful when debugging certain condition mappings. Change-Id: I68a85c2e4085ad7a3043d7334db71a334a6469e9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
parent
f55565b77a
commit
b86630b4b0
@ -37,6 +37,13 @@ import time
|
|||||||
|
|
||||||
from typing import Callable
|
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:
|
def get_current_file_path() -> str:
|
||||||
try:
|
try:
|
||||||
@ -106,7 +113,7 @@ def simplify_condition_memoize(f: Callable[[str], str]):
|
|||||||
atexit.register(update_cache_file)
|
atexit.register(update_cache_file)
|
||||||
|
|
||||||
def helper(condition: str) -> str:
|
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)
|
cache_file_content["cache"]["conditions"][condition] = f(condition)
|
||||||
return cache_file_content["cache"]["conditions"][condition]
|
return cache_file_content["cache"]["conditions"][condition]
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ import glob
|
|||||||
import collections
|
import collections
|
||||||
|
|
||||||
from condition_simplifier import simplify_condition
|
from condition_simplifier import simplify_condition
|
||||||
|
from condition_simplifier_cache import set_condition_simplified_cache_enabled
|
||||||
|
|
||||||
try:
|
try:
|
||||||
collectionsAbc = collections.abc
|
collectionsAbc = collections.abc
|
||||||
@ -155,6 +156,14 @@ def _parse_commandline():
|
|||||||
help="Don't automatically remove CMakeLists.gen.txt and other " "intermediate files.",
|
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(
|
parser.add_argument(
|
||||||
"files",
|
"files",
|
||||||
metavar="<.pro/.pri file>",
|
metavar="<.pro/.pri file>",
|
||||||
@ -162,7 +171,6 @@ def _parse_commandline():
|
|||||||
nargs="+",
|
nargs="+",
|
||||||
help="The .pro/.pri file to process",
|
help="The .pro/.pri file to process",
|
||||||
)
|
)
|
||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
@ -3460,6 +3468,8 @@ def main() -> None:
|
|||||||
args = _parse_commandline()
|
args = _parse_commandline()
|
||||||
|
|
||||||
debug_parsing = args.debug_parser or args.debug
|
debug_parsing = args.debug_parser or args.debug
|
||||||
|
if args.skip_condition_cache:
|
||||||
|
set_condition_simplified_cache_enabled(False)
|
||||||
|
|
||||||
backup_current_dir = os.getcwd()
|
backup_current_dir = os.getcwd()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user