file: Add READ_SYMLINK sub-command

This commit is contained in:
Kyle Edwards
2018-12-05 15:27:08 -05:00
parent 81bea69bd1
commit 98a39be6cf
12 changed files with 93 additions and 0 deletions
+24
View File
@@ -26,6 +26,7 @@ Synopsis
file(`MAKE_DIRECTORY`_ [<dir>...])
file({`COPY`_ | `INSTALL`_} <file>... DESTINATION <dir> [...])
file(`SIZE`_ <filename> <out-var>)
file(`READ_SYMLINK`_ <filename> <out-var>)
`Path Conversion`_
file(`RELATIVE_PATH`_ <out-var> <directory> <file>)
@@ -344,6 +345,29 @@ Determine the file size of the ``<filename>`` and put the result in
``<variable>`` variable. Requires that ``<filename>`` is a valid path
pointing to a file and is readable.
.. _READ_SYMLINK:
.. code-block:: cmake
file(READ_SYMLINK <filename> <variable>)
Read the symlink at ``<filename>`` and put the result in ``<variable>``.
Requires that ``<filename>`` is a valid path pointing to a symlink. If
``<filename>`` does not exist, or is not a symlink, an error is thrown.
Note that this command returns the raw symlink path and does not resolve
relative symlinks. If you want to resolve the relative symlink yourself, you
could do something like this:
.. code-block:: cmake
set(filename "/path/to/foo.sym")
file(READ_SYMLINK "${filename}" result)
if(NOT IS_ABSOLUTE "${result}")
get_filename_component(dir "${filename}" DIRECTORY)
set(result "${dir}/${result}")
endif()
Path Conversion
^^^^^^^^^^^^^^^
+5
View File
@@ -0,0 +1,5 @@
file-read_symlink
-----------------
* The :command:`file` command learned a new sub-command, ``READ_SYMLINK``,
which can be used to determine the path that a symlink points to.