mirror of
https://github.com/reactos/CMake.git
synced 2024-11-28 14:01:21 +00:00
Merge branch 'file_symlink_docs' into release-3.14
Merge-request: !2974
This commit is contained in:
commit
926a97e975
@ -26,8 +26,8 @@ Synopsis
|
||||
file(`MAKE_DIRECTORY`_ [<dir>...])
|
||||
file({`COPY`_ | `INSTALL`_} <file>... DESTINATION <dir> [...])
|
||||
file(`SIZE`_ <filename> <out-var>)
|
||||
file(`READ_SYMLINK`_ <filename> <out-var>)
|
||||
file(`CREATE_LINK`_ <file> <new-file> [...])
|
||||
file(`READ_SYMLINK`_ <linkname> <out-var>)
|
||||
file(`CREATE_LINK`_ <original> <linkname> [...])
|
||||
|
||||
`Path Conversion`_
|
||||
file(`RELATIVE_PATH`_ <out-var> <directory> <file>)
|
||||
@ -350,22 +350,22 @@ pointing to a file and is readable.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
file(READ_SYMLINK <filename> <variable>)
|
||||
file(READ_SYMLINK <linkname> <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.
|
||||
This subcommand queries the symlink ``<linkname>`` and stores the path it
|
||||
points to in the result ``<variable>``. If ``<linkname>`` does not exist or
|
||||
is not a symlink, CMake issues a fatal error.
|
||||
|
||||
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:
|
||||
a relative path. The following is an example of how to ensure that an
|
||||
absolute path is obtained:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(filename "/path/to/foo.sym")
|
||||
file(READ_SYMLINK "${filename}" result)
|
||||
set(linkname "/path/to/foo.sym")
|
||||
file(READ_SYMLINK "${linkname}" result)
|
||||
if(NOT IS_ABSOLUTE "${result}")
|
||||
get_filename_component(dir "${filename}" DIRECTORY)
|
||||
get_filename_component(dir "${linkname}" DIRECTORY)
|
||||
set(result "${dir}/${result}")
|
||||
endif()
|
||||
|
||||
@ -373,23 +373,23 @@ could do something like this:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
file(CREATE_LINK <file> <new-file>
|
||||
file(CREATE_LINK <original> <linkname>
|
||||
[RESULT <result>] [COPY_ON_ERROR] [SYMBOLIC])
|
||||
|
||||
Create a link to ``<file>`` at ``<new-file>``.
|
||||
Create a link ``<linkname>`` that points to ``<original>``.
|
||||
It will be a hard link by default, but providing the ``SYMBOLIC`` option
|
||||
results in a symbolic link instead. Hard links require that ``original``
|
||||
exists and is a file, not a directory. If ``<linkname>`` already exists,
|
||||
it will be overwritten.
|
||||
|
||||
It is a hard link by default. This can be changed to symbolic links by
|
||||
using ``SYMBOLIC``. The original file needs to exist for hard links.
|
||||
|
||||
The ``<result>`` variable, if specified, gets the status of the operation.
|
||||
It is set to ``0`` in case of success. Otherwise, it contains the error
|
||||
generated. In case of failures, if ``RESULT`` is not specified, a fatal error
|
||||
is emitted.
|
||||
The ``<result>`` variable, if specified, receives the status of the operation.
|
||||
It is set to ``0`` upon success or an error message otherwise. If ``RESULT``
|
||||
is not specified and the operation fails, a fatal error is emitted.
|
||||
|
||||
Specifying ``COPY_ON_ERROR`` enables copying the file as a fallback if
|
||||
creating the link fails.
|
||||
|
||||
Overwrites the ``<new-file>`` if it exists.
|
||||
creating the link fails. It can be useful for handling situations such as
|
||||
``<original>`` and ``<linkname>`` being on different drives or mount points,
|
||||
which would make them unable to support a hard link.
|
||||
|
||||
Path Conversion
|
||||
^^^^^^^^^^^^^^^
|
||||
|
Loading…
Reference in New Issue
Block a user