From 789307b02fe37e0af1a9016d11470a001b84bf39 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sat, 17 Apr 2021 19:41:33 +1000 Subject: Help: Behavior of file(TO_NATIVE_PATH) depends on the host platform --- Help/command/file.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Help/command/file.rst b/Help/command/file.rst index 24e43e9..31de610 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -922,7 +922,8 @@ system search path like ``$ENV{PATH}``. A search path will be converted to a cmake-style list separated by ``;`` characters. The ``TO_NATIVE_PATH`` mode converts a cmake-style ```` into a native -path with platform-specific slashes (``\`` on Windows and ``/`` elsewhere). +path with platform-specific slashes (``\`` on Windows hosts and ``/`` +elsewhere). Always use double quotes around the ```` to be sure it is treated as a single argument to this command. -- cgit v0.12 From 6234afdff4feda1459b3b30d94cc07a48e8dfe68 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Sat, 17 Apr 2021 19:16:01 +1000 Subject: Help: Document special cases for if(IS_ABSOLUTE) The meaning of "absolute path" was previously assumed knowledge, but a number of special cases were left unspecified. The way some of these are handled differs to the way that cmake_path(IS_ABSOLUTE) works, so document those special cases so that the differing behavior between these two commands is clearly defined. --- Help/command/if.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Help/command/if.rst b/Help/command/if.rst index f327ca9..fbf3e36 100644 --- a/Help/command/if.rst +++ b/Help/command/if.rst @@ -153,7 +153,16 @@ File Operations only for full paths. ``if(IS_ABSOLUTE path)`` - True if the given path is an absolute path. + True if the given path is an absolute path. Note the following special + cases: + + * An empty ``path`` evaluates to false. + * On Windows hosts, any ``path`` that begins with a drive letter and colon + (e.g. ``C:``), a forward slash or a backslash will evaluate to true. + This means a path like ``C:no\base\dir`` will evaluate to true, even + though the non-drive part of the path is relative. + * On non-Windows hosts, any ``path`` that begins with a tilde (``~``) + evaluates to true. Comparisons """"""""""" -- cgit v0.12