I have a find_library() statement that matches below (this is based on the amazon kinesis project):
find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX})
The OPEN_SRC_INSTALL_LIB_PREFIX correctly points to the location where this library is located. I can observe this directly. However, this find_library() call fails and I am confused as to why it would do so.
I thought that maybe cmake is searching through other paths first and ignoring my specified path, so I also tried it with the NO_DEFAULT_PATH flag, as that should limit the search to only be in the paths specified:
find_library(SRTP_LIBRARIES NAMES srtp2 REQUIRED PATHS ${OPEN_SRC_INSTALL_LIB_PREFIX} NO_DEFAULT_PATH)
... still no luck.
Any ideas why this would not work? I've verified the OPEN_SRC_INSTALL_LIB_PREFIX is the valid directory of the library via message() prints.
Note that this is cross compiling, although I don't see why that would change the behavior of find_library() unless I'm missing something from the documentation
First want to note I'm on
cmake17.5.Ok, so the documentation is a bit confusing, but it seems that the
NO_DEFAULT_PATHwould only use the paths specified by thePATHSargument and none of the other cache variables, but that doesn't seem to be the case ifCMAKE_SYSROOTis set.Using the
NO_CMAKE_FIND_ROOT_PATHis what actually causesfind_library()to ignore the cached paths.