include ("${RunCMake_SOURCE_DIR}/check_errors.cmake") unset (errors) cmake_path(SET reference "/x/y/z/../../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference NORMALIZE "/x/y/z/../../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() if (WIN32) cmake_path(SET reference "/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference NORMALIZE "/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference "//?/c:/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference NORMALIZE "//?/c:/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference "\\\\?\\UNC/host/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() cmake_path(SET reference NORMALIZE "\\\\?\\UNC\\host/x\\y/z\\..\\../a/d") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() endif() ###################################### ## tests with list of paths ###################################### set(reference "/x/y/z/../../a/d;/x/y/z/../../b/e") set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() unset(reference) foreach(path IN ITEMS "/x/y/z/../../a/d" "/x/y/z/../../b/e") cmake_path(SET result NORMALIZE "${path}") list(APPEND reference "${result}") endforeach() set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() if (WIN32) unset(reference) foreach(path IN ITEMS "/x\\y/z\\..\\../a/d" "/x\\y/z\\..\\../b/e") cmake_path(SET result "${path}") list(APPEND reference "${result}") endforeach() set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() unset(reference) foreach(path IN ITEMS "/x\\y/z\\..\\../a/d" "/x\\y/z\\..\\../b/e") cmake_path(SET result NORMALIZE "${path}") list(APPEND reference "${result}") endforeach() set(output "$") if (NOT output STREQUAL reference) list (APPEND errors "'${output}' instead of '${reference}'") endif() endif() check_errors("PATH:CMAKE_PATH" ${errors})