Semi-Colon in FILE_SET genex has unexpected behavior
I am refering to this discussion on discourse.cmake. It seems the generator expression is not recognized, in case bare semi-colons are used in it (foo;bar).
Example:
list(APPEND SUPPORTED_ARCH "x86_64$<SEMICOLON>x86$<SEMICOLON>foo;bar")
target_sources(${TARGET_NAME}
PUBLIC
FILE_SET HEADERS
TYPE HEADERS
BASE_DIRS
"$<$<IN_LIST:${CMAKE_SYSTEM_PROCESSOR},${SUPPORTED_ARCH}>:${CMAKE_CURRENT_LIST_DIR}/include/var/${CMAKE_SYSTEM_PROCESSOR}>"
FILES
"$<$<IN_LIST:${CMAKE_SYSTEM_PROCESSOR},${SUPPORTED_ARCH}>:${CMAKE_CURRENT_LIST_DIR}/include/var/${CMAKE_SYSTEM_PROCESSOR}/arch_specifics.h>"
)
Below I copied the complete output generated when running cmake.
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error in src/alice/CMakeLists.txt:
Found relative path while evaluating include directories of "alice":
"$<BUILD_INTERFACE:$<1"
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>
CMake Error at src/alice/CMakeLists.txt:13 (target_sources):
File:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64/arch_specifics.h>
must be in one of the file set's base directories:
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/$<$<IN_LIST:x86_64,x86_64
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/x86
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/foo
/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/bar>:/home/ds/prj/cmake_snippets/examples/verify_header_example/src/alice/include/var/x86_64>