From: Andrey Kamaev Date: Sat, 3 Mar 2012 15:49:23 +0000 (+0000) Subject: cmake scripts are updated to prefer includes from the OpenCV source tree X-Git-Tag: accepted/2.0/20130307.220821~1214 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=18dbe6b3e5ac146ec40e7e56aad29175e757946f;p=profile%2Fivi%2Fopencv.git cmake scripts are updated to prefer includes from the OpenCV source tree --- diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt deleted file mode 100644 index 1f0f886..0000000 --- a/3rdparty/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -if(WIN32) - add_subdirectory(ffmpeg) -endif() diff --git a/3rdparty/ffmpeg/CMakeLists.txt b/3rdparty/ffmpeg/CMakeLists.txt deleted file mode 100644 index 6708c85..0000000 --- a/3rdparty/ffmpeg/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -project(opencv_ffmpeg) - -if(MSVC64 OR MINGW64) - set(FFMPEG_SUFFIX _64) -endif() - -set(module_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll") -set(module_name "${CMAKE_CURRENT_SOURCE_DIR}/${module_bare_name}") - -message(STATUS "ffmpeg output dir: ${EXECUTABLE_OUTPUT_PATH}") - -if(CMAKE_VERSION VERSION_GREATER "2.8.2") - add_custom_target(opencv_ffmpeg ALL - COMMAND ${CMAKE_COMMAND} -E copy "${module_name}" "${EXECUTABLE_OUTPUT_PATH}/$/${module_bare_name}" - COMMENT "Copying ${module_name} to the output directory") -elseif(MSVC) - add_custom_target(opencv_ffmpeg ALL - COMMAND ${CMAKE_COMMAND} -E copy "${module_name}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${module_bare_name}" - COMMENT "Copying ${module_name} to the output directory") -else() - add_custom_target(opencv_ffmpeg ALL - COMMAND ${CMAKE_COMMAND} -E copy "${module_name}" "${EXECUTABLE_OUTPUT_PATH}/${module_bare_name}" - COMMENT "Copying ${module_name} to the output directory") -endif() - -install(FILES ${module_name} DESTINATION bin COMPONENT main) diff --git a/3rdparty/libjasper/CMakeLists.txt b/3rdparty/libjasper/CMakeLists.txt index ca0a6f9..9912e3b 100644 --- a/3rdparty/libjasper/CMakeLists.txt +++ b/3rdparty/libjasper/CMakeLists.txt @@ -8,7 +8,7 @@ project(${JASPER_LIBRARY}) add_definitions(-DEXCLUDE_MIF_SUPPORT -DEXCLUDE_PNM_SUPPORT -DEXCLUDE_BMP_SUPPORT -DEXCLUDE_RAS_SUPPORT -DEXCLUDE_JPG_SUPPORT -DEXCLUDE_PGX_SUPPORT) # List of C++ files: -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +ocv_include_directories(${CMAKE_CURRENT_SOURCE_DIR}) # The .cpp files: file(GLOB lib_srcs *.c) diff --git a/3rdparty/libjpeg/CMakeLists.txt b/3rdparty/libjpeg/CMakeLists.txt index a8d1cb3..a406d1c 100644 --- a/3rdparty/libjpeg/CMakeLists.txt +++ b/3rdparty/libjpeg/CMakeLists.txt @@ -6,7 +6,7 @@ project(${JPEG_LIBRARY}) # List of C++ files: -include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +ocv_include_directories(${CMAKE_CURRENT_SOURCE_DIR}) # The .cpp files: file(GLOB lib_srcs *.c) diff --git a/3rdparty/libpng/CMakeLists.txt b/3rdparty/libpng/CMakeLists.txt index e6592cf..cb76610 100644 --- a/3rdparty/libpng/CMakeLists.txt +++ b/3rdparty/libpng/CMakeLists.txt @@ -6,8 +6,7 @@ project(${PNG_LIBRARY}) # List of C++ files: -include_directories("${CMAKE_CURRENT_SOURCE_DIR}") -include_directories(${ZLIB_INCLUDE_DIR}) +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" ${ZLIB_INCLUDE_DIR}) file(GLOB lib_srcs *.c) file(GLOB lib_hdrs *.h) diff --git a/3rdparty/libtiff/CMakeLists.txt b/3rdparty/libtiff/CMakeLists.txt index e2a2ce8..e184815 100644 --- a/3rdparty/libtiff/CMakeLists.txt +++ b/3rdparty/libtiff/CMakeLists.txt @@ -24,7 +24,7 @@ endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/tif_config.h.cmakein" "${CMAKE_CURRENT_BINARY_DIR}/tif_config.h" @ONLY) -include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" ${ZLIB_INCLUDE_DIR}) # List of C++ files: set(lib_srcs @@ -101,8 +101,6 @@ if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") endif() -include_directories(${ZLIB_INCLUDE_DIR}) - add_library(${TIFF_LIBRARY} STATIC ${lib_srcs}) target_link_libraries(${TIFF_LIBRARY} ${ZLIB_LIBRARIES}) diff --git a/3rdparty/tbb/CMakeLists.txt b/3rdparty/tbb/CMakeLists.txt index adbee82..409211a 100644 --- a/3rdparty/tbb/CMakeLists.txt +++ b/3rdparty/tbb/CMakeLists.txt @@ -81,10 +81,10 @@ endif() set(TBB_INCLUDE_DIRS "${tbb_src_dir}/include" PARENT_SCOPE) -include_directories("${tbb_src_dir}/include" - "${tbb_src_dir}/src/" - "${tbb_src_dir}/src/rml/include" - "${CMAKE_CURRENT_SOURCE_DIR}") +ocv_include_directories("${tbb_src_dir}/include" + "${tbb_src_dir}/src/" + "${tbb_src_dir}/src/rml/include" + "${CMAKE_CURRENT_SOURCE_DIR}") file(GLOB lib_srcs "${tbb_src_dir}/src/tbb/*.cpp") file(GLOB lib_hdrs "${tbb_src_dir}/src/tbb/*.h") diff --git a/3rdparty/zlib/CMakeLists.txt b/3rdparty/zlib/CMakeLists.txt index 26903bd..6de6be1 100644 --- a/3rdparty/zlib/CMakeLists.txt +++ b/3rdparty/zlib/CMakeLists.txt @@ -38,7 +38,7 @@ endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein" "${CMAKE_CURRENT_BINARY_DIR}/zconf.h" @ONLY) -include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") set(ZLIB_PUBLIC_HDRS "${CMAKE_CURRENT_BINARY_DIR}/zconf.h" diff --git a/CMakeLists.txt b/CMakeLists.txt index b7a2cd8..96a48c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,7 +247,7 @@ endif() # ---------------------------------------------------------------------------- set(OPENCV_CONFIG_FILE_INCLUDE_DIR "${CMAKE_BINARY_DIR}/" CACHE PATH "Where to create the platform-dependant cvconfig.h") add_definitions(-DHAVE_CVCONFIG_H) -include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR}) +ocv_include_directories(${OPENCV_CONFIG_FILE_INCLUDE_DIR}) # ---------------------------------------------------------------------------- @@ -331,7 +331,7 @@ if(UNIX) if(OPENGL_FOUND) set(HAVE_OPENGL 1) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES}) - include_directories(${OPENGL_INCLUDE_DIR}) + ocv_include_directories(${OPENGL_INCLUDE_DIR}) endif() endif() endif() @@ -502,7 +502,7 @@ endif() if(IPP_FOUND) add_definitions(-DHAVE_IPP) - include_directories(${IPP_INCLUDE_DIRS}) + ocv_include_directories(${IPP_INCLUDE_DIRS}) link_directories(${IPP_LIBRARY_DIRS}) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${IPP_LIBRARIES}) endif() @@ -538,7 +538,7 @@ if(WITH_EIGEN) "/usr/local/include/eigen3" "/opt/include/eigen3" "/usr/include/eigen3" DOC "The path to Eigen2/Eigen3 headers") if(EIGEN_INCLUDE_PATH) - include_directories(${EIGEN_INCLUDE_PATH}) + ocv_include_directories(${EIGEN_INCLUDE_PATH}) set(HAVE_EIGEN 1) endif() endif() @@ -569,7 +569,7 @@ if(WIN32) if(OPENGL_FOUND) set(HAVE_OPENGL 1) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${OPENGL_LIBRARIES}) - include_directories(${OPENGL_INCLUDE_DIR}) + ocv_include_directories(${OPENGL_INCLUDE_DIR}) endif() endif() endif() @@ -603,9 +603,6 @@ add_subdirectory(doc) # various data that is used by cv libraries and/or demo applications. add_subdirectory(data) -# 3rdparty libraries on-board -add_subdirectory(3rdparty) - # extra applications add_subdirectory(apps) diff --git a/apps/haartraining/CMakeLists.txt b/apps/haartraining/CMakeLists.txt index 6cccd43..22349ed 100644 --- a/apps/haartraining/CMakeLists.txt +++ b/apps/haartraining/CMakeLists.txt @@ -11,7 +11,7 @@ endif() project(haartraining) -include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${OpenCV_SOURCE_DIR}/include/opencv") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${OpenCV_SOURCE_DIR}/include/opencv") ocv_include_modules(${OPENCV_HAARTRAINING_DEPS}) if(WIN32) diff --git a/apps/traincascade/CMakeLists.txt b/apps/traincascade/CMakeLists.txt index 526d362..182022b 100644 --- a/apps/traincascade/CMakeLists.txt +++ b/apps/traincascade/CMakeLists.txt @@ -11,7 +11,7 @@ endif() project(traincascade) -include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${OpenCV_SOURCE_DIR}/include/opencv") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}" "${OpenCV_SOURCE_DIR}/include/opencv") ocv_include_modules(${OPENCV_TRAINCASCADE_DEPS}) set(traincascade_files traincascade.cpp diff --git a/cmake/OpenCVDetectAndroidSDK.cmake b/cmake/OpenCVDetectAndroidSDK.cmake index 258692b..74db943 100644 --- a/cmake/OpenCVDetectAndroidSDK.cmake +++ b/cmake/OpenCVDetectAndroidSDK.cmake @@ -6,13 +6,14 @@ find_host_program(ANDROID_EXECUTABLE NAMES android.bat android PATHS "${ANDROID_SDK_ENV_PATH}/tools/" "${ProgramFiles_ENV_PATH}/Android/android-sdk/tools/" - "/opt/android-sdk/tools/" + "${ProgramFiles_ENV_PATH}/Android/android-sdk-windows/tools/" + "/opt/android-sdk-linux/tools/" "/opt/android-sdk-linux_x86/tools/" "/opt/android-sdk-linux_86/tools/" - "/opt/android-sdk-linux/tools/" + "/opt/android-sdk-mac/tools/" "/opt/android-sdk-mac_x86/tools/" "/opt/android-sdk-mac_86/tools/" - "/opt/android-sdk-mac/tools/" + "/opt/android-sdk/tools/" "$ENV{HOME}/NVPACK/android-sdk-linux_x86/tools/" "$ENV{HOME}/NVPACK/android-sdk-linux_86/tools/" "$ENV{HOME}/NVPACK/android-sdk-linux/tools/" diff --git a/cmake/OpenCVDetectPython.cmake b/cmake/OpenCVDetectPython.cmake index 310fdb4..82c0e58 100644 --- a/cmake/OpenCVDetectPython.cmake +++ b/cmake/OpenCVDetectPython.cmake @@ -28,10 +28,12 @@ if(PYTHON_EXECUTABLE) set(PYTHON_PACKAGES_PATH lib/python${PYTHON_VERSION_MAJOR_MINOR}/dist-packages CACHE PATH "Where to install the python packages.") endif() elseif(CMAKE_HOST_WIN32) - get_filename_component(PYTHON_PATH "${PYTHON_EXECUTABLE}" PATH CACHE) + get_filename_component(PYTHON_PATH "${PYTHON_EXECUTABLE}" PATH) + file(TO_CMAKE_PATH "${PYTHON_PATH}" PYTHON_PATH) if(NOT EXISTS "${PYTHON_PATH}/Lib/site-packages") unset(PYTHON_PATH) - get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE CACHE) + get_filename_component(PYTHON_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Python\\PythonCore\\${PYTHON_VERSION_MAJOR_MINOR}\\InstallPath]" ABSOLUTE) + file(TO_CMAKE_PATH "${PYTHON_PATH}" PYTHON_PATH) endif() set(PYTHON_PACKAGES_PATH "${PYTHON_PATH}/Lib/site-packages") endif() @@ -46,7 +48,8 @@ if(PYTHON_EXECUTABLE) if(PYTHON_NUMPY_PROCESS EQUAL 0) set(PYTHON_USE_NUMPY 1) add_definitions(-DPYTHON_USE_NUMPY=1) - include_directories(AFTER ${PYTHON_NUMPY_INCLUDE_DIRS}) + file(TO_CMAKE_PATH "${PYTHON_NUMPY_INCLUDE_DIRS}" PYTHON_NUMPY_INCLUDE_DIRS) + ocv_include_directories(${PYTHON_NUMPY_INCLUDE_DIRS}) message(STATUS " Use NumPy headers from: ${PYTHON_NUMPY_INCLUDE_DIRS}") endif() endif() diff --git a/cmake/OpenCVDetectTBB.cmake b/cmake/OpenCVDetectTBB.cmake index b651e37..a60d2c0 100644 --- a/cmake/OpenCVDetectTBB.cmake +++ b/cmake/OpenCVDetectTBB.cmake @@ -1,6 +1,6 @@ if(ANDROID) add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/tbb") - include_directories(${TBB_INCLUDE_DIRS}) + ocv_include_directories(${TBB_INCLUDE_DIRS}) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} tbb) add_definitions(-DTBB_USE_GCC_BUILTINS=1 -D__TBB_GCC_BUILTIN_ATOMICS_PRESENT=1 -D__TBB_USE_GENERIC_DWORD_LOAD_STORE=1) set(HAVE_TBB 1) @@ -10,7 +10,7 @@ elseif(UNIX AND NOT APPLE) if(TBB_FOUND) set(HAVE_TBB 1) if(NOT ${TBB_INCLUDE_DIRS} STREQUAL "") - include_directories(${TBB_INCLUDE_DIRS}) + ocv_include_directories(${TBB_INCLUDE_DIRS}) endif() link_directories(${TBB_LIBRARY_DIRS}) set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${TBB_LIBRARIES}) @@ -63,7 +63,7 @@ if(NOT HAVE_TBB) set(HAVE_TBB 1) if(NOT "${TBB_INCLUDE_DIR}" STREQUAL "") - include_directories("${TBB_INCLUDE_DIR}") + ocv_include_directories("${TBB_INCLUDE_DIR}") endif() endif(TBB_INCLUDE_DIR) endif(NOT HAVE_TBB) diff --git a/cmake/OpenCVExtraTargets.cmake b/cmake/OpenCVExtraTargets.cmake index 063a4d5..3799ad5 100644 --- a/cmake/OpenCVExtraTargets.cmake +++ b/cmake/OpenCVExtraTargets.cmake @@ -7,7 +7,10 @@ CONFIGURE_FILE( IMMEDIATE @ONLY) ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") - +if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(uninstall PROPERTIES FOLDER "CMakeTargets") +endif() + # ---------------------------------------------------------------------------- # Source package, for "make package_source" @@ -30,12 +33,15 @@ if(BUILD_PACKAGE) COMMAND zip -9 -r ${CMAKE_CURRENT_BINARY_DIR}/${TARBALL_NAME}.zip . -x '*/.svn/*' '*.vcproj' '*.pyc' WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) endif() + if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(package_source PROPERTIES FOLDER "extra") + endif() endif() -#----------------------------------- +# ---------------------------------------------------------------------------- # performance tests, for "make perf" -#----------------------------------- +# ---------------------------------------------------------------------------- if(BUILD_PERF_TESTS AND PYTHON_EXECUTABLE) if(CMAKE_VERSION VERSION_GREATER "2.8.2") add_custom_target(perf @@ -51,23 +57,32 @@ if(BUILD_PERF_TESTS AND PYTHON_EXECUTABLE) ) endif() if(ENABLE_SOLUTION_FOLDERS) - set_target_properties(perf PROPERTIES FOLDER "tests performance") + set_target_properties(perf PROPERTIES FOLDER "extra") endif() endif() -#----------------------------------- + +# ---------------------------------------------------------------------------- +# spefial targets to build all OpenCV modules +# ---------------------------------------------------------------------------- +add_custom_target(opencv_modules) +if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(opencv_modules PROPERTIES FOLDER "extra") +endif() + + +# ---------------------------------------------------------------------------- # spefial targets to build all tests -#----------------------------------- +# ---------------------------------------------------------------------------- if(BUILD_TESTS) add_custom_target(opencv_tests) if(ENABLE_SOLUTION_FOLDERS) - set_target_properties(opencv_tests PROPERTIES FOLDER "tests accuracy") + set_target_properties(opencv_tests PROPERTIES FOLDER "extra") endif() endif() if(BUILD_PERF_TESTS) add_custom_target(opencv_perf_tests) if(ENABLE_SOLUTION_FOLDERS) - set_target_properties(opencv_perf_tests PROPERTIES FOLDER "tests performance") + set_target_properties(opencv_perf_tests PROPERTIES FOLDER "extra") endif() endif() - diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake index d8f033f..f9ce195 100644 --- a/cmake/OpenCVModule.cmake +++ b/cmake/OpenCVModule.cmake @@ -311,10 +311,10 @@ macro(ocv_include_modules) foreach(d ${ARGN}) if(d MATCHES "^opencv_" AND HAVE_${d}) if (EXISTS "${OPENCV_MODULE_${d}_LOCATION}/include") - include_directories("${OPENCV_MODULE_${d}_LOCATION}/include") + ocv_include_directories("${OPENCV_MODULE_${d}_LOCATION}/include") endif() elseif(EXISTS "${d}") - include_directories("${d}") + ocv_include_directories("${d}") endif() endforeach() endmacro() @@ -322,10 +322,10 @@ endmacro() # setup include path for OpenCV headers for specified module # ocv_module_include_directories() macro(ocv_module_include_directories) - include_directories("${OPENCV_MODULE_${the_module}_LOCATION}/include" - "${OPENCV_MODULE_${the_module}_LOCATION}/src" - "${CMAKE_CURRENT_BINARY_DIR}"#for precompiled headers - ) + ocv_include_directories("${OPENCV_MODULE_${the_module}_LOCATION}/include" + "${OPENCV_MODULE_${the_module}_LOCATION}/src" + "${CMAKE_CURRENT_BINARY_DIR}"#for precompiled headers + ) ocv_include_modules(${OPENCV_MODULE_${the_module}_DEPS} ${ARGN}) endmacro() @@ -378,6 +378,7 @@ endmacro() macro(ocv_create_module) add_library(${the_module} ${OPENCV_MODULE_TYPE} ${OPENCV_MODULE_${the_module}_HEADERS} ${OPENCV_MODULE_${the_module}_SOURCES}) target_link_libraries(${the_module} ${OPENCV_MODULE_${the_module}_DEPS} ${OPENCV_MODULE_${the_module}_DEPS_EXT} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN}) + add_dependencies(opencv_modules ${the_module}) if(ENABLE_SOLUTION_FOLDERS) set_target_properties(${the_module} PROPERTIES FOLDER "modules") diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake index d6c3466..0e0be9a 100644 --- a/cmake/OpenCVUtils.cmake +++ b/cmake/OpenCVUtils.cmake @@ -11,6 +11,20 @@ if(NOT COMMAND find_host_program) endmacro() endif() +#added include directories in such way that directories from the OpenCV source tree go first +macro(ocv_include_directories) + set(__add_before "") + foreach(dir ${ARGN}) + get_filename_component(__abs_dir "${dir}" ABSOLUTE) + if("${__abs_dir}" MATCHES "^${OpenCV_SOURCE_DIR}" OR "${__abs_dir}" MATCHES "^${OpenCV_BINARY_DIR}") + list(APPEND __add_before "${dir}") + else() + include_directories(AFTER "${dir}") + endif() + endforeach() + include_directories(BEFORE ${__add_before}) +endmacro() + # Provides an option that the user can optionally select. # Can accept condition to control when option is available for user. diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 0eba875..4a7f008 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -2,6 +2,6 @@ file(GLOB HAAR_CASCADES haarcascades/*.xml) file(GLOB LBP_CASCADES lbpcascades/*.xml) if(NOT WIN32) -install(FILES ${HAAR_CASCADES} DESTINATION share/OpenCV/haarcascades COMPONENT main) -install(FILES ${LBP_CASCADES} DESTINATION share/OpenCV/lbpcascades COMPONENT main) + install(FILES ${HAAR_CASCADES} DESTINATION share/OpenCV/haarcascades COMPONENT main) + install(FILES ${LBP_CASCADES} DESTINATION share/OpenCV/lbpcascades COMPONENT main) endif() diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 4602135..4fad59d 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -9,85 +9,51 @@ file(GLOB FILES_TEX_PICS pics/*.png pics/*.jpg) if(BUILD_DOCS AND HAVE_SPHINX) -project(opencv_docs) - -file(GLOB_RECURSE OPENCV_FILES_REF ../modules/*.rst) -file(GLOB_RECURSE OPENCV_FILES_REF_PICT ../modules/*.png ../modules/*.jpg) -file(GLOB_RECURSE OPENCV_FILES_UG user_guide/*.rst) -file(GLOB_RECURSE OPENCV_FILES_TUT tutorials/*.rst) -file(GLOB_RECURSE OPENCV_FILES_TUT_PICT tutorials/*.png tutorials/*.jpg) - -set(OPENCV_DOC_DEPS conf.py ${OPENCV_FILES_REF} ${OPENCV_FILES_REF_PICT} - ${OPENCV_FILES_UG} ${OPENCV_FILES_TUT} ${OPENCV_FILES_TUT_PICT}) - -if (PDFLATEX_COMPILER) -add_custom_target(docs - ${SPHINX_BUILD} - -b latex -c ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/.. . - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/doc/opencv1/pics - COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR} - COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2refman.tex - COMMAND ${PDFLATEX_COMPILER} opencv2refman.tex - COMMAND ${PDFLATEX_COMPILER} opencv2refman.tex - COMMAND ${PDFLATEX_COMPILER} opencv_user.tex - COMMAND ${PDFLATEX_COMPILER} opencv_user.tex - COMMAND ${PDFLATEX_COMPILER} opencv_tutorials.tex - COMMAND ${PDFLATEX_COMPILER} opencv_tutorials.tex - DEPENDS ${OPENCV_DOC_DEPS} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating the PDF Manuals") - -endif() - -add_custom_target(html_docs - ${SPHINX_BUILD} - -b html -c ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/.. ./_html - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${OPENCV_DOC_DEPS} - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating Online Documentation") - + project(opencv_docs) + + file(GLOB_RECURSE OPENCV_FILES_REF ../modules/*.rst) + file(GLOB_RECURSE OPENCV_FILES_REF_PICT ../modules/*.png ../modules/*.jpg) + file(GLOB_RECURSE OPENCV_FILES_UG user_guide/*.rst) + file(GLOB_RECURSE OPENCV_FILES_TUT tutorials/*.rst) + file(GLOB_RECURSE OPENCV_FILES_TUT_PICT tutorials/*.png tutorials/*.jpg) + + set(OPENCV_DOC_DEPS conf.py ${OPENCV_FILES_REF} ${OPENCV_FILES_REF_PICT} + ${OPENCV_FILES_UG} ${OPENCV_FILES_TUT} ${OPENCV_FILES_TUT_PICT}) + + if(PDFLATEX_COMPILER) + add_custom_target(docs + COMMAND ${SPHINX_BUILD} -b latex -c ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/.. . + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/pics ${CMAKE_CURRENT_BINARY_DIR}/doc/opencv1/pics + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR} + COMMAND ${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/patch_refman_latex.py" opencv2refman.tex + COMMAND ${PDFLATEX_COMPILER} opencv2refman.tex + COMMAND ${PDFLATEX_COMPILER} opencv2refman.tex + COMMAND ${PDFLATEX_COMPILER} opencv_user.tex + COMMAND ${PDFLATEX_COMPILER} opencv_user.tex + COMMAND ${PDFLATEX_COMPILER} opencv_tutorials.tex + COMMAND ${PDFLATEX_COMPILER} opencv_tutorials.tex + DEPENDS ${OPENCV_DOC_DEPS} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating the PDF Manuals" + ) + + if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(docs PROPERTIES FOLDER "documentation") + endif() + endif() + + add_custom_target(html_docs + COMMAND ${SPHINX_BUILD} -b html -c ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/.. ./_html + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/mymath.sty ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${OPENCV_DOC_DEPS} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Generating Online Documentation" + ) + + if(ENABLE_SOLUTION_FOLDERS) + set_target_properties(html_docs PROPERTIES FOLDER "documentation") + endif() endif() install(FILES ${FILES_DOC} DESTINATION "${OPENCV_DOC_INSTALL_PATH}" COMPONENT main) install(FILES ${FILES_DOC_VS} DESTINATION "${OPENCV_DOC_INSTALL_PATH}/vidsurv" COMPONENT main) - -########################################### Doxygen Docs ######################################### - -if(0) -#if(BUILD_DOXYGEN_DOCS AND DOXYGEN_FOUND) - -set(DOXYGEN_LANGUAGE "English" CACHE STRING "Language used by doxygen") -mark_as_advanced(DOXYGEN_LANGUAGE) - -set(CMAKE_DOXYGEN_IMAGE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/pics") - -set(module_names core imgproc calib3d features2d objdetect video highgui ml legacy contrib) -set(DOXYGEN_SOURCE_DIR) -set(doxy_html_dep_list) - -foreach(m ${module_names}) - set(module_hdr_path "${OpenCV_SOURCE_DIR}/modules/${m}/include/opencv2/${m}") - set(DOXYGEN_SOURCE_DIR ${DOXYGEN_SOURCE_DIR} ${module_hdr_path}) - file(GLOB module_hdrs "${module_hdr_path}/*.h*") - set(doxy_html_dep_list ${doxy_html_dep_list} ${module_hdrs}) -endforeach() - -set(DOXYGEN_OUTPUT_DIR html) -string(REGEX REPLACE ";" " " CMAKE_DOXYGEN_INPUT_LIST "${DOXYGEN_SOURCE_DIR}") - -configure_file(Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile) -set(HTML_TARGET "DOXY_HTML" ) - -add_custom_target(${HTML_TARGET} ALL - ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile ${doxy_html_dep_list}) -exec_program(mkdir ARGS "-p \"${CMAKE_CURRENT_BINARY_DIR}/html/\"") -install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html" DESTINATION "${OPENCV_DOC_INSTALL_PATH}/html" COMPONENT main) - -endif() diff --git a/modules/androidcamera/CMakeLists.txt b/modules/androidcamera/CMakeLists.txt index 2ce9831..832ed55 100644 --- a/modules/androidcamera/CMakeLists.txt +++ b/modules/androidcamera/CMakeLists.txt @@ -6,7 +6,7 @@ set(the_description "Auxiliary module for Android native camera support") set(OPENCV_MODULE_TYPE STATIC) ocv_define_module(androidcamera INTERNAL log dl) -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper") +ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/camera_wrapper") # Android source tree for native camera SET (ANDROID_SOURCE_TREE "ANDROID_SOURCE_TREE-NOTFOUND" CACHE PATH diff --git a/modules/androidcamera/camera_wrapper/CMakeLists.txt b/modules/androidcamera/camera_wrapper/CMakeLists.txt index 9f912f0..058a2cb 100644 --- a/modules/androidcamera/camera_wrapper/CMakeLists.txt +++ b/modules/androidcamera/camera_wrapper/CMakeLists.txt @@ -4,7 +4,7 @@ project(${the_target}) link_directories("${ANDROID_SOURCE_TREE}/out/target/product/generic/system/lib") -INCLUDE_DIRECTORIES( +INCLUDE_DIRECTORIES(BEFORE ${ANDROID_SOURCE_TREE} ${ANDROID_SOURCE_TREE}/frameworks/base/include/ui ${ANDROID_SOURCE_TREE}/frameworks/base/include/surfaceflinger diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt index 88a05f3..87d2044 100644 --- a/modules/core/CMakeLists.txt +++ b/modules/core/CMakeLists.txt @@ -6,7 +6,7 @@ if(HAVE_CUDA) file(GLOB lib_cuda "src/cuda/*.cu") source_group("Cuda" FILES "${lib_cuda}") - include_directories(${CUDA_INCLUDE_DIRS} "${OpenCV_SOURCE_DIR}/modules/gpu/src" "${OpenCV_SOURCE_DIR}/modules/gpu/src/cuda") + ocv_include_directories(${CUDA_INCLUDE_DIRS} "${OpenCV_SOURCE_DIR}/modules/gpu/src" "${OpenCV_SOURCE_DIR}/modules/gpu/src/cuda") OCV_CUDA_COMPILE(cuda_objs ${lib_cuda}) set(cuda_link_libs ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY}) diff --git a/modules/gpu/CMakeLists.txt b/modules/gpu/CMakeLists.txt index 11ae79d..199b520 100644 --- a/modules/gpu/CMakeLists.txt +++ b/modules/gpu/CMakeLists.txt @@ -28,7 +28,7 @@ if (HAVE_CUDA) set(ncv_files ${ncv_srcs} ${ncv_hdrs} ${ncv_cuda}) source_group("Src\\NVidia" FILES ${ncv_files}) - include_directories("src/nvidia" "src/nvidia/core" "src/nvidia/NPP_staging" ${CUDA_INCLUDE_DIRS}) + ocv_include_directories("src/nvidia" "src/nvidia/core" "src/nvidia/NPP_staging" ${CUDA_INCLUDE_DIRS}) #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-keep") #set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} "-Xcompiler;/EHsc-;") diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt index 1d7dc50..59505a2 100644 --- a/modules/highgui/CMakeLists.txt +++ b/modules/highgui/CMakeLists.txt @@ -10,38 +10,38 @@ ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_androidcamera) set(GRFMT_LIBS "") if(WITH_PNG OR WITH_TIFF OR WITH_OPENEXR) - include_directories(${ZLIB_INCLUDE_DIR}) + ocv_include_directories(${ZLIB_INCLUDE_DIR}) set(GRFMT_LIBS ${GRFMT_LIBS} ${ZLIB_LIBRARIES}) endif() if(WITH_JPEG) add_definitions(-DHAVE_JPEG) - include_directories(${JPEG_INCLUDE_DIR}) + ocv_include_directories(${JPEG_INCLUDE_DIR}) set(GRFMT_LIBS ${GRFMT_LIBS} ${JPEG_LIBRARIES}) endif() if(WITH_PNG) add_definitions(-DHAVE_PNG) add_definitions(${PNG_DEFINITIONS}) - include_directories(${PNG_INCLUDE_DIR}) + ocv_include_directories(${PNG_INCLUDE_DIR}) set(GRFMT_LIBS ${GRFMT_LIBS} ${PNG_LIBRARIES}) endif() if(WITH_TIFF) add_definitions(-DHAVE_TIFF) - include_directories(${TIFF_INCLUDE_DIR}) + ocv_include_directories(${TIFF_INCLUDE_DIR}) set(GRFMT_LIBS ${GRFMT_LIBS} ${TIFF_LIBRARIES}) endif() if(WITH_JASPER) add_definitions(-DHAVE_JASPER) - include_directories(${JASPER_INCLUDE_DIR}) + ocv_include_directories(${JASPER_INCLUDE_DIR}) set(GRFMT_LIBS ${GRFMT_LIBS} ${JASPER_LIBRARIES}) endif() if(WITH_OPENEXR AND OPENEXR_FOUND) add_definitions(-DHAVE_OPENEXR) - include_directories(${OPENEXR_INCLUDE_PATHS}) + ocv_include_directories(${OPENEXR_INCLUDE_PATHS}) set(GRFMT_LIBS ${GRFMT_LIBS} ${OPENEXR_LIBRARIES}) endif() @@ -139,7 +139,7 @@ if(UNIX) endif() foreach(P ${HIGHGUI_INCLUDE_DIRS}) - include_directories(${P}) + ocv_include_directories(${P}) endforeach() foreach(P ${HIGHGUI_LIBRARY_DIRS}) @@ -150,7 +150,7 @@ endif() #OpenNI if(WITH_OPENNI AND HAVE_OPENNI) set(highgui_srcs ${highgui_srcs} src/cap_openni.cpp) - include_directories(${OPENNI_INCLUDE_DIR}) + ocv_include_directories(${OPENNI_INCLUDE_DIR}) endif() #YV @@ -192,7 +192,7 @@ endif() if(HAVE_XIMEA AND XIMEA_FOUND) set(highgui_srcs ${highgui_srcs} src/cap_ximea.cpp) - include_directories(${XIMEA_PATH}) + ocv_include_directories(${XIMEA_PATH}) link_directories(${XIMEA_LIBRARY_DIR}) set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} m3api) set(highgui_srcs ${highgui_srcs} src/cap_ximea.cpp) @@ -221,7 +221,7 @@ endif() if(WIN32) link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/lib") - include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include")#for directshow + include_directories(AFTER "${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include") #for directshow endif() source_group("Src" FILES ${highgui_srcs} ${highgui_hdrs}) @@ -245,5 +245,36 @@ set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "") ocv_add_precompiled_headers(${the_module}) +if(WIN32) + #copy ffmpeg dll to the output folder + if(MSVC64 OR MINGW64) + set(FFMPEG_SUFFIX _64) + endif() + + set(ffmpeg_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll") + set(ffmpeg_path "${OpenCV_SOURCE_DIR}/3rdparty/ffmpeg/${ffmpeg_bare_name}") + + if(CMAKE_VERSION VERSION_GREATER "2.8.2") + add_custom_command(TARGET ${the_module} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/$/${ffmpeg_bare_name}" + COMMENT "Copying ${ffmpeg_path} to the output directory") + elseif(MSVC_IDE) + add_custom_command(TARGET ${the_module} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Release/${ffmpeg_bare_name}" + COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/Debug/${ffmpeg_bare_name}" + COMMENT "Copying ${ffmpeg_path} to the output directory") + elseif(MSVC) + add_custom_command(TARGET ${the_module} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/${ffmpeg_bare_name}" + COMMENT "Copying ${ffmpeg_path} to the output directory") + else() + add_custom_command(TARGET ${the_module} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy "${ffmpeg_path}" "${EXECUTABLE_OUTPUT_PATH}/${ffmpeg_bare_name}" + COMMENT "Copying ${ffmpeg_path} to the output directory") + endif() + + install(FILES "${ffmpeg_path}" DESTINATION bin COMPONENT main) +endif() + ocv_add_accuracy_tests() ocv_add_perf_tests() diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt index 0c46c36..f8c85c0 100644 --- a/modules/java/CMakeLists.txt +++ b/modules/java/CMakeLists.txt @@ -19,7 +19,7 @@ foreach(module ${OPENCV_JAVA_MODULES}) endforeach() set(target ${the_module}) -include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp") +ocv_include_directories("${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp") set(GEN_JAVA "${CMAKE_CURRENT_SOURCE_DIR}/gen_java.py") set(HDR_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/../python/src2/hdr_parser.py") @@ -105,7 +105,7 @@ endforeach() # all needed includes foreach(module ${OPENCV_MODULE_${the_module}_DEPS}) string(REPLACE "opencv_" "" module "${module}") - include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../${module}/include") + ocv_include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../${module}/include") endforeach() # created list of documented files targets diff --git a/modules/python/CMakeLists.txt b/modules/python/CMakeLists.txt index bfe1b5a..aa02db0 100644 --- a/modules/python/CMakeLists.txt +++ b/modules/python/CMakeLists.txt @@ -12,8 +12,8 @@ endif() set(the_description "The python bindings") ocv_add_module(python BINDINGS opencv_core opencv_flann opencv_imgproc opencv_video opencv_ml opencv_features2d opencv_highgui opencv_calib3d opencv_objdetect opencv_legacy opencv_contrib) -include_directories(${PYTHON_INCLUDE_PATH}) -include_directories( +ocv_include_directories(${PYTHON_INCLUDE_PATH}) +ocv_include_directories( "${CMAKE_CURRENT_SOURCE_DIR}/src2" "${OpenCV_SOURCE_DIR}/modules/core/include" "${OpenCV_SOURCE_DIR}/modules/flann/include" diff --git a/samples/android/CMakeLists.txt b/samples/android/CMakeLists.txt index 48d653c..dad7529 100644 --- a/samples/android/CMakeLists.txt +++ b/samples/android/CMakeLists.txt @@ -9,11 +9,8 @@ ocv_check_dependencies(${OPENCV_ANDROID_SAMPLES_REQUIRED_DEPS} opencv_java) if(BUILD_ANDROID_EXAMPLES AND OCV_DEPENDENCIES_FOUND) project(android_samples) - foreach(m ${OPENCV_ANDROID_SAMPLES_REQUIRED_DEPS}) - string(REPLACE "opencv_" "" m "${m}") - include_directories("${OpenCV_SOURCE_DIR}/modules/${m}/include") - endforeach() - + ocv_include_modules(${OPENCV_ANDROID_SAMPLES_REQUIRED_DEPS}) + file(GLOB android_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *) list(REMOVE_ITEM android_samples hello-android) list(SORT android_samples) diff --git a/samples/cpp/CMakeLists.txt b/samples/cpp/CMakeLists.txt index 95de6f2..5e85871 100644 --- a/samples/cpp/CMakeLists.txt +++ b/samples/cpp/CMakeLists.txt @@ -12,11 +12,11 @@ ocv_check_dependencies(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) project(cpp_samples) - include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp + ocv_include_directories("${OpenCV_SOURCE_DIR}/include")#for opencv.hpp ocv_include_modules(${OPENCV_CPP_SAMPLES_REQUIRED_DEPS}) if (HAVE_opencv_gpu) - include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include") + ocv_include_directories("${OpenCV_SOURCE_DIR}/modules/gpu/include") endif() if(CMAKE_COMPILER_IS_GNUCXX) diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt index 584fe2a..51b95f4 100644 --- a/samples/gpu/CMakeLists.txt +++ b/samples/gpu/CMakeLists.txt @@ -11,13 +11,13 @@ if(BUILD_EXAMPLES AND OCV_DEPENDENCIES_FOUND) project("${project}_samples") ocv_include_modules(${OPENCV_GPU_SAMPLES_REQUIRED_DEPS}) - include_directories( + ocv_include_directories( "${OpenCV_SOURCE_DIR}/modules/gpu/src/nvidia" "${OpenCV_SOURCE_DIR}/modules/gpu/src/nvidia/core" ) if(HAVE_CUDA) - include_directories(${CUDA_INCLUDE_DIRS}) + ocv_include_directories(${CUDA_INCLUDE_DIRS}) endif() if(CMAKE_COMPILER_IS_GNUCXX)