- 
                Notifications
    You must be signed in to change notification settings 
- Fork 208
Package lock
The package lock makes it easier to manage and override transitive dependencies. When using a package lock file, dependencies can be updated without modifying the main or other project's CMakeLists.txt. The package lock file should be added to version control.
After including CPM.cmake, call CPMUsePackageLock(package-lock.cmake) to include package-lock.cmake, if it exists. This file can be created and updated using the target cpm-update-package-lock.
Note that version changes inside the CMakeLists are not registered after declaring packages through a package lock. To update a dependency, change according version in the package-lock.cmake file. Any transitive dependencies will need to be updated there as well and CPM.cmake will emit a warning if a newer version is required.
The following lines should be added before declaring dependencies in the main CMakeLists.txt.
include(cmake/CPM.cmake)
CPMUsePackageLock(package-lock.cmake)To generate and update the package lock file, run the cpm-update-package-lock target.
cmake -H. -Bbuild
cmake --build build --target cpm-update-package-lockAll CPM.cmake dependencies will now be managed inside the package lock file. Once declared, packages can be added without needing to define version or source info, e.g. using the CPMGetPackage(<dependency name>) command.