📄 cmakelists.txt
字号:
SET ( LIBRARY_OUTPUT_PATH ${VideoMan_BINARY_DIR}/bin/ CACHE PATH "Single output directory for building all libraries." FORCE )
SET ( EXECUTABLE_OUTPUT_PATH ${VideoMan_BINARY_DIR}/bin/ CACHE PATH "Single output directory for building all executables." FORCE )
IF(WIN32)
PROJECT( VMDirectShow )
# - Test for DirectShow on Windows.
# Once loaded this will define
# DIRECTSHOW_FOUND - system has DirectShow
# DIRECTSHOW_INCLUDE_DIR - include directory for DirectShow
# DIRECTSHOW_LIBRARIES - libraries you need to link to
SET(DIRECTSHOW_FOUND "NO")
# DirectShow is only available on Windows platforms
# Find DirectX Include Directory
FIND_PATH(DIRECTX_INCLUDE_DIR ddraw.h
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Include"
"C:/Archivos de programa/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include"
"C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include"
"C:/Program Files/Microsoft DirectX SDK (February 2006)/Include"
"C:/Program Files/Microsoft DirectX 9.0 SDK (June 2005)/Include"
"C:/Archivos de programa/Microsoft DirectX SDK (February 2006)/Include"
"C:/Archivos de programa/Microsoft DirectX 9.0 SDK (June 2005)/Include"
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Include"
"C:/DXSDK/Include"
DOC "What is the path where the file ddraw.h can be found"
)
# if DirectX found, then find DirectShow include directory
IF(DIRECTX_INCLUDE_DIR)
FIND_PATH(DIRECTSHOW_INCLUDE_DIR dshow.h
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Include"
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Include"
"C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include"
"C:/Program Files/Microsoft Platform SDK/Include"
"C:/Archivos de programa/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Include"
"C:/Archivos de programa/Microsoft Platform SDK/Include"
"C:/DXSDK/Include"
DOC "What is the path where the file dshow.h can be found"
)
FIND_PATH(DIRECTSHOW_BASECLASSES_INCLUDE_DIR streams.h
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Samples/Multimedia/DirectShow/BaseClasses"
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Samples/Multimedia/DirectShow/BaseClasses"
"C:/Program Files/Microsoft DirectX 9.0 SDK (April 2005)/Extras/DirectShow/Samples/C++/DirectShow/BaseClasses"
"C:/Archivos de programa/Microsoft DirectX 9.0 SDK (April 2005)/Extras/DirectShow/Samples/C++/DirectShow/BaseClasses"
"C:/DXSDK/Samples/C++/DirectShow/BaseClasses"
DOC "What is the path where the file streams.h can be found"
)
# if DirectShow include dir found, then find DirectShow libraries
IF(DIRECTSHOW_INCLUDE_DIR)
IF(DIRECTSHOW_BASECLASSES_INCLUDE_DIR)
FIND_LIBRARY(DIRECTSHOW_strmbase_LIBRARY strmbase
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Samples/Multimedia/DirectShow/BaseClasses/Release"
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Samples/Multimedia/DirectShow/BaseClasses/Release"
"C:/Program Files/Microsoft DirectX 9.0 SDK (April 2005)/Extras/DirectShow/Samples/C++/DirectShow/BaseClasses/Release"
"C:/Archivos de programa/Microsoft DirectX 9.0 SDK (April 2005)/Extras/DirectShow/Samples/C++/DirectShow/BaseClasses/Release"
"C:/DXSDK/Samples/C++/DirectShow/BaseClasses/Release"
DOC "Where can the DirectShow strmbase library be found"
)
FIND_LIBRARY(DIRECTSHOW_strmiids_LIBRARY strmiids
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Lib"
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib"
"C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib"
"C:/Program Files/Microsoft Platform SDK/Lib"
"C:/Archivos de programa/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib"
"C:/Archivos de programa/Microsoft Platform SDK/Lib"
"C:/DXSDK/Include/Lib"
DOC "Where can the DirectShow strmiids library be found"
)
FIND_LIBRARY(DIRECTSHOW_quartz_LIBRARY quartz
"C:/Archivos de programa/Microsoft SDKs/Windows/v6.1/Lib"
"C:/Program Files/Microsoft SDKs/Windows/v6.1/Lib"
"C:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib"
"C:/Program Files/Microsoft Platform SDK/Lib"
"C:/Archivos de programa/Microsoft Visual Studio .NET 2003/Vc7/PlatformSDK/Lib"
"C:/Archivos de programa/Microsoft Platform SDK/Lib"
"C:/DXSDK/Include/Lib"
DOC "Where can the DirectShow quartz library be found"
)
# if DirectShow libraries found, then we're ok
IF(DIRECTSHOW_strmbase_LIBRARY)
IF(DIRECTSHOW_strmiids_LIBRARY)
IF(DIRECTSHOW_quartz_LIBRARY)
# everything found
SET(DIRECTSHOW_FOUND "YES")
ENDIF(DIRECTSHOW_quartz_LIBRARY)
ENDIF(DIRECTSHOW_strmiids_LIBRARY)
ENDIF(DIRECTSHOW_strmbase_LIBRARY)
ENDIF(DIRECTSHOW_BASECLASSES_INCLUDE_DIR)
ENDIF(DIRECTSHOW_INCLUDE_DIR)
ENDIF(DIRECTX_INCLUDE_DIR)
#---------------------------------------------------------------------
IF(DIRECTSHOW_FOUND)
SET(DIRECTSHOW_INCLUDE_DIR
${DIRECTSHOW_INCLUDE_DIR}
${DIRECTSHOW_BASECLASSES_INCLUDE_DIR}
${DIRECTX_INCLUDE_DIR}
)
SET(DIRECTSHOW_LIBRARIES
${DIRECTSHOW_strmbase_LIBRARY}
${DIRECTSHOW_strmiids_LIBRARY}
${DIRECTSHOW_quartz_LIBRARY}
)
ELSE(DIRECTSHOW_FOUND)
# make FIND_PACKAGE friendly
IF(NOT DIRECTSHOW_FIND_QUIETLY)
IF(DIRECTSHOW_FIND_REQUIRED)
MESSAGE(FATAL_ERROR
"DirectShow required, please specify it's location.")
ELSE(DIRECTSHOW_FIND_REQUIRED)
MESSAGE(STATUS "DirectShow was not found.")
ENDIF(DIRECTSHOW_FIND_REQUIRED)
ENDIF(NOT DIRECTSHOW_FIND_QUIETLY)
ENDIF(DIRECTSHOW_FOUND)
LINK_DIRECTORIES(
${VideoMan_BINARY_DIR}/bin/
)
SET( VMDirectShow_SRCS
inputs/VMDirectShow/CaptureDeviceDShow.cpp
inputs/VMDirectShow/DirectShowHelpers.cpp
inputs/VMDirectShow/stdafx.cpp
inputs/VMDirectShow/VideoFileDShow.cpp
inputs/VMDirectShow/VideoInputDShow.cpp
inputs/VMDirectShow/VMDirectShow.cpp
inputs/VMDirectShow/VideoInputDShow.h
inputs/VMDirectShow/VideoFileDShow.h
inputs/VMDirectShow/stdafx.h
inputs/VMDirectShow/DirectShowHelpers.h
inputs/VMDirectShow/CaptureDeviceDShow.h
)
INCLUDE_DIRECTORIES(
)
ADD_LIBRARY( VMDirectShow SHARED
${VMDirectShow_SRCS}
)
TARGET_LINK_LIBRARIES( VMDirectShow
VideoMan.lib
strmiids.lib
comsupp.lib
winmm.lib
)
add_dependencies( VMDirectShow VideoMan )
ENDIF(WIN32)
#/////////////////////////
# - Test for OpenCV on Windows.
# Once loaded this will define
# OPENCV_FOUND - system has OpenCV
# OPENCV_INCLUDE_DIR - include directory for OpenCV
# OPENCV_LIBRARIES - libraries you need to link to
SET(OPENCV_FOUND "NO")
# Find OpenCV Include Directory
FIND_PATH(OPENCV_INCLUDE_DIR cv.h
"C:/Archivos de programa/OpenCV/cv/include"
"C:/Program Files/OpenCV/cv/include"
DOC "What is the path where the file cv.h can be found"
)
# if OpenCV found, then find cxcore include directory
IF(OPENCV_INCLUDE_DIR)
FIND_PATH(CXCORE_INCLUDE_DIR cxcore.h
"C:/Archivos de programa/OpenCV/cxcore/include"
"C:/Program Files/OpenCV/cxcore/include"
DOC "What is the path where the file cxcore.h can be found"
)
# if cxcore include dir found, then find opencv libraries
IF(CXCORE_INCLUDE_DIR)
FIND_LIBRARY(OPENCV_LIBRARY cv
"C:/Archivos de programa/OpenCV/lib"
"C:/Program Files/OpenCV/lib"
DOC "Where can the Opencv cv.lib library be found"
)
FIND_LIBRARY(OPENCV_CXCORE_LIBRARY cxcore
"C:/Archivos de programa/OpenCV/lib"
"C:/Program Files/OpenCV/lib"
DOC "Where can the Opencv cxcore.lib library be found"
)
# if opencv libraries found, then we're ok
IF(OPENCV_LIBRARY)
IF(OPENCV_CXCORE_LIBRARY)
# everything found
SET(OPENCV_FOUND "YES")
ENDIF(OPENCV_CXCORE_LIBRARY)
ENDIF(OPENCV_LIBRARY)
ENDIF(CXCORE_INCLUDE_DIR)
ENDIF(OPENCV_INCLUDE_DIR)
IF(OPENCV_FOUND)
SET(OPENCV_INCLUDE_DIR
${OPENCV_INCLUDE_DIR}
${CXCORE_INCLUDE_DIR}
)
SET(OPENCV_LIBRARIES
${OPENCV_LIBRARY}
${OPENCV_CXCORE_LIBRARY}
)
ENDIF(OPENCV_FOUND)
#/////////////////////////
#----------------EXAMPLES-------------------------------------------------------------------
#-------------------------------------------------------------------------------------------
IF(WIN32)
PROJECT( VMwithDirectShow )
INCLUDE_DIRECTORIES( include )
LINK_DIRECTORIES( ${VideoMan_BINARY_DIR}/bin/ )
ADD_EXECUTABLE( VMwithDirectShow examples/VMwithDirectShow.cpp )
TARGET_LINK_LIBRARIES( VMwithDirectShow Videoman.lib )
add_dependencies( VMwithDirectShow VideoMan VMDirectShow )
ENDIF(WIN32)
#-------------------------------------------------------------------------------------------
IF(WIN32)
PROJECT( VMwithDirectShowMultiVideo )
INCLUDE_DIRECTORIES( include )
LINK_DIRECTORIES( ${VideoMan_BINARY_DIR}/bin/ )
ADD_EXECUTABLE( VMwithDirectShowMultiVideo examples/VMwithDirectShowMultiVideo.cpp )
TARGET_LINK_LIBRARIES( VMwithDirectShowMultiVideo Videoman.lib )
add_dependencies( VMwithDirectShowMultiVideo VideoMan VMDirectShow )
ENDIF(WIN32)
#-------------------------------------------------------------------------------------------
PROJECT( opencvSimple )
INCLUDE_DIRECTORIES( include )
LINK_DIRECTORIES( ${VideoMan_BINARY_DIR}/bin/ )
ADD_EXECUTABLE( opencvSimple examples/opencvSimple.cpp )
TARGET_LINK_LIBRARIES( opencvSimple Videoman.lib ${OPENCV_CXCORE_LIBRARY} ${OPENCV_LIBRARY})
INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} )
LINK_DIRECTORIES( ${OPENCV_LIBRARIES} )
add_dependencies( opencvSimple VideoMan )
#-------------------------------------------------------------------------------------------
PROJECT( opencvLKdemo )
INCLUDE_DIRECTORIES( include )
LINK_DIRECTORIES( ${VideoMan_BINARY_DIR}/bin/ )
ADD_EXECUTABLE( opencvLKdemo examples/opencvLKdemo.cpp )
TARGET_LINK_LIBRARIES( opencvLKdemo Videoman.lib ${OPENCV_CXCORE_LIBRARY} ${OPENCV_LIBRARY})
INCLUDE_DIRECTORIES( ${OPENCV_INCLUDE_DIR} )
LINK_DIRECTORIES( ${OPENCV_LIBRARIES} )
add_dependencies( opencvLKdemo VideoMan )
#----------------VIDEOMAN-------------------------------------------------------------------
#-----------------------------------------------------------------------------
PROJECT( VideoMan )
# Find and use OpenGL libraries.
FIND_PACKAGE( OpenGL )
IF ( OPENGL_FOUND )
SET( OPENGL_LIBRARIES ${OPENGL_gl_LIBRARY} )
IF( OPENGL_GLU_FOUND )
SET( OPENGL_LIBRARIES ${OPENGL_LIBRARIES} ${OPENGL_glu_LIBRARY} )
ENDIF( OPENGL_GLU_FOUND )
ELSE ( OPENGL_FOUND )
MESSAGE( FATAL_ERROR "This application requires OpenGL. One of these components is missing. Please verify configuration")
ENDIF ( OPENGL_FOUND )
INCLUDE_DIRECTORIES(
include
)
LINK_DIRECTORIES(
${OPENGL_LIBRARIES}
)
SET( VideoMan_SRCS
control/VideoManControl.cpp
include/VideoManControl.h
control/VideoManFactory.cpp
control/VideoManFactory.h
control/VideoManInputFormat.cpp
include/VideoManInputFormat.h
include/VideoManInputController.h
include/VideoFileInput.h
include/VideoInput.h
include/CameraInput.h
)
SET( VideoMan_SRCS_INPUTS
control/inputs/UserInput.cpp
control/inputs/UserInput.h
control/inputs/VideoManInputController.cpp
)
SET( VideoMan_SRCS_RENDERER
control/renderers/VideoManRenderer.cpp
control/renderers/VideoManRenderer.h
control/renderers/VideoManRendererOGL.cpp
control/renderers/VideoManRendererOGL.h
)
SOURCE_GROUP(inputs FILES ${VideoMan_SRCS_INPUTS})
SOURCE_GROUP(renderer FILES ${VideoMan_SRCS_RENDERER})
ADD_LIBRARY( VideoMan SHARED
${VideoMan_SRCS}
${VideoMan_SRCS_INPUTS}
${VideoMan_SRCS_RENDERER}
)
TARGET_LINK_LIBRARIES( VideoMan
opengl32.lib
glu32.lib
)
add_definitions(-DVM_OGLRenderer)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -