install_files
-------------

Deprecated.  Use the install(FILES ) command instead.

This command has been superceded by the install command.  It is
provided for compatibility with older CMake code.  The FILES form is
directly replaced by the FILES form of the install command.  The
regexp form can be expressed more clearly using the GLOB form of the
file command.

::

  install_files(<dir> extension file file ...)

Create rules to install the listed files with the given extension into
the given directory.  Only files existing in the current source tree
or its corresponding location in the binary tree may be listed.  If a
file specified already has an extension, that extension will be
removed first.  This is useful for providing lists of source files
such as foo.cxx when you want the corresponding foo.h to be installed.
A typical extension is '.h'.

::

  install_files(<dir> regexp)

Any files in the current source directory that match the regular
expression will be installed.

::

  install_files(<dir> FILES file file ...)

Any files listed after the FILES keyword will be installed explicitly
from the names given.  Full paths are allowed in this form.

The directory <dir> is relative to the installation prefix, which is
stored in the variable CMAKE_INSTALL_PREFIX.
