⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmakelists.txt

📁 VideoMan is a very easy image acquisition library. It is able to manage many video inputs at the sam
💻 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 + -