# Building an Installer #

Next suppose that we want to distribute our project to other people so that they
can use it. We want to provide both binary and source distributions on a variety
of platforms. This is a little different from the install we did previously in
the Installing and Testing section (Step 4), where we were installing the
binaries that we had built from the source code. In this example we will be
building installation packages that support binary installations and package
management features. To accomplish this we will use CPack to create platform
specific installers. Specifically we need to add a few lines to the bottom of
our top-level CMakeLists.txt file.

  include(InstallRequiredSystemLibraries)
  set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
  set(CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
  set(CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
  include(CPack)

That is all there is to it. We start by including InstallRequiredSystemLibraries.
This module will include any runtime libraries that are needed by the project
for the current platform. Next we set some CPack variables to where we have
stored the license and version information for this project. The version
information makes use of the variables we set earlier in this tutorial. Finally
we include the CPack module which will use these variables and some other
properties of the system you are on to setup an installer.

The next step is to build the project in the usual manner and then run CPack
on it. To build a binary distribution you would run:

  cpack

To create a source distribution you would type:

  cpack -C CPackSourceConfig.cmake

Alternatively, run “make package” or right click the Package target and
“Build Project” from an IDE.

Run the installer executable found  in the binary directory. Then run the
installed executable and verify that it works.
