Contents
Creating distribution packages with CMake
CMake can automatically create packages for several distributions (e.g. Redhat/Fedora .rpm, Debian/Ubuntu .deb, etc), though the created packages will lack dependency information. To create these packages, add at the end of CMakeLists.txt:
Modify the variables to create an package with the appropriate name and metadata fields. After building the package, run:
1 make package
Source: Harold Sitter's Checkinstall DEBs done the CMake way...
Good examples
https://github.com/videolan/x265
https://github.com/Qartar/qflags/blob/master/CMakeLists.txt
CMake, CPack, and Windows
Example of using WIX and CPack: https://cmaketools.codeplex.com/SourceControl/latest#CMakeLists.txt
Uses: https://cmake.org/cmake/help/latest/command/include_external_msproject.html
Installing the MS Visual Studio runtime dependencies w/ WiX:http://stackoverflow.com/questions/34592378/redistributables-for-deploying-c-exe-developed-with-visual-studio-2015-on-wind
Tutorials
C++Now 2017: Daniel Pfeifer “Effective CMake"
Modern CMake: presentation.
External links
Create dlls on Windows without declspec() using new CMake export all feature: have CMake already export symbols for DLLs. https://gcc.gnu.org/wiki/Visibility provides an alternative.
Difference between PRIVATE, PUBLIC, and INTERFACE
CMake: dependencies between targets and files and custom commands
CMakeModularizationStatus – Boost C++ Libraries: Building Boost w/ CMake
nerdvegas/vfxcmake: Cmake Find modules for common vfx software, and general Cmake utility code: Modules for finding Nuke's SDK, Arnold, Houdini, OpenEXR, etc.