| # 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. |