From 104b14e0e0f74cafad3b837922f44bb341816cfe Mon Sep 17 00:00:00 2001 From: Roman Donchenko Date: Wed, 30 Oct 2013 16:10:02 +0400 Subject: [PATCH] Fixed CMake warnings/bugs caused by #1670 and #1714 include() doesn't create a variable scope, so the settings of CMAKE_MODULE_PATH and CMAKE_FIND_ROOT_PATH_MODE_* were polluting everything included after OpenCVDetectCUDA.cmake. Also, FindCUDA includes FindPackageHandleStandardArgs, which includes CMakeParseArguments, which causes warnings related to policy CMP0017. Setting it to NEW seems safe enough. --- CMakeLists.txt | 4 ++++ cmake/OpenCVDetectCUDA.cmake | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3326982e..3978aadd8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,10 @@ else() cmake_minimum_required(VERSION 2.6.3) endif() +if(POLICY CMP0017) + cmake_policy(SET CMP0017 NEW) +endif() + if(POLICY CMP0022) cmake_policy(SET CMP0022 OLD) endif() diff --git a/cmake/OpenCVDetectCUDA.cmake b/cmake/OpenCVDetectCUDA.cmake index 7974f5eba..156d90e72 100644 --- a/cmake/OpenCVDetectCUDA.cmake +++ b/cmake/OpenCVDetectCUDA.cmake @@ -15,12 +15,22 @@ endif() set(CMAKE_MODULE_PATH "${OpenCV_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) +foreach(var INCLUDE LIBRARY PROGRAM) + set(__old_frpm_${var} "${CMAKE_FIND_ROOT_PATH_MODE_${var}}") +endforeach() + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER) find_package(CUDA 4.2 QUIET) +foreach(var INCLUDE LIBRARY PROGRAM) + set(CMAKE_FIND_ROOT_PATH_MODE_${var} "${__old_frpm_${var}}") +endforeach() + +list(REMOVE_AT CMAKE_MODULE_PATH 0) + if(CUDA_FOUND) set(HAVE_CUDA 1)