Hi!
Please review the attached version of FindGStreamer.cmake. What changed:
* Support find_package(GStreamer "0.10.20") (including EXACT)
* Find GStreamer if pkg-config information is not available (added
PATH_SUFFIXES to find_path)
* Do not print debug information, fphsa prints enough.
* Use lowercase.
Should we add GSTREAMER_INCLUDE_DIRS to follow cmake/Modules/readme.txt
recommendations?
--
Yury G. Kudryashov,
mailto: [email protected]
# - Try to find GStreamer
# Once done this will define
#
# GSTREAMER_FOUND - system has GStreamer
# GSTREAMER_VERSION - version as reported by gst/gstversion.h
# GSTREAMER_INCLUDE_DIR - the GStreamer include directory
# GSTREAMER_LIBRARIES - the libraries needed to use GStreamer
# GSTREAMER_DEFINITIONS - Compiler switches required for using GStreamer
# Copyright (c) 2006, Tim Beaulen <[email protected]>
# Copyright (c) 2011, Yury G. Kudryashov <[email protected]>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
if( NOT GStreamer_FIND_VERSION )
set(GStreamer_FIND_VERSION_MAJOR "0")
set(GStreamer_FIND_VERSION_MINOR "10")
set(GStreamer_FIND_VERSION_PATCH "0")
set(GStreamer_FIND_VERSION "0.10.0")
endif()
find_package(PkgConfig)
if(GStreamer_FIND_VERSION_EXACT)
pkg_check_modules(PC_GSTREAMER QUIET "gstreamer-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}=${GStreamer_FIND_VERSION}")
else()
pkg_check_modules(PC_GSTREAMER QUIET "gstreamer-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}>=${GStreamer_FIND_VERSION}")
endif()
set(GSTREAMER_DEFINITIONS ${PC_GSTREAMER_CFLAGS_OTHER})
find_path(GSTREAMER_INCLUDE_DIR gst/gst.h
HINTS
${PC_GSTREAMER_INCLUDEDIR}
${PC_GSTREAMER_INCLUDE_DIRS}
PATH_SUFFIXES
gstreamer-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}
)
# TODO: Store found version number in cache or not?
if(GSTREAMER_INCLUDE_DIR)
file(READ ${GSTREAMER_INCLUDE_DIR}/gst/gstversion.h GST_VERSION_CONTENT)
string(REGEX MATCH "#define GST_VERSION_MAJOR *\\([0-9]*\\)\n" _GST_VERSION_MAJOR_MATCH ${GST_VERSION_CONTENT})
string(REGEX MATCH "#define GST_VERSION_MINOR *\\([0-9]*\\)\n" _GST_VERSION_MINOR_MATCH ${GST_VERSION_CONTENT})
string(REGEX MATCH "#define GST_VERSION_MICRO *\\([0-9]*\\)\n" _GST_VERSION_PATCH_MATCH ${GST_VERSION_CONTENT})
string(REGEX REPLACE "#define GST_VERSION_MAJOR *\\(([0-9]*)\\)\n" "\\1" GSTREAMER_VERSION_MAJOR ${_GST_VERSION_MAJOR_MATCH})
string(REGEX REPLACE "#define GST_VERSION_MINOR *\\(([0-9]*)\\)\n" "\\1" GSTREAMER_VERSION_MINOR ${_GST_VERSION_MINOR_MATCH})
string(REGEX REPLACE "#define GST_VERSION_MICRO *\\(([0-9]*)\\)\n" "\\1" GSTREAMER_VERSION_PATCH ${_GST_VERSION_PATCH_MATCH})
set(GSTREAMER_VERSION "${GSTREAMER_VERSION_MAJOR}.${GSTREAMER_VERSION_MINOR}.${GSTREAMER_VERSION_PATCH}")
endif()
find_library(GSTREAMER_LIBRARIES NAMES gstreamer-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}
HINTS
${PC_GSTREAMER_LIBDIR}
${PC_GSTREAMER_LIBRARY_DIRS}
)
find_library(GSTREAMER_BASE_LIBRARY NAMES gstbase-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}
HINTS
${PC_GSTREAMER_LIBDIR}
${PC_GSTREAMER_LIBRARY_DIRS}
)
find_library(GSTREAMER_INTERFACE_LIBRARY NAMES gstinterfaces-${GStreamer_FIND_VERSION_MAJOR}.${GStreamer_FIND_VERSION_MINOR}
HINTS
${PC_GSTREAMER_LIBDIR}
${PC_GSTREAMER_LIBRARY_DIRS}
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GStreamer
REQUIRED_VARS GSTREAMER_LIBRARIES GSTREAMER_INCLUDE_DIR
GSTREAMER_BASE_LIBRARY GSTREAMER_INTERFACE_LIBRARY
VERSION_VAR GSTREAMER_VERSION)
mark_as_advanced(GSTREAMER_INCLUDE_DIR GSTREAMER_LIBRARIES GSTREAMER_BASE_LIBRARY GSTREAMER_INTERFACE_LIBRARY)
_______________________________________________
Kde-buildsystem mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kde-buildsystem