From 951e297362917675f605154ff6da89fb1acb3d40 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 13 Feb 2019 12:24:14 +0100 Subject: CMake: pro2cmake.py: Warn and fix broken line continuation Warn on broken line continuation in .pro-files, but fix up the issue and proceed. Change-Id: Ibe68011b312bcea25620ce790a0b44b2983fbd88 Reviewed-by: Alexandru Croitor --- util/cmake/tests/test_lc_fixup.py | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 util/cmake/tests/test_lc_fixup.py (limited to 'util/cmake/tests/test_lc_fixup.py') diff --git a/util/cmake/tests/test_lc_fixup.py b/util/cmake/tests/test_lc_fixup.py new file mode 100755 index 0000000000..d3680e895d --- /dev/null +++ b/util/cmake/tests/test_lc_fixup.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the plugins of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:GPL-EXCEPT$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 as published by the Free Software +## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +from pro2cmake import fixup_linecontinuation + +from textwrap import dedent + + +def test_no_change(): + input = "test \\\nline2\n line3" + result = fixup_linecontinuation(input) + assert input == result + + +def test_fix(): + input = "test \\\t\nline2\\\n line3\\ \nline4 \\ \t\nline5\\\n\n\n" + result = fixup_linecontinuation(input) + assert 'test \\\nline2 \\\n line3 \\\nline4 \\\nline5 \\\n\n\n' == result + + -- cgit v1.2.3 From bfed22e3b7b6de27359d41f1a51ea345f7284ce2 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 23 May 2019 15:57:59 +0200 Subject: Remove all line continuations when processing qmake syntax We constantly had to adjust the qmake grammar to handle line continuations (\\\n) in weird places. Instead of doing that, just do a preprocess step to remove all the LCs like we do with comments, and simplify the grammar not to take into account the LCs. From some manual testing it doesn't look like we get any regressions. Change-Id: I2017d59396004cf67b6cb54977583db65c65e7d3 Reviewed-by: Tobias Hunger --- util/cmake/tests/test_lc_fixup.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'util/cmake/tests/test_lc_fixup.py') diff --git a/util/cmake/tests/test_lc_fixup.py b/util/cmake/tests/test_lc_fixup.py index d3680e895d..841e11615e 100755 --- a/util/cmake/tests/test_lc_fixup.py +++ b/util/cmake/tests/test_lc_fixup.py @@ -29,18 +29,18 @@ from pro2cmake import fixup_linecontinuation -from textwrap import dedent - def test_no_change(): input = "test \\\nline2\n line3" + output = "test line2\n line3" result = fixup_linecontinuation(input) - assert input == result + assert output == result def test_fix(): input = "test \\\t\nline2\\\n line3\\ \nline4 \\ \t\nline5\\\n\n\n" + output = "test line2 line3 line4 line5 \n\n" result = fixup_linecontinuation(input) - assert 'test \\\nline2 \\\n line3 \\\nline4 \\\nline5 \\\n\n\n' == result + assert output == result -- cgit v1.2.3 From a5060e9f995de9d5a8f755a1837f0200e464e4af Mon Sep 17 00:00:00 2001 From: Frederik Gladhorn Date: Thu, 10 Oct 2019 09:58:38 +0200 Subject: cmake scripts: move parser into separate file The code is nicely separated between parsing and processing. Splitting that into two files makes it easier to follow which function belongs to which part. Change-Id: I576b8613b0d05b2dae3f9c6fa65d9ed5b582a0f7 Reviewed-by: Alexandru Croitor --- util/cmake/tests/test_lc_fixup.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'util/cmake/tests/test_lc_fixup.py') diff --git a/util/cmake/tests/test_lc_fixup.py b/util/cmake/tests/test_lc_fixup.py index 841e11615e..42094a5288 100755 --- a/util/cmake/tests/test_lc_fixup.py +++ b/util/cmake/tests/test_lc_fixup.py @@ -27,7 +27,7 @@ ## ############################################################################# -from pro2cmake import fixup_linecontinuation +from qmake_parser import fixup_linecontinuation def test_no_change(): @@ -42,5 +42,3 @@ def test_fix(): output = "test line2 line3 line4 line5 \n\n" result = fixup_linecontinuation(input) assert output == result - - -- cgit v1.2.3