File: FindVorbis.cmake

package info (click to toggle)
libsamplerate 0.2.2-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,444 kB
  • sloc: ansic: 371,377; sh: 121; makefile: 111
file content (204 lines) | stat: -rw-r--r-- 5,671 bytes parent folder | download | duplicates (3)
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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#[=======================================================================[.rst:
FindVorbis
----------

Finds the native vorbis, vorbisenc amd vorbisfile includes and libraries.

Imported Targets
^^^^^^^^^^^^^^^^

This module provides the following imported targets, if found:

``Vorbis::vorbis``
  The Vorbis library
``Vorbis::vorbisenc``
  The VorbisEnc library
``Vorbis::vorbisfile``
  The VorbisFile library

Result Variables
^^^^^^^^^^^^^^^^

This will define the following variables:

``Vorbis_Vorbis_INCLUDE_DIRS``
  List of include directories when using vorbis.
``Vorbis_Enc_INCLUDE_DIRS``
  List of include directories when using vorbisenc.
``Vorbis_File_INCLUDE_DIRS``
  List of include directories when using vorbisfile.
``Vorbis_Vorbis_LIBRARIES``
  List of libraries when using vorbis.
``Vorbis_Enc_LIBRARIES``
  List of libraries when using vorbisenc.
``Vorbis_File_LIBRARIES``
  List of libraries when using vorbisfile.
``Vorbis_FOUND``
  True if vorbis and requested components found.
``Vorbis_Vorbis_FOUND``
  True if vorbis found.
``Vorbis_Enc_FOUND``
  True if vorbisenc found.
``Vorbis_Enc_FOUND``
  True if vorbisfile found.

Cache variables
^^^^^^^^^^^^^^^

The following cache variables may also be set:

``Vorbis_Vorbis_INCLUDE_DIR``
  The directory containing ``vorbis/vorbis.h``.
``Vorbis_Enc_INCLUDE_DIR``
  The directory containing ``vorbis/vorbisenc.h``.
``Vorbis_File_INCLUDE_DIR``
  The directory containing ``vorbis/vorbisenc.h``.
``Vorbis_Vorbis_LIBRARY``
  The path to the vorbis library.
``Vorbis_Enc_LIBRARY``
  The path to the vorbisenc library.
``Vorbis_File_LIBRARY``
  The path to the vorbisfile library.

Hints
^^^^^

A user may set ``Vorbis_ROOT`` to a vorbis installation root to tell this module where to look.

#]=======================================================================]

if(Vorbis_Vorbis_INCLUDE_DIR)
  # Already in cache, be silent
  set(Vorbis_FIND_QUIETLY TRUE)
endif()

set(Vorbis_Vorbis_FIND_QUIETLY TRUE)
set(Vorbis_Enc_FIND_QUIETLY TRUE)
set(Vorbis_File_FIND_QUIETLY TRUE)

find_package(Ogg QUIET)

find_package(PkgConfig QUIET)
pkg_check_modules(PC_Vorbis_Vorbis QUIET vorbis)
pkg_check_modules(PC_Vorbis_Enc QUIET vorbisenc)
pkg_check_modules(PC_Vorbis_File QUIET vorbisfile)

set(Vorbis_VERSION ${PC_Vorbis_Vorbis_VERSION})

find_path(Vorbis_Vorbis_INCLUDE_DIR vorbis/codec.h
  HINTS
    ${PC_Vorbis_Vorbis_INCLUDEDIR}
    ${PC_Vorbis_Vorbis_INCLUDE_DIRS}
    ${Vorbis_ROOT})

find_path(Vorbis_Enc_INCLUDE_DIR vorbis/vorbisenc.h
  HINTS
    ${PC_Vorbis_Enc_INCLUDEDIR}
    ${PC_Vorbis_Enc_INCLUDE_DIRS}
    ${Vorbis_ROOT})

find_path(Vorbis_File_INCLUDE_DIR vorbis/vorbisfile.h
  HINTS
    ${PC_Vorbis_File_INCLUDEDIR}
    ${PC_Vorbis_File_INCLUDE_DIRS}
    ${Vorbis_ROOT})

find_library(Vorbis_Vorbis_LIBRARY
  NAMES
    vorbis
    vorbis_static
    libvorbis
    libvorbis_static
  HINTS
    ${PC_Vorbis_Vorbis_LIBDIR}
    ${PC_Vorbis_Vorbis_LIBRARY_DIRS}
    ${Vorbis_ROOT})

find_library(Vorbis_Enc_LIBRARY
  NAMES
    vorbisenc
    vorbisenc_static
    libvorbisenc
    libvorbisenc_static
  HINTS
    ${PC_Vorbis_Enc_LIBDIR}
    ${PC_Vorbis_Enc_LIBRARY_DIRS}
    ${Vorbis_ROOT})

find_library(Vorbis_File_LIBRARY
  NAMES
    vorbisfile
    vorbisfile_static
    libvorbisfile
    libvorbisfile_static
  HINTS
    ${PC_Vorbis_File_LIBDIR}
    ${PC_Vorbis_File_LIBRARY_DIRS}
    ${Vorbis_ROOT})

include(FindPackageHandleStandardArgs)

if(Vorbis_Vorbis_LIBRARY AND Vorbis_Vorbis_INCLUDE_DIR AND Ogg_FOUND)
  set(Vorbis_Vorbis_FOUND TRUE)
endif()

if(Vorbis_Enc_LIBRARY AND Vorbis_Enc_INCLUDE_DIR AND Vorbis_Vorbis_FOUND)
  set(Vorbis_Enc_FOUND TRUE)
endif()

if(Vorbis_Vorbis_FOUND AND Vorbis_File_LIBRARY AND Vorbis_File_INCLUDE_DIR)
  set(Vorbis_File_FOUND TRUE)
endif()

find_package_handle_standard_args(Vorbis
  REQUIRED_VARS
    Vorbis_Vorbis_LIBRARY
    Vorbis_Vorbis_INCLUDE_DIR
    Ogg_FOUND
  HANDLE_COMPONENTS
  VERSION_VAR Vorbis_VERSION)


if(Vorbis_Vorbis_FOUND)
  set(Vorbis_Vorbis_INCLUDE_DIRS ${Vorbis_Vorbis_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
  set(Vorbis_Vorbis_LIBRARIES ${Vorbis_Vorbis_LIBRARY} ${Ogg_LIBRARIES})
  if(NOT TARGET Vorbis::vorbis)
    add_library(Vorbis::vorbis UNKNOWN IMPORTED)
    set_target_properties(Vorbis::vorbis PROPERTIES
      INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Vorbis_INCLUDE_DIR}"
      IMPORTED_LOCATION "${Vorbis_Vorbis_LIBRARY}"
      INTERFACE_LINK_LIBRARIES Ogg::ogg
    )
  endif()

  if(Vorbis_Enc_FOUND)
    set(Vorbis_Enc_INCLUDE_DIRS ${Vorbis_Enc_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
    set(Vorbis_Enc_LIBRARIES ${Vorbis_Enc_LIBRARY} ${Vorbis_Vorbis_LIBRARIES})
    if(NOT TARGET Vorbis::vorbisenc)
      add_library(Vorbis::vorbisenc UNKNOWN IMPORTED)
      set_target_properties(Vorbis::vorbisenc PROPERTIES
        INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_Enc_INCLUDE_DIR}"
        IMPORTED_LOCATION "${Vorbis_Enc_LIBRARY}"
        INTERFACE_LINK_LIBRARIES Vorbis::vorbis
      )
    endif()
  endif()

  if(Vorbis_File_FOUND)
    set(Vorbis_File_INCLUDE_DIRS ${Vorbis_File_INCLUDE_DIR} ${Ogg_INCLUDE_DIRS})
    set(Vorbis_File_LIBRARIES ${Vorbis_File_LIBRARY} ${Vorbis_Vorbis_LIBRARIES})
    if(NOT TARGET Vorbis::vorbisfile)
      add_library(Vorbis::vorbisfile UNKNOWN IMPORTED)
      set_target_properties(Vorbis::vorbisfile PROPERTIES
        INTERFACE_INCLUDE_DIRECTORIES "${Vorbis_File_INCLUDE_DIR}"
        IMPORTED_LOCATION "${Vorbis_File_LIBRARY}"
        INTERFACE_LINK_LIBRARIES Vorbis::vorbis
      )
    endif()
  endif()

endif()

mark_as_advanced(Vorbis_Vorbis_INCLUDE_DIR Vorbis_Vorbis_LIBRARY)
mark_as_advanced(Vorbis_Enc_INCLUDE_DIR Vorbis_Enc_LIBRARY)
mark_as_advanced(Vorbis_File_INCLUDE_DIR Vorbis_File_LIBRARY)