Deprecate duplicated values in array options

Duplicated options in array types have been removed by a previous
commit but someone could be using it.

The previous behaviour has been restored but the existence of
duplicates is now tested, and in that case a `DEPRECATION` message
is shown.
pull/2799/head
Iñigo Martínez 7 years ago
parent 3a1f4ab34c
commit 1eab075c8e
  1. 6
      mesonbuild/coredata.py

@ -13,6 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from . import mlog
import pickle, os, uuid
import sys
from pathlib import PurePath
@ -147,7 +148,10 @@ class UserArrayOption(UserOption):
if value.startswith('['):
newvalue = ast.literal_eval(value)
else:
newvalue = [v.strip() for v in OrderedDict.fromkeys(value.split(','))]
newvalue = [v.strip() for v in value.split(',')]
if len(set(newvalue)) != len(newvalue):
mlog.log(mlog.red('DEPRECATION:'), '''Duplicated values in an array type is deprecated.
This will become a hard error in the future.''')
if not isinstance(newvalue, list):
raise MesonException('"{0}" should be a string array, but it is not'.format(str(newvalue)))
for i in newvalue:

Loading…
Cancel
Save