mirror of
https://github.com/Kitware/CMake.git
synced 2025-05-08 22:37:04 +08:00

- Modules documentation updated and synced. - Added examples section. - FindMPEG and FindMPEG2 modules behave very much the same except that FindMPEG2 also adds the SDL library as a dependency. Added notes regarding this and recommended to use the FindMPEG2 as it also links in the SDL library at the time of writing.
86 lines
2.3 KiB
CMake
86 lines
2.3 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindMPEG2
|
|
---------
|
|
|
|
Finds the native MPEG2 library (libmpeg2).
|
|
|
|
.. note::
|
|
|
|
Depending on how the native libmpeg2 library is built and installed, it may
|
|
depend on the SDL (Simple DirectMedia Layer) library. If SDL is found, this
|
|
module includes it in its usage requirements when used.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
``MPEG2_FOUND``
|
|
Boolean indicating whether the libmpeg2 library is found.
|
|
``MPEG2_LIBRARIES``
|
|
Libraries needed to link against to use libmpeg2.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may be also set:
|
|
|
|
``MPEG2_INCLUDE_DIR``
|
|
The directory containing the ``mpeg2.h`` and related headers needed to use
|
|
libmpeg2 library.
|
|
``MPEG2_mpeg2_LIBRARY``
|
|
The path to the libmpeg2 library.
|
|
``MPEG2_vo_LIBRARY``
|
|
The path to the vo (Video Out) library.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Finding libmpeg2 library and creating an imported interface target for linking
|
|
it to a project target:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(MPEG2)
|
|
|
|
if(MPEG2_FOUND AND NOT TARGET MPEG2::MPEG2)
|
|
add_library(MPEG2::MPEG2 INTERFACE IMPORTED)
|
|
set_target_properties(
|
|
MPEG2::MPEG2
|
|
PROPERTIES
|
|
INTERFACE_LINK_LIBRARIES "${MPEG2_LIBRARIES}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${MPEG2_INCLUDE_DIR}"
|
|
)
|
|
endif()
|
|
|
|
target_link_libraries(project_target PRIVATE MPEG2::MPEG2)
|
|
#]=======================================================================]
|
|
|
|
find_path(MPEG2_INCLUDE_DIR
|
|
NAMES mpeg2.h mpeg2dec/mpeg2.h)
|
|
|
|
find_library(MPEG2_mpeg2_LIBRARY mpeg2)
|
|
|
|
find_library(MPEG2_vo_LIBRARY vo)
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(MPEG2 DEFAULT_MSG MPEG2_mpeg2_LIBRARY MPEG2_INCLUDE_DIR)
|
|
|
|
if(MPEG2_FOUND)
|
|
set(MPEG2_LIBRARIES ${MPEG2_mpeg2_LIBRARY})
|
|
if(MPEG2_vo_LIBRARY)
|
|
list(APPEND MPEG2_LIBRARIES ${MPEG2_vo_LIBRARY})
|
|
endif()
|
|
|
|
# Some native mpeg2 installations will depend on libSDL. If found, add it in.
|
|
find_package(SDL)
|
|
if(SDL_FOUND)
|
|
set( MPEG2_LIBRARIES ${MPEG2_LIBRARIES} ${SDL_LIBRARY})
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(MPEG2_INCLUDE_DIR MPEG2_mpeg2_LIBRARY MPEG2_vo_LIBRARY)
|