172 lines
3.8 KiB
CMake
172 lines
3.8 KiB
CMake
# 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"
|
|
)
|
|
|
|
set(CEREAL_INCLUDE_DIR ${OpenMVG_DIR}/../../../include/openMVG_dependencies/cereal/include/cereal/)
|
|
|
|
target_include_directories(
|
|
${LIBDART_OPENMVG}
|
|
PRIVATE
|
|
${FFMPEG_INCLUDE_DIRS}
|
|
${PNG_INCLUDE_DIRS}
|
|
${ARCHIMEDES_INCLUDE_DIRS}
|
|
${CEREAL_INCLUDE_DIR}
|
|
)
|
|
|
|
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
|
|
${CMAKE_CURRENT_SOURCE_DIR}/util.cpp
|
|
)
|
|
|
|
add_executable(
|
|
test_frame
|
|
${CMAKE_CURRENT_SOURCE_DIR}/tests/test_frame.cxx
|
|
${CMAKE_CURRENT_SOURCE_DIR}/util.cpp
|
|
)
|
|
|
|
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_link_libraries(
|
|
test_frame
|
|
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
|
|
${CEREAL_INCLUDE_DIR}
|
|
)
|
|
|
|
target_include_directories(
|
|
test_frame
|
|
PRIVATE
|
|
${LIBDART_OPENMVG_INCLUDE_DIRS}
|
|
${OpenMVG_INCLUDE_DIRS}/src
|
|
${CEREAL_INCLUDE_DIR}
|
|
)
|
|
|
|
set_target_properties(
|
|
test_image
|
|
PROPERTIES
|
|
LINKER_LANGUAGE CXX
|
|
)
|
|
|
|
add_test (
|
|
NAME test_image
|
|
COMMAND test_image
|
|
)
|
|
|
|
add_test (
|
|
NAME test_frame
|
|
COMMAND test_frame
|
|
)
|
|
|
|
target_compile_definitions(${LIBDART_OPENMVG} PUBLIC DART_SHARED_LIB) |