# The Flutter tooling requires that developers have CMake 3.10 or later # installed. You should not increase this version, as doing so will cause # the plugin to fail to compile for some customers of the plugin. cmake_minimum_required(VERSION 3.10) set(LIBDART_OPENMVG libdart_openmvg) project(libdart_openmvg VERSION 0.0.1 LANGUAGES CXX) enable_language(CXX) set(CMAKE_POSITION_INDEPENDENT_CODE ON) function(dump_cmake_variables) get_cmake_property(_variableNames VARIABLES) list (SORT _variableNames) foreach (_variableName ${_variableNames}) if (ARGV0) unset(MATCHED) #case sensitive match # string(REGEX MATCH ${ARGV0} MATCHED ${_variableName}) # #case insenstitive match string( TOLOWER "${ARGV0}" ARGV0_lower ) string( TOLOWER "${_variableName}" _variableName_lower ) string(REGEX MATCH ${ARGV0_lower} MATCHED ${_variableName_lower}) if (NOT MATCHED) continue() endif() endif() message(STATUS "${_variableName}=${${_variableName}}") endforeach() endfunction() set (FFMPEG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../../ffmpeg_install/include) set (ARCHIMEDES_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}) set (LIBDART_OPENMVG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src) find_package(JPEG REQUIRED) find_package(TIFF REQUIRED) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/extlib/cwalk) # OPENMVG find_package(OpenMVG REQUIRED PATHS "../../openMVG/build/_install" ) dump_cmake_variables("^OPENMVG") include_directories(${OpenMVG_INCLUDE_DIRS}) set(PNG_SHARED ON CACHE BOOL "" FORCE) set(PNG_STATIC OFF CACHE BOOL "" FORCE) set(PNG_EXECUTABLES OFF CACHE BOOL "" FORCE) # we only want lib set(PNG_TESTS OFF CACHE BOOL "" FORCE) # we only want lib set(SKIP_INSTALL_ALL OFF CACHE BOOL "" FORCE) # we only want lib add_definitions(${PNG_DEFINITIONS}) add_library(${LIBDART_OPENMVG} SHARED "frame.cxx" "streamingview.cxx" "image.cxx" ) target_include_directories( ${LIBDART_OPENMVG} PRIVATE ${FFMPEG_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS} ${ARCHIMEDES_INCLUDE_DIRS} ${OpenMVG_DIR}/../../../include/openMVG_dependencies/cereal/include/cereal/ ) target_link_libraries( ${LIBDART_OPENMVG} cwalk jpeg tiff png OpenMVG::openMVG_image OpenMVG::openMVG_numeric OpenMVG::openMVG_features OpenMVG::openMVG_sfm OpenMVG::openMVG_exif ) set_target_properties(${LIBDART_OPENMVG} PROPERTIES PUBLIC_HEADER image.h OUTPUT_NAME ${LIBDART_OPENMVG} ) target_link_options(${LIBDART_OPENMVG} PRIVATE "-Wl,-Bdynamic") add_executable( test_image ${CMAKE_CURRENT_SOURCE_DIR}/tests/test_image.cxx ) target_link_libraries( test_image cunit cwalk ${LIBDART_OPENMVG} png OpenMVG::openMVG_image OpenMVG::openMVG_numeric OpenMVG::openMVG_features OpenMVG::openMVG_sfm OpenMVG::openMVG_features OpenMVG::openMVG_exif ) target_include_directories( test_image PRIVATE ${LIBDART_OPENMVG_INCLUDE_DIRS} ${OpenMVG_INCLUDE_DIRS}/src ) set_target_properties(test_image PROPERTIES LINKER_LANGUAGE CXX ) add_test ( NAME test_image COMMAND test_image ) target_compile_definitions(${LIBDART_OPENMVG} PUBLIC DART_SHARED_LIB)