Ich versuche, Standard-OpenCV zur gleichen Zeit wie eine benutzerdefinierte Version in einem anderen Verzeichnis unter OS X installiert zu haben. Dabei habe ich festgestellt, dass der OpenCV-CMake die Verknüpfung fehlschlägt, wenn die Bibliotheken auf einem nicht installiert sind Standardpfad (dh anders als/usr/local). Ich war in der Lage, dies zu beheben, indem eine Linie zu OpenCVModule.cmake
Zugabe:Wie kann ich eine Eigenschaft für OpenCV-dylib-Dateien mit CMake festlegen?
set_target_properties(${the_module} PROPERTIES OUTPUT_NAME "${the_module}${OPENCV_DLLVERSION}" DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" COMPILE_PDB_NAME "${the_module}${OPENCV_DLLVERSION}" COMPILE_PDB_NAME_DEBUG "${the_module}${OPENCV_DLLVERSION}${OPENCV_DEBUG_POSTFIX}" ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMPILE_PDB_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib ## <--- Added this line )
Ich versuche, diese Änderung des OpenCV-Projekt zurück beizutragen. Aber in dem Fall, in dem CMAKE_INSTALL_PREFIX
auf "/ usr/local" eingestellt ist, sollte INSTALL_NAME_DIR
nicht gesetzt werden. Ich habe versucht, indem eine if
Aussage:
set_target_properties(${the_module} PROPERTIES OUTPUT_NAME "${the_module}${OPENCV_DLLVERSION}" DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" COMPILE_PDB_NAME "${the_module}${OPENCV_DLLVERSION}" COMPILE_PDB_NAME_DEBUG "${the_module}${OPENCV_DLLVERSION}${OPENCV_DEBUG_POSTFIX}" ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} COMPILE_PDB_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} if(NOT ${CMAKE_INSTALL_PREFIX} STREQUAL "/usr/local") ## <--- this always evaluates to FALSE INSTALL_NAME_DIR ${CMAKE_INSTALL_PREFIX}/lib endif() )
Ich habe keine Syntax gefunden, dass die if
Anweisung true
verursacht zu bewerten. Gibt es eine Möglichkeit, CMake auf INSTALL_NAME_DIR
basierend auf dem Inhalt von CMAKE_INSTALL_PREFIX
bedingt zu setzen?