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)
|
if(MSVC)
|
||||||
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
set(CMAKE_USE_RELATIVE_PATHS ON CACHE INTERNAL "" FORCE)
|
||||||
endif()
|
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)
|
endif(NOT CMAKE_TOOLCHAIN_FILE)
|
||||||
|
|
||||||
# --------------------------------------------------------------
|
# --------------------------------------------------------------
|
||||||
@ -89,7 +92,6 @@ include(cmake/OpenCVDetectCXXCompiler.cmake REQUIRED)
|
|||||||
# Optional 3rd party components
|
# Optional 3rd party components
|
||||||
# ===================================================
|
# ===================================================
|
||||||
OCV_OPTION(WITH_1394 "Include IEEE1394 support" ON IF (UNIX AND NOT ANDROID AND NOT IOS) )
|
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_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_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) )
|
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()
|
endif()
|
||||||
OCV_OPTION(BUILD_ANDROID_EXAMPLES "Build examples for Android platform" ON IF ANDROID )
|
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_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_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_PACKAGE "Enables 'make package_source' command" ON )
|
||||||
OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) )
|
OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" ON IF (NOT IOS) )
|
||||||
OCV_OPTION(BUILD_TESTS "Build accuracy & regression 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(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 )
|
OCV_OPTION(OPENCV_WARNINGS_ARE_ERRORS "Treat warnings as errors" OFF )
|
||||||
|
|
||||||
|
include(cmake/OpenCVLegacyOptions.cmake OPTIONAL)
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Get actual OpenCV version number from sources
|
# Get actual OpenCV version number from sources
|
||||||
@ -444,7 +445,7 @@ include(cmake/OpenCVDetectPython.cmake REQUIRED)
|
|||||||
|
|
||||||
########################### Java Support ##########################
|
########################### Java Support ##########################
|
||||||
# current implementation of Java wrappers generator requires python at build time
|
# 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)
|
if(ANDROID)
|
||||||
include(cmake/OpenCVDetectAndroidSDK.cmake REQUIRED)
|
include(cmake/OpenCVDetectAndroidSDK.cmake REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
@ -458,7 +459,8 @@ if(BUILD_JAVA_SUPPORT AND PYTHON_EXECUTABLE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT CAN_BUILD_ANDROID_PROJECTS)
|
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()
|
endif()
|
||||||
|
|
||||||
############################### QT ################################
|
############################### QT ################################
|
||||||
@ -778,10 +780,10 @@ status(" Python interpreter:" PYTHON_EXECUTABLE THEN "${PYTHON_EXECUTAB
|
|||||||
# interfaces to other languages
|
# interfaces to other languages
|
||||||
status("")
|
status("")
|
||||||
status(" Interfaces:")
|
status(" Interfaces:")
|
||||||
status(" Python:" BUILD_NEW_PYTHON_SUPPORT AND PYTHON_EXECUTABLE THEN YES ELSE NO)
|
status(" Python:" HAVE_opencv_python 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 numpy:" PYTHON_USE_NUMPY THEN YES ELSE "NO (Python wrappers will not be generated)")
|
||||||
if(ANDROID)
|
if(ANDROID)
|
||||||
status(" Java:" BUILD_JAVA_SUPPORT AND PYTHON_EXECUTABLE THEN YES ELSE NO)
|
status(" Java:" HAVE_opencv_java THEN YES ELSE NO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# documentation
|
# 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
|
:: build environment
|
||||||
SET SOURCE_DIR=%cd%
|
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)
|
IF EXIST .\jni\nul (SET BUILD_JAVA_PART=1) ELSE (SET BUILD_JAVA_PART=0)
|
||||||
|
|
||||||
:: load configuration
|
:: load configuration
|
||||||
@ -53,7 +53,7 @@ ECHO ANDROID_ABI=%ANDROID_ABI%
|
|||||||
ECHO.
|
ECHO.
|
||||||
IF NOT %BUILD_OPENCV%==1 GOTO other-cmake
|
IF NOT %BUILD_OPENCV%==1 GOTO other-cmake
|
||||||
:opencv-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
|
ECHO. & ECHO cmake failed & GOTO end
|
||||||
:other-cmake
|
: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
|
("%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
|
mkdir -p build
|
||||||
cd 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
|
mkdir -p build_armeabi
|
||||||
cd 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
|
mkdir -p build_neon
|
||||||
cd 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
|
#mkdir build-neon
|
||||||
#cd 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
|
#make -j8 install/strip || exit 1
|
||||||
|
|
||||||
#cd "$PRG_DIR/opencv"
|
#cd "$PRG_DIR/opencv"
|
||||||
@ -29,7 +29,7 @@ cd "$PRG_DIR"
|
|||||||
mkdir build
|
mkdir build
|
||||||
cd 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
|
make -j8 install/strip || exit 1
|
||||||
|
|
||||||
cd "$PRG_DIR/opencv"
|
cd "$PRG_DIR/opencv"
|
||||||
@ -40,7 +40,7 @@ rm -rf doc include src .classpath .project AndroidManifest.xml default.propertie
|
|||||||
cd "$PRG_DIR/build"
|
cd "$PRG_DIR/build"
|
||||||
rm -rf CMakeCache.txt
|
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
|
make -j8 install/strip docs || exit 1
|
||||||
|
|
||||||
find doc -name "*.pdf" -exec cp {} $PRG_DIR/opencv/doc \;
|
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})
|
list(REMOVE_ITEM OPENCV_MODULES_CONFIGMAKE ${OpenCV_LIB_COMPONENTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
macro(ocv_generate_dependencies_map_configmake suffix)
|
macro(ocv_generate_dependencies_map_configmake suffix configuration)
|
||||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "")
|
set(OPENCV_DEPENDENCIES_MAP_${suffix} "")
|
||||||
set(OPENCV_PROCESSED_LIBS "")
|
set(OPENCV_PROCESSED_LIBS "")
|
||||||
set(OPENCV_LIBS_TO_PROCESS ${OPENCV_MODULES_CONFIGMAKE})
|
set(OPENCV_LIBS_TO_PROCESS ${OPENCV_MODULES_CONFIGMAKE})
|
||||||
while(OPENCV_LIBS_TO_PROCESS)
|
while(OPENCV_LIBS_TO_PROCESS)
|
||||||
list(GET OPENCV_LIBS_TO_PROCESS 0 __ocv_lib)
|
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}_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")
|
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_PROCESSED_LIBS)
|
||||||
unset(OPENCV_LIBS_TO_PROCESS)
|
unset(OPENCV_LIBS_TO_PROCESS)
|
||||||
unset(__ocv_lib)
|
unset(__ocv_lib)
|
||||||
|
unset(__libname)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
ocv_generate_dependencies_map_configmake(OPT)
|
ocv_generate_dependencies_map_configmake(OPT Release)
|
||||||
ocv_generate_dependencies_map_configmake(DBG)
|
ocv_generate_dependencies_map_configmake(DBG Debug)
|
||||||
|
|
||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
# Part 1/3: ${BIN_DIR}/OpenCVConfig.cmake -> For use *without* "make install"
|
# 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_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_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)
|
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.
|
#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_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)
|
if(ANDROID)
|
||||||
set(CMAKE_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/libs/\${ANDROID_NDK_ABI_NAME}\"")
|
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}\"")
|
set(CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE "\"\${OpenCV_INSTALL_PATH}/share/OpenCV/3rdparty/libs/\${ANDROID_NDK_ABI_NAME}\"")
|
||||||
@ -117,7 +128,7 @@ endif()
|
|||||||
# -------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(CMAKE_INCLUDE_DIRS_CONFIGCMAKE "\"\${OpenCV_CONFIG_PATH}/include\" \"\${OpenCV_CONFIG_PATH}/include/opencv\"")
|
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_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}\"")
|
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
|
# Provide the libs directories to the caller
|
||||||
SET(OpenCV_LIB_DIR @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
set(OpenCV_LIB_DIR_OPT @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
||||||
link_directories(${OpenCV_LIB_DIR})
|
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:
|
# Version variables:
|
||||||
@ -94,6 +96,21 @@ SET(OpenCV_LIB_COMPONENTS @OPENCV_MODULES_CONFIGMAKE@)
|
|||||||
|
|
||||||
@OPENCV_DEPENDENCIES_MAP_DBG@
|
@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
|
# Check OpenCV availability
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
@ -114,10 +131,10 @@ endif()
|
|||||||
# Form list of modules (components) to find
|
# Form list of modules (components) to find
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
if(NOT OpenCV_FIND_COMPONENTS)
|
if(NOT OpenCV_FIND_COMPONENTS)
|
||||||
set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
|
set(OpenCV_FIND_COMPONENTS ${OpenCV_LIB_COMPONENTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#expand short module names
|
# expand short module names and see if requested components exist
|
||||||
set(OpenCV_FIND_COMPONENTS_ "")
|
set(OpenCV_FIND_COMPONENTS_ "")
|
||||||
foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
||||||
if(NOT __cvcomponent MATCHES "^opencv_")
|
if(NOT __cvcomponent MATCHES "^opencv_")
|
||||||
@ -125,15 +142,20 @@ foreach(__cvcomponent ${OpenCV_FIND_COMPONENTS})
|
|||||||
endif()
|
endif()
|
||||||
list(FIND OpenCV_LIB_COMPONENTS ${__cvcomponent} __cvcomponentIdx)
|
list(FIND OpenCV_LIB_COMPONENTS ${__cvcomponent} __cvcomponentIdx)
|
||||||
if(__cvcomponentIdx LESS 0)
|
if(__cvcomponentIdx LESS 0)
|
||||||
|
#requested component is not found...
|
||||||
if(OpenCV_FIND_REQUIRED)
|
if(OpenCV_FIND_REQUIRED)
|
||||||
message(FATAL_ERROR "${__cvcomponent} is required but was not found")
|
message(FATAL_ERROR "${__cvcomponent} is required but was not found")
|
||||||
elseif(NOT OpenCV_FIND_QUIETLY)
|
elseif(NOT OpenCV_FIND_QUIETLY)
|
||||||
message(WARNING "${__cvcomponent} is required but was not found")
|
message(WARNING "${__cvcomponent} is required but was not found")
|
||||||
endif()
|
endif()
|
||||||
|
#indicate that module is NOT found
|
||||||
string(TOUPPER "${__cvcomponent}" __cvcomponent)
|
string(TOUPPER "${__cvcomponent}" __cvcomponent)
|
||||||
set(${__cvcomponent}_FOUND "${__cvcomponent}_FOUND-NOTFOUND")
|
set(${__cvcomponent}_FOUND "${__cvcomponent}_FOUND-NOTFOUND")
|
||||||
else()
|
else()
|
||||||
list(APPEND OpenCV_FIND_COMPONENTS_ ${__cvcomponent})
|
list(APPEND OpenCV_FIND_COMPONENTS_ ${__cvcomponent})
|
||||||
|
#indicate that module is found
|
||||||
|
string(TOUPPER "${__cvcomponent}" __cvcomponent)
|
||||||
|
set(${__cvcomponent}_FOUND 1)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
|
set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
|
||||||
@ -142,39 +164,27 @@ set(OpenCV_FIND_COMPONENTS ${OpenCV_FIND_COMPONENTS_})
|
|||||||
# Resolve dependencies
|
# Resolve dependencies
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
if(OpenCV_USE_MANGLED_PATHS)
|
if(OpenCV_USE_MANGLED_PATHS)
|
||||||
set(OpenCV_LIB_SUFFIX_DBG ".so.${OpenCV_VERSION}")
|
set(OpenCV_LIB_SUFFIX ".${OpenCV_VERSION}")
|
||||||
set(OpenCV_LIB_SUFFIX_OPT ".so.${OpenCV_VERSION}")
|
|
||||||
else()
|
else()
|
||||||
set(OpenCV_LIB_SUFFIX_DBG "@OPENCV_DLLVERSION@@OPENCV_DEBUG_POSTFIX@")
|
set(OpenCV_LIB_SUFFIX "")
|
||||||
set(OpenCV_LIB_SUFFIX_OPT "@OPENCV_DLLVERSION@")
|
|
||||||
endif()
|
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)
|
foreach(__opttype OPT DBG)
|
||||||
SET(OpenCV_LIBS_${__opttype} "")
|
SET(OpenCV_LIBS_${__opttype} "")
|
||||||
SET(OpenCV_EXTRA_LIBS_${__opttype} "")
|
SET(OpenCV_EXTRA_LIBS_${__opttype} "")
|
||||||
foreach(__cvlib ${OpenCV_FIND_COMPONENTS})
|
foreach(__cvlib ${OpenCV_FIND_COMPONENTS})
|
||||||
foreach(__cvdep ${OpenCV_${__cvlib}_DEPS_${__opttype}})
|
foreach(__cvdep ${OpenCV_${__cvlib}_DEPS_${__opttype}})
|
||||||
if(__cvdep MATCHES "^opencv_")
|
if(__cvdep MATCHES "^opencv_")
|
||||||
list(APPEND OpenCV_LIBS_${__opttype} ${__cvdep}${OpenCV_LIB_SUFFIX_${__opttype}})
|
list(APPEND OpenCV_LIBS_${__opttype} "${OpenCV_LIB_DIR_${__opttype}}/${OpenCV_${__cvdep}_LIBNAME_${__opttype}}${OpenCV_LIB_SUFFIX}")
|
||||||
list(APPEND OpenCV_REQUIRED_MODULES ${__cvdep})
|
|
||||||
#indicate that this module is also found
|
#indicate that this module is also found
|
||||||
string(TOUPPER "${__cvdep}" __cvdep)
|
string(TOUPPER "${__cvdep}" __cvdep)
|
||||||
set(${__cvdep}_FOUND 1)
|
set(${__cvdep}_FOUND 1)
|
||||||
else()
|
else()
|
||||||
list(APPEND OpenCV_LIBS_${__opttype} ${__cvdep}${OpenCV_3RDPARTY_LIB_SUFFIX_${__opttype}})
|
list(APPEND OpenCV_LIBS_${__opttype} "${OpenCV_3RDPARTY_LIB_DIR_${__opttype}}/${OpenCV_${__cvdep}_LIBNAME_${__opttype}}")
|
||||||
set(OpenCV_NEED_3RDPARTY_LINK_DEPS TRUE)
|
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
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}})
|
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()
|
endforeach()
|
||||||
|
|
||||||
if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
|
if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
|
||||||
@ -184,19 +194,11 @@ foreach(__opttype OPT DBG)
|
|||||||
if(OpenCV_EXTRA_LIBS_${__opttype})
|
if(OpenCV_EXTRA_LIBS_${__opttype})
|
||||||
list(REMOVE_DUPLICATES OpenCV_EXTRA_LIBS_${__opttype})
|
list(REMOVE_DUPLICATES OpenCV_EXTRA_LIBS_${__opttype})
|
||||||
endif()
|
endif()
|
||||||
if(OpenCV_REQUIRED_MODULES)
|
|
||||||
list(REMOVE_DUPLICATES OpenCV_REQUIRED_MODULES)
|
|
||||||
endif()
|
|
||||||
else()
|
else()
|
||||||
#TODO: duplicates are annoying but they should not be the problem
|
#TODO: duplicates are annoying but they should not be the problem
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
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)
|
if(OpenCV_LIBS_DBG)
|
||||||
list(REVERSE OpenCV_LIBS_DBG)
|
list(REVERSE OpenCV_LIBS_DBG)
|
||||||
endif()
|
endif()
|
||||||
@ -224,19 +226,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
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
|
# Android camera helper macro
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# CMake file for java support
|
# CMake file for java support
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
if(NOT BUILD_JAVA_SUPPORT OR NOT PYTHON_EXECUTABLE)
|
if(NOT PYTHON_EXECUTABLE)
|
||||||
ocv_module_disable(java)
|
ocv_module_disable(java)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
if(WIN32 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
ocv_module_disable(python)
|
ocv_module_disable(python)
|
||||||
endif()
|
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)
|
ocv_module_disable(python)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user