* Improve CMake lists and modules

This commit is contained in:
Joshua M. Doe 2010-03-25 13:47:03 -04:00
parent bee7d22fcc
commit cfa14e8d60
9 changed files with 199 additions and 197 deletions

View File

@ -1,60 +1,35 @@
cmake_minimum_required ( VERSION "2.6.0" ) cmake_minimum_required (VERSION "2.8.0")
list ( APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ) list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
project ( gst-plugins-vision ) project ( gst-plugins-vision )
find_package ( Glib2 REQUIRED ) find_package (Gstreamer REQUIRED)
find_package ( Gstreamer COMPONENTS gstbase ) find_package (Glib2 REQUIRED)
find_package ( LibXml2 ) find_package (NIIMAQ)
find_package ( LibIconv )
find_package ( NIIMAQ REQUIRED ) # make this optional
function ( check_package name LEVEL ) # conditional required packages
if ( ${name}_FOUND ) include (CheckIncludeFiles)
message ( STATUS "Found ${name}... YES" ) CHECK_INCLUDE_FILES ("${GSTREAMER_INCLUDE_DIR}/gst/gstconfig.h" GST_USING_BINARY_REGISTRY)
else ( ${name}_FOUND ) if (NOT GST_USING_BINARY_REGISTRY)
message ( STATUS "Found ${name}... NO" ) find_package (LIBXML2)
if ( LEVEL ) find_package (LIBICONV)
if ( WIN32 ) include_directories (AFTER
message ( FATAL_ERROR "You should set the env variable ${name}_DIR" ) ${LIBXML2_INCLUDE_DIR}
else ( WIN32 ) ${LIBICONV_INCLUDE_DIR})
message ( FATAL_ERROR "You should install ${name} dev package" ) endif (NOT GST_USING_BINARY_REGISTRY)
endif ( WIN32 )
endif ( LEVEL )
endif ( ${name}_FOUND )
endfunction ( check_package )
# required packages
check_package ( GLIB2 1 )
check_package ( GSTREAMER 1 )
# conditionnal required packages
INCLUDE ( CheckIncludeFiles )
CHECK_INCLUDE_FILES ( "${GSTREAMER_gstconfig_INCLUDE_DIR}/gst/gstconfig.h" GST_USING_BINARY_REGISTRY )
if ( NOT GST_USING_BINARY_REGISTRY )
check_package ( LIBXML2 1 )
check_package ( LIBICONV 1 )
endif ( NOT GST_USING_BINARY_REGISTRY )
# debug
message ( "****" ${GLIB2_INCLUDE_DIR} )
message ( "****" ${GLIB2_LIBRARIES} )
message ( "****" ${GSTREAMER_INCLUDE_DIR} )
message ( "****" ${GSTREAMER_LIBRARIES} )
message ( "****" ${NIIMAQ_INCLUDE_DIR} )
message ( "****" ${NIIMAQ_LIBRARIES} )
include_directories ( include_directories (
. .
${GSTREAMER_INCLUDE_DIR} ${GSTREAMER_INCLUDE_DIR}
${GLIB2_INCLUDE_DIR} ) ${GLIB2_INCLUDE_DIR} )
if ( NOT GST_USING_BINARY_REGISTRY ) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
include_directories ( AFTER file (TO_CMAKE_PATH "${GSTREAMER_INCLUDE_DIR}/../.." PREFIX)
${LIBXML2_INCLUDE_DIR} set (CMAKE_INSTALL_PREFIX
${LIBICONV_INCLUDE_DIR} ) ${PREFIX} CACHE PATH "Directory to install plugins, under lib/gstreamer-0.10" FORCE)
endif ( NOT GST_USING_BINARY_REGISTRY ) endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
add_subdirectory ( gst ) add_subdirectory (gst)
add_subdirectory ( sys ) add_subdirectory (sys)

View File

@ -1,3 +1,7 @@
if (NOT GLIB2_DIR)
set (GLIB2_DIR "" CACHE PATH "Directory containing glib-2 includes and libraries")
endif ()
FILE(TO_CMAKE_PATH "$ENV{GLIB2_DIR}" TRY1_DIR) FILE(TO_CMAKE_PATH "$ENV{GLIB2_DIR}" TRY1_DIR)
FILE(TO_CMAKE_PATH "${GLIB2_DIR}" TRY2_DIR) FILE(TO_CMAKE_PATH "${GLIB2_DIR}" TRY2_DIR)
FILE(GLOB GLIB2_DIR ${TRY1_DIR} ${TRY2_DIR}) FILE(GLOB GLIB2_DIR ${TRY1_DIR} ${TRY2_DIR})
@ -5,34 +9,40 @@ FILE(GLOB GLIB2_DIR ${TRY1_DIR} ${TRY2_DIR})
FIND_PATH(GLIB_glib_2_INCLUDE_DIR glib.h FIND_PATH(GLIB_glib_2_INCLUDE_DIR glib.h
PATHS ${GLIB2_DIR}/include ${GLIB2_DIR}/include/glib-2.0 /usr/local/include/glib-2.0 /usr/include/glib-2.0 /opt/local/include/glib-2.0 PATHS ${GLIB2_DIR}/include ${GLIB2_DIR}/include/glib-2.0 /usr/local/include/glib-2.0 /usr/include/glib-2.0 /opt/local/include/glib-2.0
ENV INCLUDE DOC "Directory containing glib.h include file") ENV INCLUDE DOC "Directory containing glib.h include file")
mark_as_advanced (GLIB_glib_2_INCLUDE_DIR)
FIND_PATH(GLIB_glibconfig_2_INCLUDE_DIR glibconfig.h FIND_PATH(GLIB_glibconfig_2_INCLUDE_DIR glibconfig.h
PATHS ${GLIB2_DIR}/include ${GLIB2_DIR}/include/glib-2.0 ${GLIB2_DIR}/lib/include ${GLIB2_DIR}/lib/glib-2.0/include /usr/local/include/glib-2.0 /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/local/lib/glib-2.0/include /opt/local/lib/glib-2.0/include PATHS ${GLIB2_DIR}/include ${GLIB2_DIR}/include/glib-2.0 ${GLIB2_DIR}/lib/include ${GLIB2_DIR}/lib/glib-2.0/include /usr/local/include/glib-2.0 /usr/include/glib-2.0 /usr/lib/glib-2.0/include /usr/local/lib/glib-2.0/include /opt/local/lib/glib-2.0/include
ENV INCLUDE DOC "Directory containing glibconfig.h include file") ENV INCLUDE DOC "Directory containing glibconfig.h include file")
mark_as_advanced (GLIB_glibconfig_2_INCLUDE_DIR)
FIND_LIBRARY(GLIB_glib_2_LIBRARY NAMES glib-2.0 FIND_LIBRARY(GLIB_glib_2_LIBRARY NAMES glib-2.0
PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib
ENV LIB ENV LIB
DOC "glib library to link with" DOC "glib library to link with"
NO_SYSTEM_ENVIRONMENT_PATH) NO_SYSTEM_ENVIRONMENT_PATH)
mark_as_advanced (GLIB_glib_2_LIBRARY)
FIND_LIBRARY(GLIB_gmodule_2_LIBRARY NAMES gmodule-2.0 FIND_LIBRARY(GLIB_gmodule_2_LIBRARY NAMES gmodule-2.0
PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib
ENV LIB ENV LIB
DOC "gmodule library to link with" DOC "gmodule library to link with"
NO_SYSTEM_ENVIRONMENT_PATH) NO_SYSTEM_ENVIRONMENT_PATH)
mark_as_advanced (GLIB_gmodule_2_LIBRARY)
FIND_LIBRARY(GLIB_gobject_2_LIBRARY NAMES gobject-2.0 FIND_LIBRARY(GLIB_gobject_2_LIBRARY NAMES gobject-2.0
PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib
ENV LIB ENV LIB
DOC "gobject library to link with" DOC "gobject library to link with"
NO_SYSTEM_ENVIRONMENT_PATH) NO_SYSTEM_ENVIRONMENT_PATH)
mark_as_advanced (GLIB_gobject_2_LIBRARY)
FIND_LIBRARY(GLIB_gthread_2_LIBRARY NAMES gthread-2.0 FIND_LIBRARY(GLIB_gthread_2_LIBRARY NAMES gthread-2.0
PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib PATHS ${GLIB2_DIR}/bin ${GLIB2_DIR}/win32/bin ${GLIB2_DIR}/lib ${GLIB2_DIR}/win32/lib /usr/local/lib /usr/lib /opt/local/lib
ENV LIB ENV LIB
DOC "gthread library to link with" DOC "gthread library to link with"
NO_SYSTEM_ENVIRONMENT_PATH) NO_SYSTEM_ENVIRONMENT_PATH)
mark_as_advanced (GLIB_gthread_2_LIBRARY)
IF (GLIB_glib_2_INCLUDE_DIR AND GLIB_glibconfig_2_INCLUDE_DIR AND GLIB_glib_2_LIBRARY AND GLIB_gmodule_2_LIBRARY AND GLIB_gobject_2_LIBRARY AND GLIB_gthread_2_LIBRARY) IF (GLIB_glib_2_INCLUDE_DIR AND GLIB_glibconfig_2_INCLUDE_DIR AND GLIB_glib_2_LIBRARY AND GLIB_gmodule_2_LIBRARY AND GLIB_gobject_2_LIBRARY AND GLIB_gthread_2_LIBRARY)
SET(GLIB2_INCLUDE_DIR ${GLIB_glib_2_INCLUDE_DIR} ${GLIB_glibconfig_2_INCLUDE_DIR}) SET(GLIB2_INCLUDE_DIR ${GLIB_glib_2_INCLUDE_DIR} ${GLIB_glibconfig_2_INCLUDE_DIR})

View File

@ -1,134 +1,104 @@
FILE(TO_CMAKE_PATH "$ENV{GSTREAMER_DIR}" TRY1_DIR) # - Try to find GStreamer
FILE(TO_CMAKE_PATH "${GSTREAMER_DIR}" TRY2_DIR) # Once done this will define
FILE(GLOB GSTREAMER_DIR ${TRY1_DIR} ${TRY2_DIR}) #
message(STATUS ": GSTREAMER_DIR=${GSTREAMER_DIR}") # GSTREAMER_FOUND - system has GStreamer
# GSTREAMER_INCLUDE_DIR - the GStreamer include directory
# GSTREAMER_LIBRARIES - the libraries needed to use GStreamer
# GSTREAMER_DEFINITIONS - Compiler switches required for using GStreamer
FIND_PATH(GSTREAMER_gst_INCLUDE_DIR gst/gst.h # Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com>
PATHS ${GSTREAMER_DIR}/include ${GSTREAMER_DIR}/include/gstreamer-0.10 /usr/local/include/gstreamer-0.10 /usr/include/gstreamer-0.10 C:/gstreamer/include/gstreamer-0.10/gst # Copyright (c) 2010, United States Government, Joshua M. Doe <oss@nvl.army.mil>
ENV INCLUDE DOC "Directory containing gst/gst.h include file") #
message(STATUS "GSTREAMER_gst_INCLUDE_DIR = ${GSTREAMER_gst_INCLUDE_DIR}") # Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
FIND_PATH(GSTREAMER_gstconfig_INCLUDE_DIR gst/gstconfig.h # TODO: Other versions --> GSTREAMER_X_Y_FOUND (Example: GSTREAMER_0_8_FOUND and GSTREAMER_0_10_FOUND etc)
PATHS ${GSTREAMER_DIR}/include ${GSTREAMER_DIR}/lib/include ${GSTREAMER_DIR}/include/gstreamer-0.10 /usr/local/include/gstreamer-0.10 /usr/include/gstreamer-0.10 /usr/local/lib/include/gstreamer-0.10 /usr/lib/include/gstreamer-0.10
ENV INCLUDE DOC "Directory containing gst/gstconfig.h include file")
message(STATUS "GSTREAMER_gstconfig_INCLUDE_DIR = ${GSTREAMER_gstconfig_INCLUDE_DIR}")
FIND_LIBRARY(GSTREAMER_gstaudio_LIBRARY NAMES gstaudio-0.10 libgstaudio-0.10 gstaudio IF (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARIES AND GSTREAMER_BASE_LIBRARY AND GSTREAMER_INTERFACE_LIBRARY)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib # in cache already
ENV LIB SET(GStreamer_FIND_QUIETLY TRUE)
DOC "gstaudio library to link with" ELSE (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARIES AND GSTREAMER_BASE_LIBRARY AND GSTREAMER_INTERFACE_LIBRARY)
NO_SYSTEM_ENVIRONMENT_PATH) SET(GStreamer_FIND_QUIETLY FALSE)
message(STATUS "GSTREAMER_gstaudio_LIBRARY = ${GSTREAMER_gstaudio_LIBRARY}") ENDIF (GSTREAMER_INCLUDE_DIR AND GSTREAMER_LIBRARIES AND GSTREAMER_BASE_LIBRARY AND GSTREAMER_INTERFACE_LIBRARY)
FIND_LIBRARY(GSTREAMER_gstbase_LIBRARY NAMES gstbase-0.10 libgstbase-0.10 gstbase SET (GSTREAMER_DIR ${GSTREAMER_DIR} CACHE PATH "Directory containing gstreamer")
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
ENV LIB
DOC "gstbase library to link with"
NO_SYSTEM_ENVIRONMENT_PATH)
FIND_LIBRARY(GLIB_gstcdda_LIBRARY NAMES gstcdda-0.10 libgstcdda-0.10 gstcdda IF (NOT WIN32)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib # use pkg-config to get the directories and then use these values
ENV LIB # in the FIND_PATH() and FIND_LIBRARY() calls
DOC "gstcdda library to link with" FIND_PACKAGE(PkgConfig)
NO_SYSTEM_ENVIRONMENT_PATH) PKG_CHECK_MODULES(PC_GSTREAMER QUIET gstreamer-0.10)
#MESSAGE(STATUS "DEBUG: GStreamer include directory = ${GSTREAMER_INCLUDE_DIRS}")
#MESSAGE(STATUS "DEBUG: GStreamer link directory = ${GSTREAMER_LIBRARY_DIRS}")
#MESSAGE(STATUS "DEBUG: GStreamer CFlags = ${GSTREAMER_CFLAGS_OTHER}")
SET(GSTREAMER_DEFINITIONS ${PC_GSTREAMER_CFLAGS_OTHER})
ELSE (NOT WIN32)
IF (NOT GSTREAMER_DIR)
SET (GSTREAMER_DIR "C:/gstreamer")
ENDIF (NOT GSTREAMER_DIR)
ENDIF (NOT WIN32)
FIND_LIBRARY(GSTREAMER_gstcontroller_LIBRARY NAMES gstcontroller-0.10 libgstcontroller-0.10 gstcontroller FIND_PATH(GSTREAMER_INCLUDE_DIR gst/gst.h
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib PATHS
ENV LIB ${GSTREAMER_DIR}/include/gstreamer-0.10
DOC "gstcontroller library to link with" ${PC_GSTREAMER_INCLUDEDIR}
NO_SYSTEM_ENVIRONMENT_PATH) ${PC_GSTREAMER_INCLUDE_DIRS}
#PATH_SUFFIXES gst
)
FIND_LIBRARY(GSTREAMER_gstdataprotocol_LIBRARY NAMES gstdataprotocol-0.10 libgstdataprotocol-0.10 gstdataprotocol FIND_LIBRARY(GSTREAMER_LIBRARIES NAMES gstreamer-0.10
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib PATHS
ENV LIB ${GSTREAMER_DIR}/lib
DOC "gstdataprotocol library to link with" ${PC_GSTREAMER_LIBDIR}
NO_SYSTEM_ENVIRONMENT_PATH) ${PC_GSTREAMER_LIBRARY_DIRS}
)
FIND_LIBRARY(GSTREAMER_gstinterfaces_LIBRARY NAMES gstinterfaces-0.10 libgstinterfaces-0.10 gstinterfaces FIND_LIBRARY(GSTREAMER_BASE_LIBRARY NAMES gstbase-0.10
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib PATHS
ENV LIB ${GSTREAMER_DIR}/lib
DOC "gstinterfaces library to link with" ${PC_GSTREAMER_LIBDIR}
NO_SYSTEM_ENVIRONMENT_PATH) ${PC_GSTREAMER_LIBRARY_DIRS}
)
FIND_LIBRARY(GSTREAMER_gstnet_LIBRARY NAMES gstnet-0.10 libgstnet-0.10 gstnet FIND_LIBRARY(GSTREAMER_INTERFACE_LIBRARY NAMES gstinterfaces-0.10
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib PATHS
ENV LIB ${GSTREAMER_DIR}/lib
DOC "gstnet library to link with" ${PC_GSTREAMER_LIBDIR}
NO_SYSTEM_ENVIRONMENT_PATH) ${PC_GSTREAMER_LIBRARY_DIRS}
)
FIND_LIBRARY(GSTREAMER_gstnetbuffer_LIBRARY NAMES gstnetbuffer-0.10 libgstnetbuffer-0.10 gstnetbuffer FIND_LIBRARY(GSTREAMER_VIDEO_LIBRARY NAMES gstvideo-0.10
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib PATHS
ENV LIB ${GSTREAMER_DIR}/lib
DOC "gstnetbuffer library to link with" ${PC_GSTREAMER_LIBDIR}
NO_SYSTEM_ENVIRONMENT_PATH) ${PC_GSTREAMER_LIBRARY_DIRS}
)
FIND_LIBRARY(GSTREAMER_gstpbutils_LIBRARY NAMES gstpbutils-0.10 libgstpbutils-0.10 gstpbutils IF (GSTREAMER_INCLUDE_DIR)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib #MESSAGE(STATUS "DEBUG: Found GStreamer include dir: ${GSTREAMER_INCLUDE_DIR}")
ENV LIB ELSE (GSTREAMER_INCLUDE_DIR)
DOC "gstpbutils library to link with" MESSAGE(STATUS "GStreamer: WARNING: include dir not found")
NO_SYSTEM_ENVIRONMENT_PATH) ENDIF (GSTREAMER_INCLUDE_DIR)
FIND_LIBRARY(GSTREAMER_gstreamer_LIBRARY NAMES gstreamer-0.10 libgstreamer-0.10 gstreamer IF (GSTREAMER_LIBRARIES)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib #MESSAGE(STATUS "DEBUG: Found GStreamer library: ${GSTREAMER_LIBRARIES}")
ENV LIB ELSE (GSTREAMER_LIBRARIES)
DOC "gstreamer library to link with" MESSAGE(STATUS "GStreamer: WARNING: library not found")
NO_SYSTEM_ENVIRONMENT_PATH) ENDIF (GSTREAMER_LIBRARIES)
FIND_LIBRARY(GSTREAMER_gstriff_LIBRARY NAMES gstriff-0.10 libgstriff-0.10 gstriff IF (GSTREAMER_INTERFACE_LIBRARY)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib #MESSAGE(STATUS "DEBUG: Found GStreamer interface library: ${GSTREAMER_INTERFACE_LIBRARY}")
ENV LIB ELSE (GSTREAMER_INTERFACE_LIBRARY)
DOC "gstriff library to link with" MESSAGE(STATUS "GStreamer: WARNING: interface library not found")
NO_SYSTEM_ENVIRONMENT_PATH) ENDIF (GSTREAMER_INTERFACE_LIBRARY)
FIND_LIBRARY(GSTREAMER_gstrtp_LIBRARY NAMES gstrtp-0.10 libgstrtp-0.10 gstrtp IF (GSTREAMER_VIDEO_LIBRARY)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib #MESSAGE(STATUS "DEBUG: Found GStreamer video library: ${GSTREAMER_VIDEO_LIBRARY}")
ENV LIB ELSE (GSTREAMER_VIDEO_LIBRARY)
DOC "gstrtp library to link with" MESSAGE(STATUS "GStreamer: WARNING: video library not found")
NO_SYSTEM_ENVIRONMENT_PATH) ENDIF (GSTREAMER_VIDEO_LIBRARY)
FIND_LIBRARY(GSTREAMER_gstrtsp_LIBRARY NAMES gstrtsp-0.10 libgstrtsp-0.10 gstrtsp INCLUDE(FindPackageHandleStandardArgs)
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib FIND_PACKAGE_HANDLE_STANDARD_ARGS(GStreamer DEFAULT_MSG GSTREAMER_LIBRARIES GSTREAMER_INCLUDE_DIR GSTREAMER_BASE_LIBRARY GSTREAMER_INTERFACE_LIBRARY GSTREAMER_VIDEO_LIBRARY)
ENV LIB
DOC "gstrtsp library to link with"
NO_SYSTEM_ENVIRONMENT_PATH)
#FIND_LIBRARY(GSTREAMER_gstsdp_LIBRARY NAMES gstsdp-0.10 libgstsdp-0.10 MARK_AS_ADVANCED(GSTREAMER_INCLUDE_DIR GSTREAMER_LIBRARIES GSTREAMER_BASE_LIBRARY GSTREAMER_INTERFACE_LIBRARY GSTREAMER_VIDEO_LIBRARY)
# PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
# ENV LIB
# DOC "gstsdp library to link with"
# NO_SYSTEM_ENVIRONMENT_PATH)
FIND_LIBRARY(GSTREAMER_gsttag_LIBRARY NAMES gsttag-0.10 libgsttag-0.10 gsttag
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
ENV LIB
DOC "gsttag library to link with"
NO_SYSTEM_ENVIRONMENT_PATH)
FIND_LIBRARY(GSTREAMER_gstvideo_LIBRARY NAMES gstvideo-0.10 libgstvideo-0.10 gstvideo
PATHS ${GSTREAMER_DIR}/bin ${GSTREAMER_DIR}/win32/bin ${GSTREAMER_DIR}/bin/bin C:/gstreamer/bin ${GSTREAMER_DIR}/lib ${GSTREAMER_DIR}/win32/lib /usr/local/lib /usr/lib
ENV LIB
DOC "gstvideo library to link with"
NO_SYSTEM_ENVIRONMENT_PATH)
#IF (GSTREAMER_gst_INCLUDE_DIR AND GSTREAMER_gstconfig_INCLUDE_DIR AND
# GSTREAMER_gstaudio_LIBRARY AND GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstcontroller_LIBRARY AND
# GSTREAMER_gstdataprotocol_LIBRARY AND GSTREAMER_gstinterfaces_LIBRARY AND GSTREAMER_gstnet_LIBRARY AND
# GSTREAMER_gstnetbuffer_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstreamer_LIBRARY AND
# GSTREAMER_gstriff_LIBRARY AND GSTREAMER_gstrtp_LIBRARY AND GSTREAMER_gstrtsp_LIBRARY AND GSTREAMER_gstsdp_LIBRARY AND
# GSTREAMER_gsttag_LIBRARY AND GSTREAMER_gstvideo_LIBRARY)
SET(GSTREAMER_INCLUDE_DIR ${GSTREAMER_gst_INCLUDE_DIR} ${GSTREAMER_gstconfig_INCLUDE_DIR})
list(REMOVE_DUPLICATES GSTREAMER_INCLUDE_DIR)
SET(GSTREAMER_LIBRARIES ${GSTREAMER_gstaudio_LIBRARY} ${GSTREAMER_gstbase_LIBRARY}
${GSTREAMER_gstcontroller_LIBRARY} ${GSTREAMER_gstdataprotocol_LIBRARY} ${GSTREAMER_gstinterfaces_LIBRARY}
${GSTREAMER_gstnet_LIBRARY} ${GSTREAMER_gstnetbuffer_LIBRARY} ${GSTREAMER_gstpbutils_LIBRARY}
${GSTREAMER_gstreamer_LIBRARY} ${GSTREAMER_gstriff_LIBRARY} ${GSTREAMER_gstrtp_LIBRARY}
${GSTREAMER_gstrtsp_LIBRARY} ${GSTREAMER_gstsdp_LIBRARY} ${GSTREAMER_gsttag_LIBRARY} ${GSTREAMER_gstvideo_LIBRARY})
list(REMOVE_DUPLICATES GSTREAMER_LIBRARIES)
SET(GSTREAMER_FOUND TRUE)
#ENDIF (GSTREAMER_gst_INCLUDE_DIR AND GSTREAMER_gstconfig_INCLUDE_DIR AND
# GSTREAMER_gstaudio_LIBRARY AND GSTREAMER_gstbase_LIBRARY AND GSTREAMER_gstcontroller_LIBRARY AND
# GSTREAMER_gstdataprotocol_LIBRARY AND GSTREAMER_gstinterfaces_LIBRARY AND GSTREAMER_gstnet_LIBRARY AND
# GSTREAMER_gstnetbuffer_LIBRARY AND GSTREAMER_gstpbutils_LIBRARY AND GSTREAMER_gstreamer_LIBRARY AND
# GSTREAMER_gstriff_LIBRARY AND GSTREAMER_gstrtp_LIBRARY AND GSTREAMER_gstrtsp_LIBRARY AND GSTREAMER_gstsdp_LIBRARY AND
# GSTREAMER_gsttag_LIBRARY AND GSTREAMER_gstvideo_LIBRARY)

View File

@ -1,3 +1,7 @@
if (NOT LIBICONV_DIR)
set (LIBICONV_DIR "" CACHE PATH "Directory containing iconv.h")
endif ()
FILE(TO_CMAKE_PATH "$ENV{LIBICONV_DIR}" TRY1_DIR) FILE(TO_CMAKE_PATH "$ENV{LIBICONV_DIR}" TRY1_DIR)
FILE(TO_CMAKE_PATH "${LIBICONV_DIR}" TRY2_DIR) FILE(TO_CMAKE_PATH "${LIBICONV_DIR}" TRY2_DIR)
FILE(GLOB LIBICONV_DIR ${TRY1_DIR} ${TRY2_DIR}) FILE(GLOB LIBICONV_DIR ${TRY1_DIR} ${TRY2_DIR})
@ -5,6 +9,7 @@ FILE(GLOB LIBICONV_DIR ${TRY1_DIR} ${TRY2_DIR})
FIND_PATH(LIBICONV_INCLUDE_DIR iconv.h FIND_PATH(LIBICONV_INCLUDE_DIR iconv.h
PATHS ${LIBICONV_DIR}/include /usr/local/include /usr/include PATHS ${LIBICONV_DIR}/include /usr/local/include /usr/include
ENV INCLUDE DOC "Directory containing iconv.h include file") ENV INCLUDE DOC "Directory containing iconv.h include file")
mark_as_advanced (LIBICONV_INCLUDE_DIR)
IF (LIBICONV_INCLUDE_DIR) IF (LIBICONV_INCLUDE_DIR)
SET(LIBICONV_FOUND TRUE) SET(LIBICONV_FOUND TRUE)

View File

@ -1,3 +1,7 @@
if (NOT LIBXML2_DIR)
set (LIBXML2_DIR "" CACHE PATH "Directory containing libxml")
endif ()
FILE(TO_CMAKE_PATH "$ENV{LIBXML2_DIR}" TRY1_DIR) FILE(TO_CMAKE_PATH "$ENV{LIBXML2_DIR}" TRY1_DIR)
FILE(TO_CMAKE_PATH "${LIBXML2_DIR}" TRY2_DIR) FILE(TO_CMAKE_PATH "${LIBXML2_DIR}" TRY2_DIR)
FILE(GLOB LIBXML2_DIR ${TRY1_DIR} ${TRY2_DIR}) FILE(GLOB LIBXML2_DIR ${TRY1_DIR} ${TRY2_DIR})
@ -5,6 +9,7 @@ FILE(GLOB LIBXML2_DIR ${TRY1_DIR} ${TRY2_DIR})
FIND_PATH(LIBXML2_INCLUDE_DIR libxml/parser.h FIND_PATH(LIBXML2_INCLUDE_DIR libxml/parser.h
PATHS ${LIBXML2_DIR}/include ${LIBXML2_DIR}/include/libxml2 /usr/local/include/libxml2 /usr/include/libxml2 PATHS ${LIBXML2_DIR}/include ${LIBXML2_DIR}/include/libxml2 /usr/local/include/libxml2 /usr/include/libxml2
ENV INCLUDE DOC "Directory containing libxml/parser.h include file") ENV INCLUDE DOC "Directory containing libxml/parser.h include file")
mark_as_advanced (LIBXML2_INCLUDE_DIR)
IF (LIBXML2_INCLUDE_DIR) IF (LIBXML2_INCLUDE_DIR)
SET(LIBXML2_FOUND TRUE) SET(LIBXML2_FOUND TRUE)

View File

@ -1,17 +1,50 @@
FILE(TO_CMAKE_PATH "$ENV{NIIMAQ_DIR}" TRY1_DIR) # - Try to find National Instruments IMAQ
FILE(TO_CMAKE_PATH "${NIIMAQ_DIR}" TRY2_DIR) # Once done this will define
FILE(GLOB NIIMAQ_DIR ${TRY1_DIR} ${TRY2_DIR}) #
# NIIMAQ_FOUND - system has NI-IMAQ
# NIIMAQ_INCLUDE_DIR - the NI-IMAQ include directory
# NIIMAQ_LIBRARIES - the libraries needed to use NI-IMAQ
FIND_PATH(NIIMAQ_INCLUDE_DIR niimaq.h # Copyright (c) 2006, Tim Beaulen <tbscope@gmail.com>
PATHS "${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Include" "${NIIMAQ_DIR}/Include" # Copyright (c) 2010, United States Government, Joshua M. Doe <oss@nvl.army.mil>
ENV INCLUDE DOC "Directory containing niimaq.h include file") #
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
FIND_LIBRARY(NIIMAQ_LIBRARY NAMES imaq IF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES)
PATHS "${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Lib32/MSVC" "${NIIMAQ_DIR}/Lib32/MSVC" # in cache already
ENV LIB SET(NIIMAQ_FIND_QUIETLY TRUE)
DOC "niimaq library to link with" ELSE (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES)
NO_SYSTEM_ENVIRONMENT_PATH) SET(NIIMAQ_FIND_QUIETLY FALSE)
ENDIF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARIES)
IF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARY) IF (NOT NIIMAQ_DIR)
SET(NIIMAQ_FOUND TRUE) SET (NIIMAQ_DIR "C:/Program Files/National Instruments" CACHE PATH "Directory containing NI includes and libraries")
ENDIF (NIIMAQ_INCLUDE_DIR AND NIIMAQ_LIBRARY) ENDIF (NOT NIIMAQ_DIR)
FIND_PATH (NIIMAQ_INCLUDE_DIR niimaq.h
PATHS
"${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Include"
DOC "Directory containing niimaq.h include file")
FIND_LIBRARY (NIIMAQ_LIBRARIES NAMES imaq
PATHS
"${NIIMAQ_DIR}/Shared/ExternalCompilerSupport/C/Lib32/MSVC"
DOC "niimaq library to link with")
IF (NIIMAQ_INCLUDE_DIR)
#MESSAGE(STATUS "DEBUG: Found NI-IMAQ include dir: ${NIIMAQ_INCLUDE_DIR}")
ELSE (NIIMAQ_INCLUDE_DIR)
MESSAGE(STATUS "NI-IMAQ: WARNING: include dir not found")
ENDIF (NIIMAQ_INCLUDE_DIR)
IF (NIIMAQ_LIBRARIES)
#MESSAGE(STATUS "DEBUG: Found NI-IMAQ library: ${NIIMAQ_LIBRARIES}")
ELSE (NIIMAQ_LIBRARIES)
MESSAGE(STATUS "NI-IMAQ: WARNING: library not found")
ENDIF (NIIMAQ_LIBRARIES)
INCLUDE (FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS (NIIMAQ DEFAULT_MSG NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)
MARK_AS_ADVANCED(NIIMAQ_INCLUDE_DIR NIIMAQ_LIBRARIES)

View File

@ -1,20 +1,24 @@
add_definitions(-DHAVE_CONFIG_H) add_definitions (-DHAVE_CONFIG_H)
set ( SOURCES set (SOURCES
main.c main.c
gstvideolevels.c ) gstvideolevels.c)
set ( HEADERS set (HEADERS
gstvideolevels.h ) gstvideolevels.h)
include_directories(AFTER include_directories(AFTER
. ) . )
add_library ( libgstvision MODULE add_library ( libgstvision MODULE
${SOURCES} ${SOURCES}
${HEADERS} ) ${HEADERS})
target_link_libraries ( libgstvision target_link_libraries ( libgstvision
general ${GLIB2_LIBRARIES} general ${GLIB2_LIBRARIES}
general ${GSTREAMER_LIBRARIES} ) general ${GSTREAMER_LIBRARIES}
general ${GSTREAMER_BASE_LIBRARY}
general ${GSTREAMER_VIDEO_LIBRARY})
install (TARGETS libgstnvl
LIBRARY DESTINATION lib/gstreamer-0.10)

View File

@ -5,17 +5,16 @@ set LIBICONV_DIR=%GSTREAMER_DIR%
set GLIB2_DIR=%GSTREAMER_DIR% set GLIB2_DIR=%GSTREAMER_DIR%
set NIIMAQ_DIR=C:\Program Files\National Instruments set NIIMAQ_DIR=C:\Program Files\National Instruments
rem Plugins will be installed under %CMAKE_PREFIX_PATH%\lib\gstreamer-0.10
set CMAKE_PREFIX_PATH=C:\gstreamer
rem cd mingw32 rem cd mingw32
rem del *ache* && cmake -G "MinGW Makefiles" .. rem del *ache* && cmake -G "MinGW Makefiles" ..
rem cd vs8 rem cd vs9
rem del *ache* && cmake -G "Visual Studio 8 2005" .. rem del *ache* && cmake -G "Visual Studio 9 2008" ..
cd vs9 rem cmd
del *ache* && cmake -G "Visual Studio 9 2008" ..
rem cd codeblocks
rem del *ache* && cmake -G "CodeBlocks - MinGW Makefiles" ..
cmd
rem ######################################################################## rem ########################################################################
cmake-gui

View File

@ -17,4 +17,5 @@ add_library ( libgstimaq MODULE
target_link_libraries ( libgstimaq target_link_libraries ( libgstimaq
general ${GLIB2_LIBRARIES} general ${GLIB2_LIBRARIES}
general ${GSTREAMER_LIBRARIES} general ${GSTREAMER_LIBRARIES}
general ${NIIMAQ_LIBRARY} ) general ${GSTREAMER_BASE_LIBRARY}
general ${NIIMAQ_LIBRARIES} )