rapids_find_package

Added in version v21.06.00.

Allow projects to find dependencies via find_package with built-in tracking of these dependencies for correct export support.

rapids_find_package(<PackageName>
                    [ all normal find_package options ]
                    [COMPONENTS <components...>]
                    [GLOBAL_TARGETS <targets...>]
                    [BUILD_EXPORT_SET <name>]
                    [INSTALL_EXPORT_SET <name>]
                    [ <FIND_ARGS>
                      all normal find_package options ]
                    )

Invokes find_package call and associate this with the listed build and install export set for correct export generation. Will propagate all variables set by find_package to the caller’s scope.

Since the visibility of CMake’s targets differ between targets built locally and those imported, rapids_find_package() promotes imported targets to be global so users have consistency. List all targets used by your project in GLOBAL_TARGETS.

PackageName

Name of the package to find.

COMPONENTS

Added in version v22.10.00.

A list of required components that are required to be found for this package to be considered valid.

GLOBAL_TARGETS

Which targets from this package should be made global. This information will be propagated to any associated export set.

BUILD_EXPORT_SET

Record that a find_dependency(<PackageName>) call needs to occur as part of our build directory export set.

INSTALL_EXPORT_SET

Record that a find_dependency(<PackageName>) call needs to occur as part of our build directory export set.

FIND_ARGS

Required placeholder to be provided before any extra arguments that need to be passed down to find_package

Note

If the project/package you are looking for doesn’t have an existing CMake Find module, please look at using rapids_find_generate_module().

The rapids_find_package() function supports two call modes.

1. When all the parameters for find_package are first followed by rapids parameters such as BUILD_EXPORT_SET and INSTALL_EXPORT_SET last. Here is an example of what this call would look like:

rapids_find_package(ZLIB 1.2 REQUIRED
  GLOBAL_TARGETS ZLIB::ZLIB
  INSTALL_EXPORT_SET my-export-set
  BUILD_EXPORT_SET my-export-set
)

2. When the rapids parameters come first, and in that case they must be followed by the FIND_ARGS keyword. This ensures proper argument propagation to the underlying find_package. Here is an example of what this call would look like:

rapids_find_package(ZLIB
  GLOBAL_TARGETS ZLIB::ZLIB
  INSTALL_EXPORT_SET my-export-set
  BUILD_EXPORT_SET my-export-set
  FIND_ARGS 1.2 REQUIRED
)