Better variant of OpenCVConfig.cmake generation; several smaller changes in the options section and Android build scripts
This commit is contained in:
parent
863fe3ecf8
commit
23af203e00
@ -40,6 +40,9 @@ if(NOT CMAKE_TOOLCHAIN_FILE)
|
||||
if(MSVC)
|
||||
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
else(NOT CMAKE_TOOLCHAIN_FILE)
|
||||
#Android: set output folder to ${CMAKE_BINARY_DIR}
|
||||
set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
|
||||
endif(NOT CMAKE_TOOLCHAIN_FILE)
|
||||
|
||||
# --------------------------------------------------------------
|
||||
@ -89,7 +92,6 @@ include(cmake/OpenCVDetectCXXCompiler.cmake REQUIRED)
|
||||
# Optional 3rd party components
|
||||
# ===================================================
|
||||
OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) )
|
||||
OCV_OPTION(WITH_ANDROID_CAMERA "Build with native Android camera support" ON IF (ANDROID AND ANDROID_NATIVE_API_LEVEL GREATER 7) )
|
||||
OCV_OPTION(WITH_AVFOUNDATION "Use AVFoundation for Video I/O" ON IF IOS)
|
||||
OCV_OPTION(WITH_CARBON "Use Carbon for UI instead of Cocoa" OFF IF APPLE )
|
||||
OCV_OPTION(WITH_CUBLAS "Include NVidia Cuda Basic Linear Algebra Subprograms (BLAS) library support" OFF IF (CMAKE_VERSION VERSION_GREATER "2.8" AND NOT ANDROID AND NOT IOS) )
|
||||
@ -126,9 +128,7 @@ else()
|
||||
endif()
|
||||
OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
|
||||
OCV_OPTION(BUILD_DOCS "Create build rules for OpenCV Documentation" ON )
|
||||
OCV_OPTION(BUILD_JAVA_SUPPORT "Build with Java support" ON IF (ANDROID AND ANDROID_NATIVE_API_LEVEL GREATER 7) )
|
||||
OCV_OPTION(BUILD_EXAMPLES "Build all examples" OFF )
|
||||
OCV_OPTION(BUILD_NEW_PYTHON_SUPPORT "Build with Python support" ON IF (NOT ANDROID AND NOT IOS) )
|
||||
OCV_OPTION(BUILD_PACKAGE "Enables 'make package_source' command" ON )
|
||||
OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) )
|
||||
OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" ON IF (NOT IOS) )
|
||||
@ -165,6 +165,7 @@ OCV_OPTION(ENABLE_SSE41 "Enable SSE4.1 instructions"
|
||||
OCV_OPTION(ENABLE_SSE42 "Enable SSE4.2 instructions" OFF IF (CMAKE_COMPILER_IS_GNUCXX AND (X86 OR X86_64)) )
|
||||
OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
|
||||
|
||||
include(cmake/OpenCVLegacyOptions.cmake OPTIONAL)
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Get actual OpenCV version number from sources
|
||||
@ -444,7 +445,7 @@ include(cmake/OpenCVDetectPython.cmake REQUIRED)
|
||||
|
||||
########################### Java Support ##########################
|
||||
# current implementation of Java wrappers generator requires python at build time
|
||||
if(BUILD_JAVA_SUPPORT AND PYTHON_EXECUTABLE)
|
||||
if((NOT DEFINED BUILD_opencv_java OR BUILD_opencv_java) AND PYTHON_EXECUTABLE)
|
||||
if(ANDROID)
|
||||
include(cmake/OpenCVDetectAndroidSDK.cmake REQUIRED)
|
||||
endif()
|
||||
@ -458,7 +459,8 @@ if(BUILD_JAVA_SUPPORT AND PYTHON_EXECUTABLE)
|
||||
endif()
|
||||
|
||||
if(NOT CAN_BUILD_ANDROID_PROJECTS)
|
||||
UNSET(BUILD_ANDROID_EXAMPLES CACHE)
|
||||
message(WARNING "Android examples are chosen for build, but required SDK tools are not found.")
|
||||
unset(BUILD_ANDROID_EXAMPLES CACHE)
|
||||
endif()
|
||||
|
||||
############################### QT ################################
|
||||
@ -778,10 +780,10 @@ status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTAB
|
||||
# interfaces to other languages
|
||||
status("")
|
||||
status(" Interfaces:")
|
||||
status(" Python:" BUILD_NEW_PYTHON_SUPPORT AND PYTHON_EXECUTABLE THEN YES ELSE NO)
|
||||
status(" Python numpy:" PYTHON_USE_NUMPY AND BUILD_NEW_PYTHON_SUPPORT THEN YES ELSE "NO (Python wrappers will not be generated)")
|
||||
status(" Python:" HAVE_opencv_python THEN YES ELSE NO)
|
||||
status(" Python numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python wrappers will not be generated)")
|
||||
if(ANDROID)
|
||||
status(" Java:" BUILD_JAVA_SUPPORT AND PYTHON_EXECUTABLE THEN YES ELSE NO)
|
||||
status(" Java:" HAVE_opencv_java THEN YES ELSE NO)
|
||||
endif()
|
||||
|
||||
# documentation
|
||||
|
@ -1,32 +0,0 @@
|
||||
########################
|
||||
# Initial cache settings for opencv on android
|
||||
# run cmake with:
|
||||
# cmake -C
|
||||
########################
|
||||
|
||||
#Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel.
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" )
|
||||
|
||||
#no python available on Android
|
||||
set(BUILD_NEW_PYTHON_SUPPORT OFF CACHE INTERNAL "" FORCE)
|
||||
|
||||
#Enable SSE instructions
|
||||
SET( ENABLE_SSE OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Enable SSE2 instructions
|
||||
SET( ENABLE_SSE2 OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Enable SSE3 instructions
|
||||
SET( ENABLE_SSE3 OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Enable SSE4.1 instructions
|
||||
SET( ENABLE_SSE41 OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Enable SSE4.2 instructions
|
||||
SET( ENABLE_SSE42 OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Enable SSSE3 instructions
|
||||
SET( ENABLE_SSSE3 OFF CACHE INTERNAL "" FORCE )
|
||||
|
||||
#Set output folder to ${CMAKE_BINARY_DIR}
|
||||
set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
|
@ -6,7 +6,7 @@ SETLOCAL ENABLEEXTENSIONS || (ECHO Unable to enable command extensions. & EXIT \
|
||||
|
||||
:: build environment
|
||||
SET SOURCE_DIR=%cd%
|
||||
IF EXIST .\CMakeCache.android.initial.cmake (SET BUILD_OPENCV=1) ELSE (SET BUILD_OPENCV=0)
|
||||
IF EXIST .\android.toolchain.cmake (SET BUILD_OPENCV=1) ELSE (SET BUILD_OPENCV=0)
|
||||
IF EXIST .\jni\nul (SET BUILD_JAVA_PART=1) ELSE (SET BUILD_JAVA_PART=0)
|
||||
|
||||
:: load configuration
|
||||
@ -53,7 +53,7 @@ ECHO ANDROID_ABI=%ANDROID_ABI%
|
||||
ECHO.
|
||||
IF NOT %BUILD_OPENCV%==1 GOTO other-cmake
|
||||
:opencv-cmake
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DANDROID_ABI="%ANDROID_ABI%" -C "%SOURCE_DIR%\CMakeCache.android.initial.cmake" -DCMAKE_TOOLCHAIN_FILE="%SOURCE_DIR%"\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %* "%SOURCE_DIR%\..") && GOTO cmakefin
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DANDROID_ABI="%ANDROID_ABI%" -DCMAKE_TOOLCHAIN_FILE="%SOURCE_DIR%"\android.toolchain.cmake -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %* "%SOURCE_DIR%\..") && GOTO cmakefin
|
||||
ECHO. & ECHO cmake failed & GOTO end
|
||||
:other-cmake
|
||||
("%CMAKE_EXE%" -G"MinGW Makefiles" -DANDROID_ABI="%ANDROID_ABI%" -DOpenCV_DIR="%OPENCV_BUILD_DIR%" -DCMAKE_TOOLCHAIN_FILE="%OPENCV_BUILD_DIR%\..\android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM="%MAKE_EXE%" %* "%SOURCE_DIR%") && GOTO cmakefin
|
||||
|
@ -4,5 +4,5 @@ cd `dirname $0`/..
|
||||
mkdir -p build
|
||||
cd build
|
||||
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
|
||||
|
@ -4,5 +4,5 @@ cd `dirname $0`/..
|
||||
mkdir -p build_armeabi
|
||||
cd build_armeabi
|
||||
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DANDROID_ABI=armeabi -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
cmake -DANDROID_ABI=armeabi -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
|
||||
|
@ -4,5 +4,5 @@ cd `dirname $0`/..
|
||||
mkdir -p build_neon
|
||||
cd build_neon
|
||||
|
||||
cmake -C ../CMakeCache.android.initial.cmake -DANDROID_ABI="armeabi-v7a with NEON" -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
cmake -DANDROID_ABI="armeabi-v7a with NEON" -DCMAKE_TOOLCHAIN_FILE=../android.toolchain.cmake $@ ../..
|
||||
|
||||
|
@ -15,7 +15,7 @@ mkdir opencv
|
||||
#mkdir build-neon
|
||||
#cd build-neon
|
||||
|
||||
#cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
#cmake -DANDROID_ABI="armeabi-v7a with NEON" -DBUILD_DOCS=OFF -DBUILD_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
#make -j8 install/strip || exit 1
|
||||
|
||||
#cd "$PRG_DIR/opencv"
|
||||
@ -29,7 +29,7 @@ cd "$PRG_DIR"
|
||||
mkdir build
|
||||
cd build
|
||||
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi-v7a" -DBUILD_DOCS=OFF -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
cmake -DANDROID_ABI="armeabi-v7a" -DBUILD_DOCS=OFF -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
make -j8 install/strip || exit 1
|
||||
|
||||
cd "$PRG_DIR/opencv"
|
||||
@ -40,7 +40,7 @@ rm -rf doc include src .classpath .project AndroidManifest.xml default.propertie
|
||||
cd "$PRG_DIR/build"
|
||||
rm -rf CMakeCache.txt
|
||||
|
||||
cmake -C "$ANDROID_DIR/CMakeCache.android.initial.cmake" -DANDROID_ABI="armeabi" -DBUILD_DOCS=ON -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DINSTALL_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
cmake -DANDROID_ABI="armeabi" -DBUILD_DOCS=ON -DBUILD_TESTS=ON -DBUILD_EXAMPLES=OFF -DBUILD_ANDROID_EXAMPLES=ON -DINSTALL_ANDROID_EXAMPLES=ON -DCMAKE_TOOLCHAIN_FILE="$ANDROID_DIR/android.toolchain.cmake" -DCMAKE_INSTALL_PREFIX="$PRG_DIR/opencv" "$ANDROID_DIR/.." || exit 1
|
||||
make -j8 install/strip docs || exit 1
|
||||
|
||||
find doc -name "*.pdf" -exec cp {} $PRG_DIR/opencv/doc \;
|
||||
|
@ -36,13 +36,16 @@ if(OpenCV_LIB_COMPONENTS)
|
||||
list(REMOVE_ITEM OPENCV_MODULES_CONFIGMAKE ${OpenCV_LIB_COMPONENTS})
|
||||
endif()
|
||||
|
||||
macro(ocv_generate_dependencies_map_configmake suffix)
|
||||
macro(ocv_generate_dependencies_map_configmake suffix configuration)
|
||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "")
|
||||
set(OPENCV_PROCESSED_LIBS "")
|
||||
set(OPENCV_LIBS_TO_PROCESS ${OPENCV_MODULES_CONFIGMAKE})
|
||||
while(OPENCV_LIBS_TO_PROCESS)
|
||||
list(GET OPENCV_LIBS_TO_PROCESS 0 __ocv_lib)
|
||||
get_target_property(__libname ${__ocv_lib} LOCATION_${configuration})
|
||||
get_filename_component(__libname "${__libname}" NAME)
|
||||
|
||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "${OPENCV_DEPENDENCIES_MAP_${suffix}}set(OpenCV_${__ocv_lib}_LIBNAME_${suffix} \"${__libname}\")\n")
|
||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "${OPENCV_DEPENDENCIES_MAP_${suffix}}set(OpenCV_${__ocv_lib}_DEPS_${suffix} ${${__ocv_lib}_MODULE_DEPS_${suffix}})\n")
|
||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "${OPENCV_DEPENDENCIES_MAP_${suffix}}set(OpenCV_${__ocv_lib}_EXTRA_DEPS_${suffix} ${${__ocv_lib}_EXTRA_DEPS_${suffix}})\n")
|
||||
|
||||
@ -53,19 +56,27 @@ macro(ocv_generate_dependencies_map_configmake suffix)
|
||||
unset(OPENCV_PROCESSED_LIBS)
|
||||
unset(OPENCV_LIBS_TO_PROCESS)
|
||||
unset(__ocv_lib)
|
||||
unset(__libname)
|
||||
endmacro()
|
||||
|
||||
ocv_generate_dependencies_map_configmake(OPT)
|
||||
ocv_generate_dependencies_map_configmake(DBG)
|
||||
ocv_generate_dependencies_map_configmake(OPT Release)
|
||||
ocv_generate_dependencies_map_configmake(DBG Debug)
|
||||
|
||||
# -------------------------------------------------------------------------------------------
|
||||
# Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
|
||||
# -------------------------------------------------------------------------------------------
|
||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"${OPENCV_CONFIG_FILE_INCLUDE_DIR}\" \"${OpenCV_SOURCE_DIR}/include\" \"${OpenCV_SOURCE_DIR}/include/opencv\"")
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "${OpenCV_SOURCE_DIR}")
|
||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "${LIBRARY_OUTPUT_PATH}")
|
||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"${LIBRARY_OUTPUT_PATH}\"")
|
||||
set(CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE "\"${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}\"")
|
||||
|
||||
#set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "${OpenCV_SOURCE_DIR}")
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "")
|
||||
foreach(m ${OPENCV_MODULES_BUILD})
|
||||
if(EXISTS "${OPENCV_MODULE_${m}_LOCATION}/include")
|
||||
list(APPEND CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "${OPENCV_MODULE_${m}_LOCATION}/include")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/OpenCVConfig.cmake" IMMEDIATE @ONLY)
|
||||
|
||||
#support for version checking when finding opencv. find_package(OpenCV 2.3.1 EXACT) should now work.
|
||||
@ -77,7 +88,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/OpenCVConfig-version
|
||||
# -------------------------------------------------------------------------------------------
|
||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/${OPENCV_INCLUDE_PREFIX}/opencv" "\${OpenCV_INSTALL_PATH}/${OPENCV_INCLUDE_PREFIX}\"")
|
||||
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "")
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "\"\"")
|
||||
if(ANDROID)
|
||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/libs/\${ANDROID_NDK_ABI_NAME}\"")
|
||||
set(CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/share/OpenCV/3rdparty/libs/\${ANDROID_NDK_ABI_NAME}\"")
|
||||
@ -117,7 +128,7 @@ endif()
|
||||
# -------------------------------------------------------------------------------------------
|
||||
if(WIN32)
|
||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/include\" \"\${OpenCV_CONFIG_PATH}/include/opencv\"")
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "")
|
||||
set(CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE "\"\"")
|
||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/${OPENCV_LIB_INSTALL_PATH}\"")
|
||||
set(CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}\"")
|
||||
|
||||
|
15
cmake/OpenCVLegacyOptions.cmake
Normal file
15
cmake/OpenCVLegacyOptions.cmake
Normal file
@ -0,0 +1,15 @@
|
||||
macro(ocv_legacy_option old superseded_by)
|
||||
if(DEFINED ${old})
|
||||
if(ARGV2)
|
||||
set(${superseded_by} ${${old}} CACHE ${ARGV2} "Set via depricated ${old}" FORCE)
|
||||
else()
|
||||
set(${superseded_by} ${${old}} CACHE BOOL "Set via depricated ${old}" FORCE)
|
||||
endif()
|
||||
unset(${old} CACHE)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
ocv_legacy_option(BUILD_NEW_PYTHON_SUPPORT BUILD_opencv_python)
|
||||
ocv_legacy_option(BUILD_JAVA_SUPPORT BUILD_opencv_java)
|
||||
ocv_legacy_option(WITH_ANDROID_CAMERA BUILD_opencv_androidcamera)
|
||||
|
@ -73,8 +73,10 @@ include_directories(${OpenCV_INCLUDE_DIRS})
|
||||
# ======================================================
|
||||
|
||||
# Provide the libs directories to the caller
|
||||
SET(OpenCV_LIB_DIR @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
||||
link_directories(${OpenCV_LIB_DIR})
|
||||
set(OpenCV_LIB_DIR_OPT @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
||||
set(OpenCV_LIB_DIR_DBG @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
||||
set(OpenCV_3RDPARTY_LIB_DIR_OPT @CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE@)
|
||||
set(OpenCV_3RDPARTY_LIB_DIR_DBG @CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE@)
|
||||
|
||||
# ======================================================
|
||||
# Version variables:
|
||||
@ -94,6 +96,21 @@ SET(OpenCV_LIB_COMPONENTS @OPENCV_MODULES_CONFIGMAKE@)
|
||||
|
||||
@OPENCV_DEPENDENCIES_MAP_DBG@
|
||||
|
||||
# ==============================================================
|
||||
# Extra include directories, needed by OpenCV 2 new structure
|
||||
# ==============================================================
|
||||
SET(OpenCV2_INCLUDE_DIRS @CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE@)
|
||||
if(OpenCV2_INCLUDE_DIRS)
|
||||
include_directories(${OpenCV2_INCLUDE_DIRS})
|
||||
list(APPEND OpenCV_INCLUDE_DIRS ${OpenCV2_INCLUDE_DIRS})
|
||||
if(MSVC)
|
||||
set(OpenCV_LIB_DIR_OPT "${OpenCV_LIB_DIR_OPT}/Release")
|
||||
set(OpenCV_LIB_DIR_DBG "${OpenCV_LIB_DIR_DBG}/Debug")
|
||||
set(OpenCV_3RDPARTY_LIB_DIR_OPT "${OpenCV_3RDPARTY_LIB_DIR_OPT}/Release")
|
||||
set(OpenCV_3RDPARTY_LIB_DIR_DBG "${OpenCV_3RDPARTY_LIB_DIR_DBG}/Debug")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ==============================================================
|
||||
# Check OpenCV availability
|
||||
# ==============================================================
|
||||
@ -114,10 +131,10 @@ endif()
|
||||
# Form list of modules (components) to find
|
||||
# ==============================================================
|
||||
if(NOT OpenCV_FIND_COMPONENTS)
|
||||
set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
|
||||
set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
|
||||
endif()
|
||||
|
||||
#expand short module names
|
||||
# expand short module names and see if requested components exist
|
||||
set(OpenCV_FIND_COMPONENTS_ "")
|
||||
foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
||||
if(NOT __cvcomponent MATCHES "^opencv_")
|
||||
@ -125,15 +142,20 @@ foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
||||
endif()
|
||||
list(FIND OpenCV_LIB_COMPONENTS ${__cvcomponent} __cvcomponentIdx)
|
||||
if(__cvcomponentIdx LESS 0)
|
||||
#requested component is not found...
|
||||
if(OpenCV_FIND_REQUIRED)
|
||||
message(FATAL_ERROR "${__cvcomponent} is required but was not found")
|
||||
elseif(NOT OpenCV_FIND_QUIETLY)
|
||||
message(WARNING "${__cvcomponent} is required but was not found")
|
||||
endif()
|
||||
#indicate that module is NOT found
|
||||
string(TOUPPER "${__cvcomponent}" __cvcomponent)
|
||||
set(${__cvcomponent}_FOUND "${__cvcomponent}_FOUND-NOTFOUND")
|
||||
else()
|
||||
list(APPEND OpenCV_FIND_COMPONENTS_ ${__cvcomponent})
|
||||
#indicate that module is found
|
||||
string(TOUPPER "${__cvcomponent}" __cvcomponent)
|
||||
set(${__cvcomponent}_FOUND 1)
|
||||
endif()
|
||||
endforeach()
|
||||
set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
|
||||
@ -142,39 +164,27 @@ set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
|
||||
# Resolve dependencies
|
||||
# ==============================================================
|
||||
if(OpenCV_USE_MANGLED_PATHS)
|
||||
set(OpenCV_LIB_SUFFIX_DBG ".so.${OpenCV_VERSION}")
|
||||
set(OpenCV_LIB_SUFFIX_OPT ".so.${OpenCV_VERSION}")
|
||||
set(OpenCV_LIB_SUFFIX ".${OpenCV_VERSION}")
|
||||
else()
|
||||
set(OpenCV_LIB_SUFFIX_DBG "@OPENCV_DLLVERSION@@OPENCV_DEBUG_POSTFIX@")
|
||||
set(OpenCV_LIB_SUFFIX_OPT "@OPENCV_DLLVERSION@")
|
||||
set(OpenCV_LIB_SUFFIX "")
|
||||
endif()
|
||||
set(OpenCV_3RDPARTY_LIB_SUFFIX_DBG "@OPENCV_DEBUG_POSTFIX@")
|
||||
set(OpenCV_3RDPARTY_LIB_SUFFIX_OPT "")
|
||||
|
||||
# choose required dependencies
|
||||
set(OpenCV_NEED_3RDPARTY_LINK_DEPS FALSE)
|
||||
set(OpenCV_REQUIRED_MODULES ${OpenCV_FIND_COMPONENTS})
|
||||
foreach(__opttype OPT DBG)
|
||||
SET(OpenCV_LIBS_${__opttype} "")
|
||||
SET(OpenCV_EXTRA_LIBS_${__opttype} "")
|
||||
foreach(__cvlib ${OpenCV_FIND_COMPONENTS})
|
||||
foreach(__cvdep ${OpenCV_${__cvlib}_DEPS_${__opttype}})
|
||||
if(__cvdep MATCHES "^opencv_")
|
||||
list(APPEND OpenCV_LIBS_${__opttype} ${__cvdep}${OpenCV_LIB_SUFFIX_${__opttype}})
|
||||
list(APPEND OpenCV_REQUIRED_MODULES ${__cvdep})
|
||||
list(APPEND OpenCV_LIBS_${__opttype} "${OpenCV_LIB_DIR_${__opttype}}/${OpenCV_${__cvdep}_LIBNAME_${__opttype}}${OpenCV_LIB_SUFFIX}")
|
||||
#indicate that this module is also found
|
||||
string(TOUPPER "${__cvdep}" __cvdep)
|
||||
set(${__cvdep}_FOUND 1)
|
||||
else()
|
||||
list(APPEND OpenCV_LIBS_${__opttype} ${__cvdep}${OpenCV_3RDPARTY_LIB_SUFFIX_${__opttype}})
|
||||
set(OpenCV_NEED_3RDPARTY_LINK_DEPS TRUE)
|
||||
list(APPEND OpenCV_LIBS_${__opttype} "${OpenCV_3RDPARTY_LIB_DIR_${__opttype}}/${OpenCV_${__cvdep}_LIBNAME_${__opttype}}")
|
||||
endif()
|
||||
endforeach()
|
||||
list(APPEND OpenCV_LIBS_${__opttype} ${__cvlib}${OpenCV_LIB_SUFFIX_${__opttype}})
|
||||
list(APPEND OpenCV_LIBS_${__opttype} "${OpenCV_LIB_DIR_${__opttype}}/${OpenCV_${__cvlib}_LIBNAME_${__opttype}}${OpenCV_LIB_SUFFIX}")
|
||||
list(APPEND OpenCV_EXTRA_LIBS_${__opttype} ${OpenCV_${__cvlib}_EXTRA_DEPS_${__opttype}})
|
||||
#indicate that module is found
|
||||
string(TOUPPER "${__cvlib}" __cvlib)
|
||||
set(${__cvlib}_FOUND 1)
|
||||
endforeach()
|
||||
|
||||
if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
|
||||
@ -184,19 +194,11 @@ foreach(__opttype OPT DBG)
|
||||
if(OpenCV_EXTRA_LIBS_${__opttype})
|
||||
list(REMOVE_DUPLICATES OpenCV_EXTRA_LIBS_${__opttype})
|
||||
endif()
|
||||
if(OpenCV_REQUIRED_MODULES)
|
||||
list(REMOVE_DUPLICATES OpenCV_REQUIRED_MODULES)
|
||||
endif()
|
||||
else()
|
||||
#TODO: duplicates are annoying but they should not be the problem
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(OpenCV_NEED_3RDPARTY_LINK_DEPS)
|
||||
list(APPEND OpenCV_LIB_DIR @CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE@)
|
||||
link_directories(@CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE@)
|
||||
endif()
|
||||
|
||||
if(OpenCV_LIBS_DBG)
|
||||
list(REVERSE OpenCV_LIBS_DBG)
|
||||
endif()
|
||||
@ -224,19 +226,6 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# ==============================================================
|
||||
# Extra include directories, needed by OpenCV 2 new structure
|
||||
# ==============================================================
|
||||
SET(OpenCV_SOURCE_PATH "@CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE@")
|
||||
if(NOT "${OpenCV_SOURCE_PATH}" STREQUAL "")
|
||||
foreach(__cvlib ${OpenCV_LIB_COMPONENTS})
|
||||
# We only need the "core",... part here: "opencv_core" -> "core"
|
||||
string(REGEX REPLACE "opencv_(.*)" "\\1" __MODNAME ${__cvlib})
|
||||
include_directories("${OpenCV_SOURCE_PATH}/modules/${__MODNAME}/include")
|
||||
list(APPEND OpenCV_INCLUDE_DIRS "${OpenCV_SOURCE_PATH}/modules/${__MODNAME}/include")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ==============================================================
|
||||
# Android camera helper macro
|
||||
# ==============================================================
|
||||
|
@ -1,7 +1,7 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
# CMake file for java support
|
||||
# ----------------------------------------------------------------------------
|
||||
if(NOT BUILD_JAVA_SUPPORT OR NOT PYTHON_EXECUTABLE)
|
||||
if(NOT PYTHON_EXECUTABLE)
|
||||
ocv_module_disable(java)
|
||||
endif()
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
ocv_module_disable(python)
|
||||
endif()
|
||||
if(NOT PYTHONLIBS_FOUND OR NOT BUILD_NEW_PYTHON_SUPPORT OR NOT PYTHON_USE_NUMPY)
|
||||
if(ANDROID OR IOS OR NOT PYTHONLIBS_FOUND OR NOT PYTHON_USE_NUMPY)
|
||||
ocv_module_disable(python)
|
||||
endif()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user