mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-18 12:43:44 -04:00
93 lines
2.7 KiB
CMake
93 lines
2.7 KiB
CMake
# Filename: FindOpenCV.cmake
|
|
# Authors: CFSworks (3 Nov, 2018)
|
|
#
|
|
# Usage:
|
|
# find_package(OpenCV [REQUIRED] [QUIET])
|
|
#
|
|
# This supports the following components:
|
|
# calib3d
|
|
# contrib
|
|
# core
|
|
# features2d
|
|
# flann
|
|
# gpu
|
|
# highgui
|
|
# imgproc
|
|
# legacy
|
|
# ml
|
|
# nonfree
|
|
# objdetect
|
|
# photo
|
|
# stitching
|
|
# superres
|
|
# video
|
|
# videoio
|
|
# videostab
|
|
#
|
|
# Once done this will define:
|
|
# OPENCV_FOUND - system has OpenCV
|
|
# OpenCV_INCLUDE_DIRS - the include dir(s) containing OpenCV header files
|
|
# OpenCV_comp_LIBRARY - the path to the OpenCV library for the particular
|
|
# component
|
|
# OpenCV_LIBS - the paths to the OpenCV libraries for the requested
|
|
# component(s)
|
|
# OpenCV_VERSION_MAJOR- a "best guess" of the major version (X.x)
|
|
# OpenCV_VERSION_MINOR- a "best guess" of the minor version (x.X)
|
|
#
|
|
|
|
set(OpenCV_INCLUDE_DIRS)
|
|
|
|
find_path(OpenCV_V1_INCLUDE_DIR
|
|
NAMES "cv.h"
|
|
PATH_SUFFIXES "opencv")
|
|
mark_as_advanced(OpenCV_V1_INCLUDE_DIR)
|
|
if(OpenCV_V1_INCLUDE_DIR)
|
|
list(APPEND OpenCV_INCLUDE_DIRS "${OpenCV_V1_INCLUDE_DIR}")
|
|
|
|
# This is a wild guess:
|
|
set(OpenCV_VERSION_MAJOR 1)
|
|
set(OpenCV_VERSION_MINOR 0)
|
|
endif()
|
|
|
|
find_path(OpenCV_V2_INCLUDE_DIR "opencv2/core/version.hpp")
|
|
mark_as_advanced(OpenCV_V2_INCLUDE_DIR)
|
|
if(OpenCV_V2_INCLUDE_DIR)
|
|
list(APPEND OpenCV_INCLUDE_DIRS "${OpenCV_V2_INCLUDE_DIR}")
|
|
|
|
file(STRINGS "${OpenCV_V2_INCLUDE_DIR}/opencv2/core/version.hpp"
|
|
_version_major REGEX "#define CV_VERSION_EPOCH")
|
|
file(STRINGS "${OpenCV_V2_INCLUDE_DIR}/opencv2/core/version.hpp"
|
|
_version_minor REGEX "#define CV_VERSION_MAJOR")
|
|
|
|
string(REGEX REPLACE "[^0-9]" "" OpenCV_VERSION_MAJOR "${_version_major}")
|
|
string(REGEX REPLACE "[^0-9]" "" OpenCV_VERSION_MINOR "${_version_minor}")
|
|
unset(_version_major)
|
|
unset(_version_minor)
|
|
endif()
|
|
|
|
set(OpenCV_LIBS)
|
|
foreach(_component calib3d contrib core features2d flann gpu highgui imgproc
|
|
legacy ml nonfree objdetect photo stitching superres video
|
|
videoio videostab)
|
|
|
|
list(FIND OpenCV_FIND_COMPONENTS "${_component}" _index)
|
|
if(_index GREATER -1 OR _component STREQUAL "core")
|
|
if(NOT OpenCV_${_component}_LIBRARY)
|
|
find_library(OpenCV_${_component}_LIBRARY
|
|
NAMES "opencv_${_component}")
|
|
endif()
|
|
|
|
if(OpenCV_${_component}_LIBRARY)
|
|
list(APPEND OpenCV_LIBS "${OpenCV_${_component}_LIBRARY}")
|
|
set(OpenCV_${_component}_FOUND ON)
|
|
endif()
|
|
endif()
|
|
unset(_index)
|
|
endforeach(_component)
|
|
unset(_component)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(OpenCV HANDLE_COMPONENTS
|
|
REQUIRED_VARS OpenCV_INCLUDE_DIRS OpenCV_LIBS
|
|
OpenCV_VERSION_MAJOR OpenCV_VERSION_MINOR)
|