File: FindVLC.cmake

package info (click to toggle)
kaffeine 2.0.18-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 12,652 kB
  • sloc: cpp: 27,986; ansic: 535; xml: 501; sh: 260; makefile: 4
file content (117 lines) | stat: -rw-r--r-- 3,794 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
###############################################################################
# CMake module to search for the vlc libraries.
#
# WARNING: This module is experimental work in progress.
#
# This module defines:
#  VLC_INCLUDE_DIRS        = include dirs to be used when using the vlc library.
#  VLC_LIBRARY_DIRS        = directories where the libraries are located.
#  VLC_LIBRARY             = full path to the vlc library.
#  VLC_CORE_LIBRARY        = full path to the vlccore library.
#  VLC_VERSION_STRING      = the vlc version found
#       VLC_VERSION_MAJOR
#       VLC_VERSION_MINOR
#       VLC_VERSION_PATCH
#       VLC_VERSION_EXTRA
#  VLC_FOUND               = true if vlc was found.
#
# This module respects:
#  LIB_SUFFIX         = (64|32|"") Specifies the suffix for the lib directory
#
# Copyright (c) 2011 Michael Jansen <info@michael-jansen.biz>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
###############################################################################

#
### Global Configuration Section
#
SET(_VLC_REQUIRED_VARS VLC_INCLUDE_DIR VLC_LIBRARY)
## FIXME
# SET(_VLC_REQUIRED_VARS VLC_INCLUDE_DIR VLC_LIBRARY VLC_VERSION_MAJOR VLC_VERSION_MINOR)

#
### VLC uses pkgconfig.
#
find_package(PkgConfig)
if(PKG_CONFIG_FOUND)
    pkg_check_modules(PC_VLC QUIET libvlc)
endif(PKG_CONFIG_FOUND)

#
### Look for the include files.
#
find_path(
    VLC_INCLUDE_DIR
    NAMES vlc/vlc.h
    HINTS
        ${PC_VLC_INCLUDEDIR}
        ${PC_VLC_INCLUDE_DIRS} # Unused for vlc but anyway
    DOC "VLC include directory"
    )
mark_as_advanced(VLC_INCLUDE_DIR)
set(VLC_INCLUDE_DIRS ${VLC_INCLUDE_DIR})

#
### Look for the libraries (vlc and vlcsore)
#
find_library(
    VLC_LIBRARY
    NAMES vlc
    HINTS
        ${PC_VLC_LIBDIR}
        ${PC_VLC_LIBRARY_DIRS} # Unused for vlc but anyway
    PATH_SUFFIXES lib${LIB_SUFFIX}
    )
get_filename_component(_VLC_LIBRARY_DIR ${VLC_LIBRARY} PATH)
mark_as_advanced(VLC_LIBRARY )

find_library(
    VLC_CORE_LIBRARY
    NAMES vlccore
    HINTS
        ${PC_VLC_LIBDIR}
        ${PC_VLC_LIBRARY_DIRS}
    PATH_SUFFIXES lib${LIB_SUFFIX}
    )
get_filename_component(_VLC_CORE_LIBRARY_DIR ${VLC_CORE_LIBRARY} PATH)
mark_as_advanced(VLC_CORE_LIBRARY )

set(VLC_LIBRARY_DIRS _VLC_CORE_LIBRARY_DIR _VLC_LIBRARY_DIR)
list(REMOVE_DUPLICATES VLC_LIBRARY_DIRS)
mark_as_advanced(VLC_LIBRARY_DIRS)

#
### Now parse the version
#
if(VLC_INCLUDE_DIR)
    if(EXISTS "${VLC_INCLUDE_DIR}/vlc/libvlc_version.h" )
        file( STRINGS "${VLC_INCLUDE_DIR}/vlc/libvlc_version.h" VLC_INFO_H REGEX "^# *define LIBVLC_VERSION_.*\\([0-9]+\\).*$")
        string(REGEX REPLACE ".*LIBVLC_VERSION_MAJOR +\\(([0-9]+)\\).*" "\\1"    VLC_VERSION_MAJOR "${VLC_INFO_H}")
        string(REGEX REPLACE ".*LIBVLC_VERSION_MINOR +\\(([0-9]+)\\).*" "\\1"    VLC_VERSION_MINOR "${VLC_INFO_H}")
        string(REGEX REPLACE ".*LIBVLC_VERSION_REVISION +\\(([0-9]+)\\).*" "\\1" VLC_VERSION_PATCH "${VLC_INFO_H}")
        string(REGEX REPLACE ".*LIBVLC_VERSION_EXTRA +\\(([0-9]+)\\).*" "\\1" VLC_VERSION_EXTRA "${VLC_INFO_H}")
        set(VLC_VERSION_STRING "${VLC_VERSION_MAJOR}.${VLC_VERSION_MINOR}.${VLC_VERSION_PATCH}.${VLC_VERSION_EXTRA}")
        mark_as_advanced(
            VLC_VERSION_MAJOR
            VLC_VERSION_MINOR
            VLC_VERSION_PATCH
            VLC_VERSION_EXTRA
            VLC_VERSION_STRING)
    else()
        message(FATAL_ERROR "Could not find ${VLC_INCLUDE_DIR}/vlc/libvlc_version.h")
    endif()
endif()

#
### Check if everything was found and if the version is sufficient.
#
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
    VLC
    REQUIRED_VARS ${_VLC_REQUIRED_VARS}
    VERSION_VAR VLC_VERSION_STRING
    )