separate_arguments not works

separate_arguments would be the only one hack to get list as result of function instead get only string

This minimal CMakeLists.txt

cmake_minimum_required(VERSION 3.24)
project(zgloszenie_cmake)
set(CMAKE_CXX_STANDARD 17)
separate_arguments(generated_files_cmake UNIX_COMMAND "Ala ma kota")
MESSAGE(${generated_files_cmake})
separate_arguments(generated_files_cmake WINDOWS_COMMAND "Ala ma kota")
MESSAGE(${generated_files_cmake})
separate_arguments(generated_files_cmake NATIVE_COMMAND "Ala ma kota")
MESSAGE(${generated_files_cmake})

add_executable(zgloszenie_cmake main.cpp)

result

/home/andrzej/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/223.8836.42/bin/cmake/linux/x64/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/home/andrzej/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/223.8836.42/bin/ninja/linux/x64/ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -G Ninja -S /home/andrzej/wazne/gitmy/my_c/zgloszenie_cmake -B /home/andrzej/wazne/gitmy/my_c/zgloszenie_cmake/cmake-build-debug
Alamakota
Alamakota
Alamakota
-- Configuring done
-- Generating done
-- Build files have been written to: /home/andrzej/wazne/gitmy/my_c/zgloszenie_cmake/cmake-build-debug

The command separate_arguments works as expected.

What you display is not what you expect because the message is not included inside quotes, so it is wrongly interpreted by CMake.

cmake_minimum_required(VERSION 3.24)
project(zgloszenie_cmake)
set(CMAKE_CXX_STANDARD 17)
separate_arguments(generated_files_cmake UNIX_COMMAND "Ala ma kota")
MESSAGE("${generated_files_cmake}")
separate_arguments(generated_files_cmake WINDOWS_COMMAND "Ala ma kota")
MESSAGE("${generated_files_cmake}")
separate_arguments(generated_files_cmake NATIVE_COMMAND "Ala ma kota")
MESSAGE("${generated_files_cmake}")

will display:

Ala;ma;kota
Ala;ma;kota
Ala;ma;kota