It is NOT recommended to install to /usr/bin/ and /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/ 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 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!