# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. from pyparsing import ParseException import unittest
def test_foreach(self):
s = """
set(STUFF A B C D E F)
foreach(item ${STUFF})
set(YES_${item} 1)
endforeach () """
parsed = cp.cmake.parseString(s)
variables = {}
cp.evaluate(variables, [], parsed) for k in ['A', 'B', 'C', 'D', 'E', 'F']:
self.assertEqual(variables['YES_%s' % k], '1')
s = """
set(STUFF "A;B;C;D;E;F")
foreach(item ${STUFF})
set(${item} 1)
endforeach () """
parsed = cp.cmake.parseString(s)
variables = {}
cp.evaluate(variables, [], parsed) for k in ['A', 'B', 'C', 'D', 'E', 'F']:
self.assertEqual(variables[k], '1')
s = """
set(STUFF D E F)
foreach(item A B C ${STUFF})
set(${item} 1)
endforeach () """
parsed = cp.cmake.parseString(s)
variables = {}
cp.evaluate(variables, [], parsed) for k in ['A', 'B', 'C', 'D', 'E', 'F']:
self.assertEqual(variables[k], '1')
s = """set(TEST A B C D)"""
parsed = cp.cmake.parseString(s)
variables = {}
cp.evaluate(variables, [], parsed)
self.assertEqual(variables['TEST'], 'A B C D')
s = """set(TEST ${TEST} E F G H)"""
parsed = cp.cmake.parseString(s)
cp.evaluate(variables, [], parsed)
self.assertEqual(variables['TEST'], 'A B C D E F G H')
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.