Поскольку FindMPI
является одним из модулей поиска , предоставляемых установкой CMake, вызовы find_package(MPI)
и include(FindMPI)
по существу эквивалентны. (include()
здесь требуется для загрузки модуля; простое запись FindMPI
в файл CMake приведет к ошибке.)
Команда find_package()
имеет два режима: MODULE
и CONFIG
. По умолчанию используется режим MODULE
, а из документации find_package()
:
В режиме модуля CMake ищет файл с именем Find<PackageName>.cmake
. Файл сначала ищется в CMAKE_MODULE_PATH
, затем среди модулей поиска, предоставляемых установкой CMake.
Поэтому find_package(MPI)
будет искать файл с именем FindMPI.cmake
, что эквивалентно команда include(FindMPI)
. Это верно, если у вас не определен другой файл FindMPI.cmake
в вашем CMAKE_MODULE_PATH
.
Хотя они, по сути, эквивалентны командам, вызов find_package()
обычно более полезен, поскольку позволяет передавать аргументы, например REQUIRED
, для дальнейшего указания того, как загружаются параметры внешнего проекта.