By default, CMake sets the CMAKE_INSTALL_PREFIX to /usr/local on UNIX systems.
It is common to install shared libraries to
/usr/local/bin and header files to
/usr/local/include/<project-name>/. This can be done by adding the following commands to your
It is NOT recommended to install to
/usr/local/ as these are typically reserved for applications managed by the primary package manager for the UNIX distribution, e.g.
apt-get on Ubuntu and other Debian systems.
install(DIRECTORY ... copies the entire contents of the directory (excluding the directory itself) into the destination directory.
It is recommended to bundle all the headers of your application under a single
src/include/<project-name> directory in your source code. This means that CMake can easily copy this directory into
/usr/local/include with a single
install(DIRECTORY command. The
<project-name> directory under your
src/include/ directory is so that your header files don’t pollute the
/usr/local/include/ directory, as this directory can get large, making it hard to uninstall your program, and increases the risk of naming conflicts!
This work is licensed under a Creative Commons Attribution 4.0 International License .