opencv/modules/videoio/cmake/detect_ximea.cmake
Philippe FOUBERT b77a0039ee Merge pull request #15351 from philippefoubert:pr_ximea
* Fix the detection of XIMEA on Windows (when it has been installed by another user with administrative privileges, for example).

* Change the flow: we first try HKEY_CURRENT_USER key and, if empty, then try HKEY_LOCAL_MACHINE
2019-08-21 00:01:34 +03:00

33 lines
978 B
CMake

if(NOT HAVE_XIMEA)
if(WIN32)
get_filename_component(regpath "[HKEY_CURRENT_USER\\Software\\XIMEA\\CamSupport\\API;Path]" ABSOLUTE)
if(NOT EXISTS ${regpath})
get_filename_component(regpath "[HKEY_LOCAL_MACHINE\\SOFTWARE\\XIMEA\\API_SoftwarePackage;Path]" ABSOLUTE)
endif()
endif()
if(X86_64)
set(lib_dir "x64")
set(lib_suffix "64")
else()
set(lib_dir "x86")
set(lib_suffix "32")
endif()
find_path(XIMEA_INCLUDE "xiApi.h"
PATHS "${XIMEA_ROOT}" ENV XIMEA_ROOT "/opt/XIMEA"
HINTS "${regpath}"
PATH_SUFFIXES "include" "API")
find_library(XIMEA_LIBRARY m3api xiapi${lib_suffix}
PATHS "${XIMEA_ROOT}" ENV XIMEA_ROOT "/opt/XIMEA"
HINTS "${regpath}"
PATH_SUFFIXES "API/${lib_dir}")
if(XIMEA_INCLUDE AND XIMEA_LIBRARY)
set(HAVE_XIMEA TRUE)
endif()
endif()
if(HAVE_XIMEA)
ocv_add_external_target(ximea "${XIMEA_INCLUDE}" "${XIMEA_LIBRARY}" "HAVE_XIMEA")
endif()
set(HAVE_XIMEA ${HAVE_XIMEA} PARENT_SCOPE)