You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

261 lines
8.4 KiB

# License: Apache 2.0. See LICENSE file in root directory.
# Copyright(c) 2019 Intel Corporation. All Rights Reserved.
cmake_minimum_required(VERSION 3.1.0)
project(realsense-viewer)
if(WIN32)
add_executable( ${PROJECT_NAME} WIN32 "" )
else()
add_executable( ${PROJECT_NAME} "" )
endif()
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
include_directories(${CMAKE_BINARY_DIR})
using_easyloggingpp( ${PROJECT_NAME} SHARED )
include(../../common/CMakeLists.txt)
if(BUILD_GRAPHICAL_EXAMPLES)
set(RS_VIEWER_CPP
${COMMON_SRC}
realsense-viewer.cpp
../../third-party/imgui/imgui.cpp
../../third-party/imgui/imgui_draw.cpp
../../third-party/imgui/imgui_impl_glfw.cpp
../../third-party/imgui/imgui-fonts-karla.hpp
../../third-party/imgui/imgui-fonts-fontawesome.hpp
../../common/realsense-ui-advanced-mode.h
../../common/rendering.h
../../common/model-views.h
../../common/model-views.cpp
../../common/ux-window.h
../../common/ux-window.cpp
../../common/ux-alignment.cpp
../../common/ux-alignment.h
../../common/processing-block-model.h
../../common/post-processing-block-model.h
../../common/post-processing-filter.h
../../common/post-processing-worker-filter.h
../../common/post-processing-filters-list.h
../../common/objects-in-frame.h
../../third-party/glad/glad.c
../../third-party/tinyfiledialogs/tinyfiledialogs.c
../../third-party/tinyfiledialogs/tinyfiledialogs.h
../../common/opengl3.cpp
../../common/opengl3.h
../../common/rs-config.h
../../common/rs-config.cpp
../../common/os.h
../../common/os.cpp
)
SET(DELAYED
realsense2d.dll
realsense2-gld.dll
realsense2.dll
realsense2-gl.dll
)
if(DEFINED OpenCV_DIR AND IS_DIRECTORY ${OpenCV_DIR})
find_package(OpenCV REQUIRED)
get_property(deps VARIABLE PROPERTY DEPENDENCIES)
set(DEPENDENCIES ${deps} ${OpenCV_LIBS})
include_directories( ../../wrappers/opencv )
list(APPEND DELAYED
opencv_highgui341.dll
opencv_core341.dll
opencv_imgproc341.dll
opencv_dnn341.dll
opencv_highgui341d.dll
opencv_core341d.dll
opencv_imgproc341d.dll
opencv_dnn341d.dll
)
endif()
include(../../wrappers/openvino/check_vino_version.cmake)
if(DEFINED INTEL_OPENVINO_DIR AND IS_DIRECTORY ${INTEL_OPENVINO_DIR})
message( STATUS "Enabling OpenVINO face-detection for realsense-viewer ..." )
set(IE_ROOT_DIR "${INTEL_OPENVINO_DIR}/inference_engine")
include(${INTEL_OPENVINO_DIR}/inference_engine/share/InferenceEngineConfig.cmake)
get_property(deps VARIABLE PROPERTY DEPENDENCIES)
check_vino_version()
if(OPENVINO2019)
set(DEPENDENCIES ${deps} ${InferenceEngine_LIBRARIES} ie_cpu_extension)
elseif(OPENVINO_NGRAPH)
include(${INTEL_OPENVINO_DIR}/deployment_tools/ngraph/cmake/ngraphConfig.cmake)
set(DEPENDENCIES ${deps} ${InferenceEngine_LIBRARIES} ${NGRAPH_LIBRARIES})
else()
set(DEPENDENCIES ${deps} ${InferenceEngine_LIBRARIES})
endif()
include_directories( ../../wrappers/openvino )
include_directories( ../../wrappers/opencv )
include_directories( ${InferenceEngine_INCLUDE_DIRS} )
if(OPENVINO2019)
# We need additional access to ext_list.hpp, for CPU extension support:
include_directories( "${IE_ROOT_DIR}/src/extension" )
elseif(OPENVINO_NGRAPH)
include_directories( "${INTEL_OPENVINO_DIR}/deployment_tools/ngraph/include" )
endif()
set(OPENVINO_FILES
../../wrappers/openvino/rs-vino/base-detection.cpp
../../wrappers/openvino/rs-vino/base-detection.h
../../wrappers/openvino/rs-vino/object-detection.cpp
../../wrappers/openvino/rs-vino/object-detection.h
../../wrappers/openvino/rs-vino/age-gender-detection.cpp
../../wrappers/openvino/rs-vino/age-gender-detection.h
../../wrappers/openvino/rs-vino/detected-object.cpp
../../wrappers/openvino/rs-vino/detected-object.h
../../wrappers/openvino/rs-vino/openvino-helpers.h
)
if(OPENVINO2019)
set(OPENVINO_FILES ${OPENVINO_FILES} "${IE_ROOT_DIR}/src/extension/ext_list.hpp")
endif()
set(RS_VIEWER_CPP
${RS_VIEWER_CPP}
openvino-face-detection.cpp
${OPENVINO_FILES}
)
include(../../wrappers/openvino/dl_vino_model.cmake)
# Download model files -- these will go into build/tools/realsense-viewer, which is also
# where the sample is run from in Visual Studio
if(OPENVINO2019)
dl_vino_model( "README.txt" "789e144d6cafa379c8437d2a6860829b6d935a8d" )
dl_vino_model( "face-detection-adas-0001.bin" "1625f05ada1d8e78e36856def7124f78cd0a6c2a" )
dl_vino_model( "face-detection-adas-0001.xml" "11c36f6e4488b2f5437ccff9f330d02545087ab3" )
dl_vino_model( "age-gender-recognition-retail-0013.bin" "206f6e97e53cd600fcac7d31e1c56accbbe461b9" )
dl_vino_model( "age-gender-recognition-retail-0013.xml" "2654d7f1638d575b8d1886f8128deae2ea79ee55" )
else()
# Newer model files with IRv10, 2020.1 and later
dl_vino_model( "README.txt" "789e144d6cafa379c8437d2a6860829b6d935a8d" )
dl_vino_model( "face-detection-adas-0001.bin" "065e9015297c7adbc650ebfc17176477cd0a4279" )
dl_vino_model( "face-detection-adas-0001.xml" "331be642a248213f586ec1d1b71c223435a437e3" )
dl_vino_model( "age-gender-recognition-retail-0013.bin" "206f6e97e53cd600fcac7d31e1c56accbbe461b9" )
dl_vino_model( "age-gender-recognition-retail-0013.xml" "36bde5d4d42d29515abe871f69097ffcf4ff6414" )
endif()
list(APPEND DELAYED
cpu_extension.dll
inference_engine.dll
libmmd.dll
mkl_tiny_tbb.dll
MKLDNNPlugin.dll
opencv_core412.dll
opencv_imgproc412.dll
svml_dispmd.dll
tbb.dll
tbbmalloc.dll
)
endif()
# config-ui
if(WIN32)
target_sources( ${PROJECT_NAME}
PRIVATE
${RS_VIEWER_CPP}
${CMAKE_CURRENT_SOURCE_DIR}/res/resource.h
${CMAKE_CURRENT_SOURCE_DIR}/res/realsense-viewer.rc
../../common/windows-app-bootstrap.cpp
)
source_group("3rd Party" FILES
../../third-party/tinyfiledialogs/tinyfiledialogs.c
../../third-party/tinyfiledialogs/tinyfiledialogs.h
../../third-party/imgui/imgui.cpp
../../third-party/imgui/imgui_draw.cpp
../../third-party/imgui/imgui_impl_glfw.cpp
../../third-party/imgui/imgui-fonts-karla.hpp
../../third-party/imgui/imgui-fonts-fontawesome.hpp
)
source_group("Resources" FILES
${CMAKE_CURRENT_SOURCE_DIR}/res/resource.h
${CMAKE_CURRENT_SOURCE_DIR}/res/realsense-viewer.rc)
source_group("OpenVINO" FILES ${OPENVINO_FILES})
#list(TRANSFORM DELAYED PREPEND " /DELAYLOAD:") - Requires cmake v3.12
PREPEND(DELAYED " /DELAYLOAD:" ${DELAYED})
string(REPLACE ";" " " LD_FLAGS_STR "${DELAYED}")
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "${LD_FLAGS_STR}")
else()
target_sources( ${PROJECT_NAME}
PRIVATE
${RS_VIEWER_CPP}
)
endif()
if(OPENVINO2019)
target_compile_definitions(realsense-viewer PRIVATE OPENVINO2019)
endif()
if(OPENVINO_NGRAPH)
target_compile_definitions(realsense-viewer PRIVATE OPENVINO_NGRAPH)
endif()
source_group("SW-Update" FILES ${SW_UPDATE_FILES})
include_directories(
../../common
../../third-party
../../third-party/tinyfiledialogs
${GLFW_SOURCE_DIR}/include
../../third-party/imgui
../../third-party/glad
)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11)
set(RS_VIEWER_LIBS ${GTK3_LIBRARIES} Threads::Threads realsense2-gl)
if (CHECK_FOR_UPDATES)
message( STATUS "Check for updates capability added to realsense-viewer" )
add_dependencies(${PROJECT_NAME} libcurl)
set(RS_VIEWER_LIBS ${RS_VIEWER_LIBS} curl)
endif()
if (IMPORT_DEPTH_CAM_FW)
add_definitions(-DINTERNAL_FW)
target_link_libraries(${PROJECT_NAME} fw)
endif()
target_link_libraries( ${PROJECT_NAME} ${DEPENDENCIES} ${RS_VIEWER_LIBS} tclap )
set_target_properties (${PROJECT_NAME} PROPERTIES
FOLDER Tools
)
target_include_directories(${PROJECT_NAME} PRIVATE ../../src)
install(
TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
#https://cmake.org/cmake/help/latest/command/install.html
install(DIRECTORY presets/
DESTINATION $ENV{HOME}/Documents/librealsense2/presets
FILES_MATCHING PATTERN "*.preset"
)
endif()