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.
 
 
 
 
 

147 lines
5.5 KiB

# --------------------------------------------------------
# Copyright (C) 2004-2020 by EMGU Corporation. All rights reserved.
#
# CMake file for cvextern_test. See root CMakeLists.txt
# --------------------------------------------------------
project(cvextern_test)
SET(OPENCV_MODULES_DIR "${OPENCV_SUBFOLDER}/modules")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/core/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/imgproc/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/video/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/ml/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/calib3d/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/objdetect/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/features2d/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/hal/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/flann/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/highgui/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/imgcodecs/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/videoio/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/photo/include")
INCLUDE_DIRECTORIES("${OPENCV_MODULES_DIR}/dnn/include")
INCLUDE_DIRECTORIES("${OPENCV_SUBFOLDER}/include/opencv")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/../../Emgu.CV.Extern/")
INCLUDE_DIRECTORIES("${PROJECT_SOURCE_DIR}/../../")
INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}")
#INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
#INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
#INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIR})
############################### IPP START ##############################
#IF(WITH_IPP)
#include(${OPENCV_SUBFOLDER}/cmake/OpenCVFindIPP.cmake)
# IF (IPP_FOUND)
# message(STATUS "CVEXTERN: USING IPP: ${IPP_LIBRARY_DIRS} ")
# add_definitions(-DHAVE_IPP)
# include_directories(${IPP_INCLUDE_DIRS})
# LINK_DIRECTORIES(${IPP_LIBRARY_DIRS})
# ENDIF()
#ENDIF()
############################### IPP END ################################
############################### TBB START ##############################
if (WITH_TBB AND TBB_INCLUDE_DIR AND TBB_LIB_DIR)
add_definitions(-DHAVE_TBB)
include_directories(${TBB_INCLUDE_DIR})
link_directories(${TBB_LIB_DIR})
endif()
############################### TBB END ################################
############################### GPU START ##############################
IF(WIN32 AND WITH_CUDA)
IF(TARGET_ARCH_64)
LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib/x64)
ELSE()
LINK_DIRECTORIES(${CUDA_TOOLKIT_ROOT_DIR}/lib/Win32)
ENDIF()
ENDIF()
############################### GPU END ################################
IF(WITH_INF_ENGINE)
#SET(INF_ENGINE_LIB_DIRS )
#link_directories("${INF_ENGINE_LIB_DIRS}/Release")
link_directories("${IE_INCLUDE_DIR}/../lib/intel64/")
ENDIF()
############################### OPENMP START ##############################
IF(WITH_OPENMP)
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
#MESSAGE(STATUS " -- Compiling cvextern with OPENMP")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
ENDIF()
############################### OPENMP END ################################
if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
endif()
file(GLOB cvextern_test_srcs "./*.cpp")
source_group("Src" FILES ${cvextern_test_srcs})
file(GLOB cvextern_test_hdrs "./*.h*")
source_group("Include" FILES ${cvextern_test_hdrs})
set(the_target ${PROJECT_NAME})
add_executable(${the_target} ${cvextern_test_srcs} ${cvextern_test_hdrs})
# For dynamic link numbering convenions
set_target_properties(${the_target} PROPERTIES
OUTPUT_NAME "${the_target}"
)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 11)
if(ENABLE_SOLUTION_FOLDERS)
set_target_properties(${the_target} PROPERTIES FOLDER "emgu")
endif()
# Additional target properties
set_target_properties(${the_target} PROPERTIES
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER}"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER}"
)
ADD_DEPENDENCIES(${the_target}
cvextern opencv_core opencv_calib3d opencv_features2d opencv_highgui opencv_imgproc opencv_ml opencv_objdetect
# ${ZLIB_LIBRARY}
# ${TIFF_LIBRARY} ${GEOTIFF_LIBRARY}
)
IF(EMGU_ENABLE_SSE)
ADD_DEFINITIONS(-D__EMGU_ENABLE_SSE__)
IF(MSVC AND EMGUCV_ARCH MATCHES "win32" AND (NOT CV_ICC))
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") ## Optimization
ENDIF()
IF ((NOT WIN32) AND NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL "Emscripten"))
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -latomic")
ENDIF()
ENDIF()
# Add the required libraries for linking:
target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS}
cvextern opencv_core opencv_calib3d opencv_features2d opencv_highgui opencv_imgproc opencv_ml opencv_objdetect
# ${ZLIB_LIBRARY}
# ${TIFF_LIBRARY}
# ${GEOTIFF_LIBRARY}
)
IF("${CMAKE_SYSTEM_NAME}" STREQUAL "Emscripten")
set_target_properties(${the_target} PROPERTIES SUFFIX ".html")
ENDIF()
IF(DEFINED EMGUCV_PLATFORM_TOOLSET)
set_target_properties(${the_target} PROPERTIES PLATFORM_TOOLSET ${EMGUCV_PLATFORM_TOOLSET})
ENDIF()
INSTALL(TARGETS ${the_target}
RUNTIME DESTINATION bin${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main
LIBRARY DESTINATION lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main
ARCHIVE DESTINATION lib${UNMANAGED_LIBRARY_OUTPUT_SUBFOLDER} COMPONENT main)