Warning, /multimedia/elisa/cmake/FindLIBVLC.cmake is written in an unsupported language. File is not indexed.

0001 # CMake module to search for LIBVLC (VLC library)
0002 #
0003 # SPDX-FileCopyrightText: 2010 (c) Rohit Yadav <rohityadav89@gmail.com>
0004 # SPDX-FileCopyrightText: 2011 (c) Harald Sitter <sitter@kde.org>
0005 #
0006 # SPDX-License-Identifier: BSD-3-Clause
0007 #
0008 # Redistribution and use is allowed according to the terms of the BSD license.
0009 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0010 #
0011 # If it's found it sets LIBVLC_FOUND to TRUE
0012 # and following variables are set:
0013 #    LIBVLC_INCLUDE_DIR
0014 #    LIBVLC_LIBRARY
0015 #    LIBVLC_VERSION
0016 
0017 set(LIBVLC_INCLUDE_DIR LIBVLC_INCLUDE_DIR-NOTFOUND)
0018 set(LIBVLC_LIBRARY LIBVLC_LIBRARY-NOTFOUND)
0019 set(LIBVLCCORE_LIBRARY LIBVLCCORE_LIBRARY-NOTFOUND)
0020 
0021 if(NOT LIBVLC_MIN_VERSION)
0022     set(LIBVLC_MIN_VERSION "0.0")
0023 endif(NOT LIBVLC_MIN_VERSION)
0024 
0025 # find_path and find_library normally search standard locations
0026 # before the specified paths. To search non-standard paths first,
0027 # FIND_* is invoked first with specified paths and NO_DEFAULT_PATH
0028 # and then again with no specified paths to search the default
0029 # locations. When an earlier FIND_* succeeds, subsequent FIND_*s
0030 # searching for the same item do nothing.
0031 
0032 if (NOT WIN32)
0033     find_package(PkgConfig)
0034     pkg_check_modules(PC_LIBVLC libvlc)
0035     set(LIBVLC_DEFINITIONS ${PC_LIBVLC_CFLAGS_OTHER})
0036 endif (NOT WIN32)
0037 
0038 #Put here path to custom location
0039 #example: /home/user/vlc/include etc..
0040 find_path(LIBVLC_INCLUDE_DIR vlc/vlc.h
0041 HINTS "$ENV{LIBVLC_INCLUDE_PATH}" ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS}
0042 PATHS
0043     "$ENV{LIB_DIR}/include"
0044     "$ENV{LIB_DIR}/include/vlc"
0045     "/usr/include"
0046     "/usr/include/vlc"
0047     "/usr/local/include"
0048     "/usr/local/include/vlc"
0049     #mingw
0050     c:/msys/local/include
0051 )
0052 find_path(LIBVLC_INCLUDE_DIR PATHS "${CMAKE_INCLUDE_PATH}/vlc" NAMES vlc.h
0053         HINTS ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS})
0054 
0055 #Put here path to custom location
0056 #example: /home/user/vlc/lib etc..
0057 find_library(LIBVLC_LIBRARY NAMES vlc libvlc
0058 HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
0059 PATHS
0060     "$ENV{LIB_DIR}/lib"
0061     #mingw
0062     c:/msys/local/lib
0063 )
0064 find_library(LIBVLC_LIBRARY NAMES vlc libvlc)
0065 find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore
0066 HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
0067 PATHS
0068     "$ENV{LIB_DIR}/lib"
0069     #mingw
0070     c:/msys/local/lib
0071 )
0072 find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore)
0073 
0074 set(LIBVLC_VERSION ${PC_LIBVLC_VERSION})
0075 if (LIBVLC_INCLUDE_DIR AND NOT LIBVLC_VERSION)
0076     file(READ "${LIBVLC_INCLUDE_DIR}/vlc/libvlc_version.h" _libvlc_version_h)
0077 
0078     string(REGEX MATCH "# define LIBVLC_VERSION_MAJOR +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
0079     set(_version_major "${CMAKE_MATCH_1}")
0080 
0081     string(REGEX MATCH "# define LIBVLC_VERSION_MINOR +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
0082     set(_version_minor "${CMAKE_MATCH_1}")
0083 
0084     string(REGEX MATCH "# define LIBVLC_VERSION_REVISION +\\(([0-9])\\)" _dummy "${_libvlc_version_h}")
0085     set(_version_revision "${CMAKE_MATCH_1}")
0086 
0087     # Optionally, one could also parse LIBVLC_VERSION_EXTRA, but it does not
0088     # seem to be used by libvlc.pc.
0089 
0090     set(LIBVLC_VERSION "${_version_major}.${_version_minor}.${_version_revision}")
0091 endif (LIBVLC_INCLUDE_DIR AND NOT LIBVLC_VERSION)
0092 
0093 if (LIBVLC_INCLUDE_DIR AND LIBVLC_LIBRARY AND LIBVLCCORE_LIBRARY)
0094 set(LIBVLC_FOUND TRUE)
0095 endif (LIBVLC_INCLUDE_DIR AND LIBVLC_LIBRARY AND LIBVLCCORE_LIBRARY)
0096 
0097 if (LIBVLC_VERSION VERSION_LESS "${LIBVLC_MIN_VERSION}")
0098     message(WARNING "LibVLC version not found: version searched: ${LIBVLC_MIN_VERSION}, found ${LIBVLC_VERSION}\nUnless you are on Windows this is bound to fail.")
0099 # TODO: only activate once version detection can be garunteed (which is currently not the case on windows)
0100 #     set(LIBVLC_FOUND FALSE)
0101 endif (LIBVLC_VERSION VERSION_LESS "${LIBVLC_MIN_VERSION}")
0102 
0103 if (LIBVLC_FOUND)
0104     if (NOT LIBVLC_FIND_QUIETLY)
0105         message(STATUS "Found LibVLC include-dir path: ${LIBVLC_INCLUDE_DIR}")
0106         message(STATUS "Found LibVLC library path:${LIBVLC_LIBRARY}")
0107         message(STATUS "Found LibVLCcore library path:${LIBVLCCORE_LIBRARY}")
0108         message(STATUS "Found LibVLC version: ${LIBVLC_VERSION} (searched for: ${LIBVLC_MIN_VERSION})")
0109     endif (NOT LIBVLC_FIND_QUIETLY)
0110 else (LIBVLC_FOUND)
0111     if (LIBVLC_FIND_REQUIRED)
0112         message(FATAL_ERROR "Could not find LibVLC")
0113     endif (LIBVLC_FIND_REQUIRED)
0114 endif (LIBVLC_FOUND)