added libav to cmake
This commit is contained in:
parent
5673c1665a
commit
7aea1acf44
3 changed files with 161 additions and 0 deletions
65
CMakeFFmpegLibavMacros.cmake
Normal file
65
CMakeFFmpegLibavMacros.cmake
Normal file
|
@ -0,0 +1,65 @@
|
|||
#-------------------------------------------------------------------
|
||||
# FindFFmpeg.cmake and FindLibAV.cmake are dependent on this file.
|
||||
#
|
||||
# Redistribution and use is allowed according to the terms of the BSD license.
|
||||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file
|
||||
#
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
### Macro: set_component_found
|
||||
#
|
||||
# Marks the given component as found if both *_LIBRARIES AND *_INCLUDE_DIRS is present.
|
||||
#
|
||||
macro(set_component_found _component )
|
||||
if(${_component}_LIBRARIES AND ${_component}_INCLUDE_DIRS)
|
||||
# message(STATUS " - ${_component} found.")
|
||||
set(${_component}_FOUND TRUE)
|
||||
else()
|
||||
# message(STATUS " - ${_component} not found.")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
#
|
||||
### Macro: find_component
|
||||
#
|
||||
# Finds each component's library file and include directory, and sets
|
||||
# *_LIBRARIES and *_INCLUDE_DIRS accordingly. Additionally detects each
|
||||
# component's version and sets *_VERSION_STRING.
|
||||
#
|
||||
macro(find_component _component _library _header _version)
|
||||
find_path(${_component}_INCLUDE_DIRS ${_header}
|
||||
PATH_SUFFIXES
|
||||
ffmpeg
|
||||
libav
|
||||
include
|
||||
)
|
||||
|
||||
find_library(${_component}_LIBRARIES
|
||||
NAMES ${_library}
|
||||
PATH_SUFFIXES
|
||||
lib
|
||||
)
|
||||
|
||||
if(${_component}_INCLUDE_DIRS AND EXISTS "${${_component}_INCLUDE_DIRS}/${_version}")
|
||||
file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_MAJOR_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MAJOR[ \t]+[0-9]+$")
|
||||
file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_MINOR_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MINOR[ \t]+[0-9]+$")
|
||||
file(STRINGS "${${_component}_INCLUDE_DIRS}/${_version}" ${_component}_VERSION_PATCH_LINE REGEX "^#define[ \t]+LIB${_component}_VERSION_MICRO[ \t]+[0-9]+$")
|
||||
string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MAJOR[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_MAJOR "${${_component}_VERSION_MAJOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MINOR[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_MINOR "${${_component}_VERSION_MINOR_LINE}")
|
||||
string(REGEX REPLACE "^#define[ \t]+LIB${_component}_VERSION_MICRO[ \t]+([0-9]+)$" "\\1" ${_component}_VERSION_PATCH "${${_component}_VERSION_PATCH_LINE}")
|
||||
set(${_component}_VERSION_STRING ${${_component}_VERSION_MAJOR}.${${_component}_VERSION_MINOR}.${${_component}_VERSION_PATCH})
|
||||
unset(${_component}_VERSION_MAJOR_LINE)
|
||||
unset(${_component}_VERSION_MINOR_LINE)
|
||||
unset(${_component}_VERSION_PATCH_LINE)
|
||||
unset(${_component}_VERSION_MAJOR)
|
||||
unset(${_component}_VERSION_MINOR)
|
||||
unset(${_component}_VERSION_PATCH)
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(${_component}
|
||||
REQUIRED_VARS ${_component}_LIBRARIES ${_component}_INCLUDE_DIRS
|
||||
VERSION_VAR ${_component}_VERSION_STRING
|
||||
)
|
||||
|
||||
set_component_found(${_component})
|
||||
endmacro()
|
Loading…
Add table
Add a link
Reference in a new issue