diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-09-02 14:27:41 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-09-02 23:44:15 +0200 |
commit | 067fb7915a469fa83aac60f345cee08db087a587 (patch) | |
tree | 5efa50dd00be72e38c65a8f1d1387e0820f34ad1 | |
parent | 46f8c46bee122d70589e97804a9c98fff6ad494b (diff) |
pro2cmake: Fix qmake parser's line continuation handling
The qmake parser of pro2cmake handles completely commented lines to make
assignments like this work:
SUBDIRS = \
foo \
# bar \
bar
However, assignments like
SUBDIRS = \
foo \
#bar \
bar
were cut off at the commented line.
Fix this by allowing leading whitespace for "fully commented lines".
Change-Id: Ib5de850a02fd9b9ebb7c056c2f64f9d684334b08
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | tests/auto/other/.prev_CMakeLists.txt | 14 | ||||
-rw-r--r-- | tests/auto/other/CMakeLists.txt | 14 | ||||
-rw-r--r-- | util/cmake/qmake_parser.py | 3 |
3 files changed, 18 insertions, 13 deletions
diff --git a/tests/auto/other/.prev_CMakeLists.txt b/tests/auto/other/.prev_CMakeLists.txt index d89e950690..448e831e76 100644 --- a/tests/auto/other/.prev_CMakeLists.txt +++ b/tests/auto/other/.prev_CMakeLists.txt @@ -20,21 +20,23 @@ if(MACOS AND TARGET Qt::Gui AND TARGET Qt::Widgets) add_subdirectory(macplist) add_subdirectory(qaccessibilitymac) endif() +if(TARGET Qt::Network) + add_subdirectory(networkselftest) +endif() +if(QT_FEATURE_accessibility AND TARGET Qt::Gui AND TARGET Qt::Widgets) + add_subdirectory(qaccessibility) +endif() if(TARGET Qt::Gui) add_subdirectory(qcomplextext) endif() +add_subdirectory(qobjectrace) +add_subdirectory(toolsupport) if(QT_FEATURE_process AND TARGET Qt::Gui) add_subdirectory(qprocess_and_guieventloop) endif() -if(QT_FEATURE_accessibility AND TARGET Qt::Gui AND TARGET Qt::Widgets) - add_subdirectory(qaccessibility) -endif() if(QT_FEATURE_accessibility_atspi_bridge AND TARGET Qt::Gui AND TARGET Qt::Widgets) add_subdirectory(qaccessibilitylinux) endif() -if(TARGET Qt::Network) - add_subdirectory(networkselftest) -endif() if(MACOS AND TARGET Qt::Gui) add_subdirectory(macnativeevents) endif() diff --git a/tests/auto/other/CMakeLists.txt b/tests/auto/other/CMakeLists.txt index 6a9569332d..48166f20d9 100644 --- a/tests/auto/other/CMakeLists.txt +++ b/tests/auto/other/CMakeLists.txt @@ -20,21 +20,23 @@ if(MACOS AND TARGET Qt::Gui AND TARGET Qt::Widgets) add_subdirectory(macplist) add_subdirectory(qaccessibilitymac) endif() +if(TARGET Qt::Network) + add_subdirectory(networkselftest) +endif() +if(QT_FEATURE_accessibility AND TARGET Qt::Gui AND TARGET Qt::Widgets) + add_subdirectory(qaccessibility) +endif() if(TARGET Qt::Gui) add_subdirectory(qcomplextext) endif() +add_subdirectory(qobjectrace) +add_subdirectory(toolsupport) if(QT_FEATURE_process AND TARGET Qt::Gui) add_subdirectory(qprocess_and_guieventloop) endif() -if(QT_FEATURE_accessibility AND TARGET Qt::Gui AND TARGET Qt::Widgets) - add_subdirectory(qaccessibility) -endif() if(QT_FEATURE_accessibility_atspi_bridge AND TARGET Qt::Gui AND TARGET Qt::Widgets) #add_subdirectory(qaccessibilitylinux) # special case # This test is broken endif() -if(TARGET Qt::Network) - add_subdirectory(networkselftest) -endif() if(MACOS AND TARGET Qt::Gui) # add_subdirectory(macnativeevents) # special case it's disabled in qmake too endif() diff --git a/util/cmake/qmake_parser.py b/util/cmake/qmake_parser.py index 1b49ac7b58..73620f0890 100644 --- a/util/cmake/qmake_parser.py +++ b/util/cmake/qmake_parser.py @@ -54,6 +54,7 @@ def fixup_comments(contents: str) -> str: # Get rid of completely commented out lines. # So any line which starts with a '#' char and ends with a new line # will be replaced by a single new line. + # The # may be preceded by any number of spaces or tabs. # # This is needed because qmake syntax is weird. In a multi line # assignment (separated by backslashes and newlines aka @@ -67,7 +68,7 @@ def fixup_comments(contents: str) -> str: # care of it as well, as if the commented line didn't exist in the # first place. - contents = re.sub(r"\n#[^\n]*?\n", "\n", contents, re.DOTALL) + contents = re.sub(r"\n[ \t]*#[^\n]*?\n", "\n", contents, re.DOTALL) return contents |