Skip to content

bootstrap: test -a|o is not POSIX

Issam E. Maghni requested to merge iemaghni/cmake:posix-test-command into master

test ... -a ... is not POSIX:

The XSI extensions specifying the -a and -o binary primaries and the '(' and ')' operators have been marked obsolescent.

https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html

This is a fix:

if test "${cmake_bootstrap_generator}" != "MSYS Makefiles" && \
    test "${cmake_bootstrap_generator}" != "Unix Makefiles" && \
    test "${cmake_bootstrap_generator}" != "Ninja"; then
  cmake_error 10 "Invalid generator: ${cmake_bootstrap_generator}"
fi

but I preferred the shorter and more intuitive fix:

case "${cmake_bootstrap_generator}" in
  'MSYS Makefiles'|'Unix Makefiles'|'Ninja') ;;
  *) cmake_error 10 "Invalid generator: ${cmake_bootstrap_generator}"
esac

Merge request reports