Skip to content

Commit

Permalink
[cmake] OpenCV managed directly in root CMakeLists
Browse files Browse the repository at this point in the history
instead of each target needs to find opencv etc...
  • Loading branch information
simogasp committed Oct 2, 2015
1 parent 269ec3e commit 1075746
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 45 deletions.
43 changes: 30 additions & 13 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,18 @@ OPTION(OpenMVG_BUILD_EXAMPLES "Build OpenMVG samples applications." ON)
OPTION(OpenMVG_BUILD_OPENGL_EXAMPLES "Build OpenMVG openGL examples" OFF)
OPTION(OpenMVG_BUILD_COVERAGE "Enable code coverage generation (gcc only)" OFF)
OPTION(OpenMVG_USE_OPENMP "Enable OpenMP parallelization" ON)
# ==============================================================================
# Opencv is not used by openMVG but some samples show how to use openCV
# and openMVG simultaneously
# ==============================================================================
OPTION(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)

# ==============================================================================
# Since OpenCV 3, SIFT is no longer in the default modules. See
# https://github.com/itseez/opencv_contrib for more informations.
# Enable this to be able to use OpenCV SIFT in main_ComputeFeatures_OpenCV.
# ==============================================================================
OPTION(OpenMVG_USE_OCVSIFT "Add or not OpenCV SIFT in available features" OFF)

SET(OPENMVG_VERSION_MAJOR 0)
SET(OPENMVG_VERSION_MINOR 8)
Expand Down Expand Up @@ -187,19 +199,6 @@ INSTALL(
# --END-- SUBMODULE CONFIGURATION
# ==============================================================================

# ==============================================================================
# Opencv is not used by openMVG but some samples show how to use openCV
# and openMVG simultaneously
# ==============================================================================
OPTION(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)

# ==============================================================================
# Since OpenCV 3, SIFT is no longer in the default modules. See
# https://github.com/itseez/opencv_contrib for more informations.
# Enable this to be able to use OpenCV SIFT in main_ComputeFeatures_OpenCV.
# ==============================================================================
OPTION(OpenMVG_USE_OCVSIFT "Add or not OpenCV SIFT in available features" OFF)

# ==============================================================================
# Enable cmake UNIT TEST framework
# ==============================================================================
Expand Down Expand Up @@ -351,6 +350,24 @@ IF(NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON)
SET(LEMON_LIBRARY lemon)
ENDIF()

# ==============================================================================
# OpenCV
# ==============================================================================
# - only external and enabled only if OpenMVG_USE_OPENCV is set to ON
# ==============================================================================
IF(OpenMVG_USE_OPENCV)
FIND_PACKAGE( OpenCV )
IF(NOT OpenCV_FOUND)
MESSAGE(STATUS "OpenCV was not found. Disabling OpenCV support.")
UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENCV OFF)
UPDATE_CACHE_VARIABLE(OpenMVG_USE_OCVSIFT OFF)
ELSE(NOT OpenCV_FOUND)
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
IF(OpenMVG_USE_OCVSIFT)
ADD_DEFINITIONS(-DUSE_OCVSIFT)
ENDIF(OpenMVG_USE_OCVSIFT)
ENDIF(NOT OpenCV_FOUND)
ENDIF(OpenMVG_USE_OPENCV)


# ==============================================================================
Expand Down
23 changes: 5 additions & 18 deletions src/software/SfM/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -281,20 +281,9 @@ INSTALL(TARGETS openMVG_main_ExportCameraFrustums DESTINATION bin/)
# Use openCV Feature detector to describe the images
# -
IF(OpenMVG_USE_OPENCV)
FIND_PACKAGE( OpenCV )
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
IF(NOT OpenCV_FOUND)
MESSAGE(STATUS "WARNING: OpenCV was not found. ")
ELSE(NOT OpenCV_FOUND)

ADD_EXECUTABLE(openMVG_main_ComputeFeatures_OpenCV
ADD_EXECUTABLE(openMVG_main_ComputeFeatures_OpenCV
main_ComputeFeatures_OpenCV.cpp)
IF(OpenMVG_USE_OCVSIFT)
TARGET_COMPILE_DEFINITIONS(openMVG_main_ComputeFeatures_OpenCV
PUBLIC
-DUSE_OCVSIFT)
ENDIF(OpenMVG_USE_OCVSIFT)
TARGET_LINK_LIBRARIES(openMVG_main_ComputeFeatures_OpenCV
TARGET_LINK_LIBRARIES(openMVG_main_ComputeFeatures_OpenCV
openMVG_system
openMVG_image
openMVG_features
Expand All @@ -304,11 +293,9 @@ IF(OpenMVG_USE_OPENCV)
vlsift
${OpenCV_LIBS})

SET_PROPERTY(TARGET openMVG_main_ComputeFeatures_OpenCV PROPERTY FOLDER OpenMVG/software)
SET_PROPERTY(TARGET openMVG_main_ComputeFeatures_OpenCV PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
INSTALL(TARGETS openMVG_main_ComputeFeatures_OpenCV DESTINATION bin/)

ENDIF(NOT OpenCV_FOUND)
SET_PROPERTY(TARGET openMVG_main_ComputeFeatures_OpenCV PROPERTY FOLDER OpenMVG/software)
SET_PROPERTY(TARGET openMVG_main_ComputeFeatures_OpenCV PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
INSTALL(TARGETS openMVG_main_ComputeFeatures_OpenCV DESTINATION bin/)
ENDIF(OpenMVG_USE_OPENCV)


Expand Down
20 changes: 6 additions & 14 deletions src/software/opencv/accv12_demo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
if(OpenMVG_USE_OPENCV)
add_definitions(-DTHIS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
add_executable( opencv_fitting main.cpp )
target_link_libraries( opencv_fitting ${OpenCV_LIBS} openMVG_multiview)
install(TARGETS opencv_fitting DESTINATION bin/)
endif(OpenMVG_USE_OPENCV)

ADD_DEFINITIONS(-DTHIS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")

find_package( OpenCV )

if(NOT OpenCV_FOUND)
message(STATUS "WARNING: OpenCV was not found. If you want compile this sample, configure the OpenCV_DIR variable in src/software/opencv/accv12_demo/CMakelists.txt")
else(NOT OpenCV_FOUND)

add_executable( opencv_fitting main.cpp )
target_link_libraries( opencv_fitting ${OpenCV_LIBS} openMVG_multiview)

INSTALL(TARGETS opencv_fitting DESTINATION bin/)

endif(NOT OpenCV_FOUND)

0 comments on commit 1075746

Please sign in to comment.