Я стараюсь, чтобы cmake find_package не использовал FindJPEG.cmake из системы, я создал копию FindJPEG.cmake, немного ее изменил и поместил в нее сообщение (STATUS "..."), чтобыв состоянии дифференцировать его, что-то вроде:
...
message(STATUS "MY CUSTOM JPEG FIND SCRIPT")
if(NOT JPEG_LIBRARY)
message(STATUS "MY CUSTOM JPEG FIND SCRIPT >> FIRST TIME FIND LIBRARY")
find_library(JPEG_LIBRARY_RELEASE NAMES ${jpeg_names})
...
, затем я скопировал этот измененный сценарий в / my / custom / module / path и затем я начал свою конфигурацию cmake с:
cmake .. -DCMAKE_MODULE_PATH=/my/custom/module/path;${CMAKE_MODULE_PATH}
Если в моем CMakeLists.txt я вызываю только find_package (JPEG), то все в порядке (отображается пользовательское сообщение). Но затем я добавляю зависимость Jasper в свой CMakeLists.txt, которая также зависит от JPEG.Так что мне нужно только сделать find_package (Jasper), чтобы зависимость JPEG была загружена jasper.
Проблема с последним в том, что мой измененный скрипт FindJPEG.cmake теперь не вызывается, и я предполагаю, что это потому, чтопорядок поиска CMAKE_MODULE_PATH сначала начинается в текущем каталоге ... и не следует порядку, указанному в моей командной строке cmake.
Можем ли мы изменить это поведение, или, если я интерпретирую это неправильно, кто-то может объяснить лучшепочему это происходит?
Спасибо, Нуно