| cmake_policy(SET CMP0140 NEW) |
| |
| include ("${RunCMake_SOURCE_DIR}/check_errors.cmake") |
| unset (errors) |
| |
| set (reference "a/b/c.e.f") |
| cmake_path (REMOVE_FILENAME reference) |
| set(output "$<PATH:REMOVE_FILENAME,a/b/c.e.f>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "FILENAME: '${output}' instead of '${reference}'") |
| endif() |
| |
| cmake_path (REMOVE_FILENAME reference) |
| set(output "$<PATH:REMOVE_FILENAME,a/b/>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "FILENAME: '${output}' instead of '${reference}'") |
| endif() |
| |
| |
| set (reference "a/b/c.e.f") |
| cmake_path (REMOVE_EXTENSION reference) |
| set(output "$<PATH:REMOVE_EXTENSION,a/b/c.e.f>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (reference "a/b/c.e.f") |
| cmake_path (REMOVE_EXTENSION reference LAST_ONLY) |
| set(output "$<PATH:REMOVE_EXTENSION,LAST_ONLY,a/b/c.e.f>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| cmake_path (REMOVE_EXTENSION reference) |
| set(output "$<PATH:REMOVE_EXTENSION,a/b/c.e>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (reference "a/b/c") |
| cmake_path (REMOVE_EXTENSION reference) |
| set(output "$<PATH:REMOVE_EXTENSION,a/b/c>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (reference "a/b/.c") |
| cmake_path (REMOVE_EXTENSION reference) |
| set(output "$<PATH:REMOVE_EXTENSION,a/b/.c>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| cmake_path (REMOVE_EXTENSION reference LAST_ONLY) |
| set(output "$<PATH:REMOVE_EXTENSION,LAST_ONLY,a/b/.c>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (reference "a/b/.") |
| cmake_path (REMOVE_EXTENSION reference LAST_ONLY) |
| set(output "$<PATH:REMOVE_EXTENSION,LAST_ONLY,a/b/.>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| |
| ###################################### |
| ## tests with list of paths |
| ###################################### |
| function (compute_reference action) |
| unset(reference) |
| foreach (path IN LISTS paths) |
| cmake_path(${action} path ${ARGN}) |
| list(APPEND reference "${path}") |
| endforeach() |
| |
| return(PROPAGATE reference) |
| endfunction() |
| |
| set (paths "a/b/c.e.f" "g/h/i.j.k") |
| compute_reference(REMOVE_FILENAME) |
| set(output "$<PATH:REMOVE_FILENAME,a/b/c.e.f;g/h/i.j.k>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "FILENAME: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (paths "a/b/c.e.f" "g/h/i.j.k") |
| compute_reference(REMOVE_EXTENSION) |
| set(output "$<PATH:REMOVE_EXTENSION,a/b/c.e.f;g/h/i.j.k>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| set (reference "a/b/c.e.f" "g/h/i.j.k") |
| compute_reference(REMOVE_EXTENSION LAST_ONLY) |
| set(output "$<PATH:REMOVE_EXTENSION,LAST_ONLY,a/b/c.e.f;g/h/i.j.k>") |
| if (NOT output STREQUAL reference) |
| list (APPEND errors "EXTENSION: '${output}' instead of '${reference}'") |
| endif() |
| |
| |
| check_errors("PATH:REMOVE..." ${errors}) |