Я пытался отследить, почему CMake find_package
находит неправильный пакет в моей сборке.От CMake find_package: где он нашел пакет? Я узнал, как получить его, чтобы сказать мне, какие пути он искал и, следовательно, где он нашел пакет.Но теперь мне нужно выяснить , почему CMake ищет определенный путь, потому что он ищет в нестандартном месте по какой-то причине.Я проверил переменные
CMAKE_MODULE_PATH
CMAKE_PREFIX_PATH
CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
CMAKE_PROGRAM_PATH
, но они пусты.Переменная
CMAKE_SYSTEM_PREFIX_PATH
не пуста, но содержит только
/usr/local;/usr;/;/usr;/tmp/pip-req-build-ckl98h8g/build/lib.linux-x86_64-3.6
, поэтому причина не в этом.
Что еще может сделать поиск CMake каким-то образомстранный префикс?
Точная проблема заключается в следующем: find_package(yaml-cpp)
выполняет поиск следующим образом:
...
Checking prefix [/]
Checking file [/yaml-cppConfig.cmake]
Checking file [/yaml-cpp-config.cmake]
Checking prefix [/usr/games/]
Checking file [/usr/games/yaml-cppConfig.cmake]
Checking file [/usr/games/yaml-cpp-config.cmake]
Checking prefix [/usr/local/games/]
Checking file [/usr/local/games/yaml-cppConfig.cmake]
Checking file [/usr/local/games/yaml-cpp-config.cmake]
Checking prefix [/snap/]
Checking file [/snap/yaml-cppConfig.cmake]
Checking file [/snap/yaml-cpp-config.cmake]
Checking prefix [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/]
Checking file [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/yaml-cppConfig.cmake]
Checking file [/home/farmer/repos/gambit/copy3/build/contrib/yaml-cpp-0.6.2/yaml-cpp-config.cmake]
Он находит файл конфигурации пакета по этому последнему пути.Но это какой-то частный каталог сборки другого кода, поэтому я понятия не имею, почему find_package
будет искать там.Некоторая переменная где-то, должно быть, сказала это сделать, но я не знаю, какая именно.Я не хочу, чтобы этот путь был найден.