Enhance the porting scripts with some new functionality
These were some hard requirements while porting QtQml .pro files so that the generated CMake code is syntactically correct and the result buildable. This include handling of a few more different condition scopes and disabling the c++ make_unique feature test. Change-Id: Iae875ffaf8d100296e8b56b57d076455e5d72006 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
parent
cae4c5c2ce
commit
499771f3ea
@ -620,6 +620,8 @@ def parseFeature(ctx, feature, data, cm_fh):
|
||||
'c++14': None,
|
||||
'c++1y': None,
|
||||
'c++1z': None,
|
||||
# FIXME: used in qtdeclarative, drop when we require C++14
|
||||
'cxx14_make_unique': None,
|
||||
'c89': None,
|
||||
'c99': None,
|
||||
'ccache': None,
|
||||
|
@ -889,6 +889,17 @@ def map_condition(condition: str) -> str:
|
||||
condition = re.sub(r'\bequals\s*\((.*?),\s*"?(.*?)"?\)',
|
||||
r'\1___equals___\2', condition)
|
||||
condition = re.sub(r'\s*==\s*', '___STREQUAL___', condition)
|
||||
condition = re.sub(r'\bexists\s*\((.*?)\)', r'EXISTS \1', condition)
|
||||
|
||||
pattern = r'CONFIG\((debug|release),debug\|release\)'
|
||||
match_result = re.match(pattern, condition)
|
||||
if match_result:
|
||||
build_type = match_result.group(1)
|
||||
if build_type == 'debug':
|
||||
build_type = 'Debug'
|
||||
elif build_type == 'release':
|
||||
build_type = 'Release'
|
||||
condition = re.sub(pattern, '(CMAKE_BUILD_TYPE STREQUAL {})'.format(build_type), condition)
|
||||
|
||||
condition = condition.replace('*', '_x_')
|
||||
condition = condition.replace('.$$', '__ss_')
|
||||
|
Loading…
Reference in New Issue
Block a user