Skip to content

try_compile: Restore expansion of ;-list in COMPILE_DEFINITIONS

The quoting added by commit 8c5221fb from !2716 (merged) broke the case that the COMPILE_DEFINITIONS value contains a ;. Without the quoting the ; would be generated literally in an unquoted argument in the test CMakeLists.txt file and would then be expanded. With quoting the ; is preserved, which is not the old behavior.

Fix this by expanding the ;-list ahead of time. Add test cases for behavior with both # and ;.

This was noticed with the PGI compiler where we set CMAKE_CXX*_STANDARD_COMPILE_OPTION to values like --c++17;-A. The symptom had also been observed while preparing !2894 (merged) but was not recognized at the time as a regression. Revert the workaround added by that commit.

Fixes: #18919 (closed)

Merge request reports