eden/docs/CPMUtil/AddDependentPackage.md

1.2 KiB

AddDependentPackage

Use AddDependentPackage when you have multiple packages that are required to all be from the system, OR bundled. This is useful in cases where e.g. versions must absolutely match.

Versioning

Versioning must be handled by the package itself.

Examples

Vulkan

cpmfile.json

{
    "vulkan-headers": {
        "repo": "KhronosGroup/Vulkan-Headers",
        "package": "VulkanHeaders",
        "version": "1.4.317",
        "hash": "26e0ad8fa34ab65a91ca62ddc54cc4410d209a94f64f2817dcdb8061dc621539a4262eab6387e9b9aa421db3dbf2cf8e2a4b041b696d0d03746bae1f25191272",
        "git_version": "1.4.342",
        "tag": "v%VERSION%"
    },
    "vulkan-utility-libraries": {
        "repo": "KhronosGroup/Vulkan-Utility-Libraries",
        "package": "VulkanUtilityLibraries",
        "hash": "8147370f964fd82c315d6bb89adeda30186098427bf3efaa641d36282d42a263f31e96e4586bfd7ae0410ff015379c19aa4512ba160630444d3d8553afd1ec14",
        "git_version": "1.4.342",
        "tag": "v%VERSION%"
    }
}

CMakeLists.txt:

AddDependentPackages(vulkan-headers vulkan-utility-libraries)

If Vulkan Headers are installed, but NOT Vulkan Utility Libraries, then CPMUtil will throw an error.