CMake 3.27.0-rc2 vcpkg regressions; list handling changed?
vcpkg CI run here: https://github.com/microsoft/vcpkg/pull/31931
I see a lot of android regressions somebody needs to take a look at them.
However I am more concerned about the regressions in the unit-test-cmake
port which basically does a bunch of test around the handling of vcpkg_list
which fixes some odd behaviors of cmakes list command in regards to dealing with embedded lists in lists.
Errors I see are (message printing might be wrong for the last one):
CMake Error at scripts/test_ports/unit-test-cmake/portfile.cmake:17 (_message):
vcpkg_list(SUBLIST lst 0 2 out) resulted in the wrong value for out;
expected: ";"
actual : ""
Call Stack (most recent call first):
scripts/test_ports/unit-test-cmake/portfile.cmake:108 (message)
scripts/test_ports/unit-test-cmake/test-vcpkg_list.cmake:187 (unit_test_check_variable_equal)
scripts/test_ports/unit-test-cmake/portfile.cmake:171 (include)
scripts/ports.cmake:147 (include)
CMake Error at scripts/test_ports/unit-test-cmake/portfile.cmake:17 (_message):
vcpkg_list(SUBLIST lst 0 3 out) resulted in the wrong value for out;
expected: ";;"
actual : ""
Call Stack (most recent call first):
scripts/test_ports/unit-test-cmake/portfile.cmake:108 (message)
scripts/test_ports/unit-test-cmake/test-vcpkg_list.cmake:191 (unit_test_check_variable_equal)
scripts/test_ports/unit-test-cmake/portfile.cmake:171 (include)
scripts/ports.cmake:147 (include)
code:
set(lst ";;")
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 0 0 out)]]
out ""
) # works
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 0 1 out)]]
out ""
) #works
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 0 2 out)]]
out ";"
) #fails
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 0 3 out)]]
out ";;"
) #fails
Next:
CMake Error at scripts/test_ports/unit-test-cmake/portfile.cmake:17 (_message):
vcpkg_list(SUBLIST lst 1 2 out) resulted in the wrong value for out;
expected: "c\;d;e"
actual : "c;d;e"
Call Stack (most recent call first):
scripts/test_ports/unit-test-cmake/portfile.cmake:108 (message)
scripts/test_ports/unit-test-cmake/test-vcpkg_list.cmake:203 (unit_test_check_variable_equal)
scripts/test_ports/unit-test-cmake/portfile.cmake:171 (include)
scripts/ports.cmake:147 (include)
code:
set(lst [[a\;b;c\;d;e]])
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 1 2 out)]]
out [[c\;d;e]]
)
Next:
CMake Error at scripts/test_ports/unit-test-cmake/portfile.cmake:17 (_message):
vcpkg_list(SUBLIST lst 1 -1 out) resulted in the wrong value for out;
expected: "c\;d;e;f;g;h"
actual : "c\;d;e;f;g;h"
Call Stack (most recent call first):
scripts/test_ports/unit-test-cmake/portfile.cmake:108 (message)
scripts/test_ports/unit-test-cmake/test-vcpkg_list.cmake:209 (unit_test_check_variable_equal)
scripts/test_ports/unit-test-cmake/portfile.cmake:171 (include)
scripts/ports.cmake:147 (include)
code:
set(lst [[a\;b;c\\;d;e;f;g;h]])
unit_test_check_variable_equal(
[[vcpkg_list(SUBLIST lst 1 -1 out)]]
out [[c\\;d;e;f;g;h]]
)