From 92b26257f47039b9431acd76e35766cf08443ab9 Mon Sep 17 00:00:00 2001 From: "Seth R. Johnson" Date: Thu, 10 Feb 2022 08:43:22 -0500 Subject: Fix CMakePackage.define for libs/headers (#28838) The 'libs' property returned by a spec is not a list nor tuple. Closes #28836. --- lib/spack/spack/build_systems/cmake.py | 5 ++++- lib/spack/spack/test/build_systems.py | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/build_systems/cmake.py b/lib/spack/spack/build_systems/cmake.py index d82bb245fe..4ef798fd51 100644 --- a/lib/spack/spack/build_systems/cmake.py +++ b/lib/spack/spack/build_systems/cmake.py @@ -10,6 +10,9 @@ import platform import re from typing import List # novm +import six + +from llnl.util.compat import Sequence from llnl.util.filesystem import working_dir import spack.build_environment @@ -222,7 +225,7 @@ class CMakePackage(PackageBase): value = "ON" if value else "OFF" else: kind = 'STRING' - if isinstance(value, (list, tuple)): + if isinstance(value, Sequence) and not isinstance(value, six.string_types): value = ";".join(str(v) for v in value) else: value = str(value) diff --git a/lib/spack/spack/test/build_systems.py b/lib/spack/spack/test/build_systems.py index da8021db68..733381e8f2 100644 --- a/lib/spack/spack/test/build_systems.py +++ b/lib/spack/spack/test/build_systems.py @@ -313,6 +313,9 @@ class TestCMakePackage(object): arg = pkg.define('MULTI', cls(['right', 'up'])) assert arg == '-DMULTI:STRING=right;up' + arg = pkg.define('MULTI', fs.FileList(['/foo', '/bar'])) + assert arg == '-DMULTI:STRING=/foo;/bar' + arg = pkg.define('ENABLE_TRUTH', False) assert arg == '-DENABLE_TRUTH:BOOL=OFF' arg = pkg.define('ENABLE_TRUTH', True) -- cgit v1.2.3-70-g09d2