• Brad King's avatar
    try_compile: Restore expansion of ;-list in COMPILE_DEFINITIONS · cde2596a
    Brad King authored
    The quoting added by commit 8c5221fb (try_compile: Preserve special
    characters in COMPILE_DEFINITIONS, 2019-01-21, v3.14.0-rc1~108^2~3)
    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 commit ef8f2376
    (ParseImplicitIncludeInfo: add SunPro Fortran and PGI compiler, Cray
    fix, 2019-01-29, v3.14.0-rc1~26^2~2) but was not recognized at the time
    as a regression.  Revert the workaround added by that commit.
    
    Fixes: #18919
    cde2596a
cmCoreTryCompile.cxx 37.5 KB