xref: /aosp_15_r20/external/libwebm/CMakeLists.txt (revision 103e46e4cd4b6efcf6001f23fa8665fb110abf8d)
1*103e46e4SHarish Mahendrakar#  Copyright (c) 2015 The WebM project authors. All Rights Reserved.
2*103e46e4SHarish Mahendrakar#
3*103e46e4SHarish Mahendrakar#  Use of this source code is governed by a BSD-style license
4*103e46e4SHarish Mahendrakar#  that can be found in the LICENSE file in the root of the source
5*103e46e4SHarish Mahendrakar#  tree. An additional intellectual property rights grant can be found
6*103e46e4SHarish Mahendrakar#  in the file PATENTS.  All contributing project authors may
7*103e46e4SHarish Mahendrakar#  be found in the AUTHORS file in the root of the source tree.
8*103e46e4SHarish Mahendrakarcmake_minimum_required(VERSION 3.2)
9*103e46e4SHarish Mahendrakarproject(LIBWEBM CXX)
10*103e46e4SHarish Mahendrakar
11*103e46e4SHarish Mahendrakarinclude(GNUInstallDirs)
12*103e46e4SHarish Mahendrakarinclude("${CMAKE_CURRENT_SOURCE_DIR}/build/cxx_flags.cmake")
13*103e46e4SHarish Mahendrakar
14*103e46e4SHarish Mahendrakarif(BUILD_SHARED_LIBS)
15*103e46e4SHarish Mahendrakar  set(CMAKE_POSITION_INDEPENDENT_CODE ON)
16*103e46e4SHarish Mahendrakarelse()
17*103e46e4SHarish Mahendrakar  include("${CMAKE_CURRENT_SOURCE_DIR}/build/msvc_runtime.cmake")
18*103e46e4SHarish Mahendrakarendif()
19*103e46e4SHarish Mahendrakar
20*103e46e4SHarish Mahendrakarset(LIBWEBM_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
21*103e46e4SHarish Mahendrakar
22*103e46e4SHarish Mahendrakar# Build/test configuration flags.
23*103e46e4SHarish Mahendrakaroption(ENABLE_WEBMTS "Enables WebM PES/TS support." ON)
24*103e46e4SHarish Mahendrakaroption(ENABLE_WEBMINFO "Enables building webm_info." ON)
25*103e46e4SHarish Mahendrakaroption(ENABLE_TESTS "Enables tests." OFF)
26*103e46e4SHarish Mahendrakaroption(ENABLE_IWYU "Enables include-what-you-use support." OFF)
27*103e46e4SHarish Mahendrakaroption(ENABLE_WERROR "Enable warnings as errors." OFF)
28*103e46e4SHarish Mahendrakaroption(ENABLE_WEBM_PARSER "Enables new parser API." OFF)
29*103e46e4SHarish Mahendrakaroption(ENABLE_SAMPLE_PROGRAMS "Enables building sample programs." ON)
30*103e46e4SHarish Mahendrakar
31*103e46e4SHarish Mahendrakarif(WIN32
32*103e46e4SHarish Mahendrakar   OR CYGWIN
33*103e46e4SHarish Mahendrakar   OR MSYS)
34*103e46e4SHarish Mahendrakar  # Allow use of rand_r() / fdopen() and other POSIX functions.
35*103e46e4SHarish Mahendrakar  require_cxx_flag_nomsvc("-std=gnu++11")
36*103e46e4SHarish Mahendrakarelse()
37*103e46e4SHarish Mahendrakar  require_cxx_flag_nomsvc("-std=c++11")
38*103e46e4SHarish Mahendrakarendif()
39*103e46e4SHarish Mahendrakar
40*103e46e4SHarish Mahendrakaradd_cxx_preproc_definition("__STDC_CONSTANT_MACROS")
41*103e46e4SHarish Mahendrakaradd_cxx_preproc_definition("__STDC_FORMAT_MACROS")
42*103e46e4SHarish Mahendrakaradd_cxx_preproc_definition("__STDC_LIMIT_MACROS")
43*103e46e4SHarish Mahendrakar
44*103e46e4SHarish Mahendrakar# Set up compiler flags and build properties.
45*103e46e4SHarish Mahendrakarinclude_directories("${LIBWEBM_SRC_DIR}")
46*103e46e4SHarish Mahendrakar
47*103e46e4SHarish Mahendrakarif(MSVC)
48*103e46e4SHarish Mahendrakar  set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
49*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("/W4")
50*103e46e4SHarish Mahendrakar  # Disable MSVC warnings that suggest making code non-portable.
51*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("/wd4996")
52*103e46e4SHarish Mahendrakar  if(ENABLE_WERROR)
53*103e46e4SHarish Mahendrakar    add_cxx_flag_if_supported("/WX")
54*103e46e4SHarish Mahendrakar  endif()
55*103e46e4SHarish Mahendrakarelse()
56*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wall")
57*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wc++14-compat")
58*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wc++17-compat")
59*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wc++20-compat")
60*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wextra")
61*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wnarrowing")
62*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wno-deprecated")
63*103e46e4SHarish Mahendrakar  add_cxx_flag_if_supported("-Wshorten-64-to-32")
64*103e46e4SHarish Mahendrakar  if(ENABLE_WERROR)
65*103e46e4SHarish Mahendrakar    add_cxx_flag_if_supported("-Werror")
66*103e46e4SHarish Mahendrakar  endif()
67*103e46e4SHarish Mahendrakarendif()
68*103e46e4SHarish Mahendrakar
69*103e46e4SHarish Mahendrakar# Source list variables.
70*103e46e4SHarish Mahendrakarset(dumpvtt_sources "${LIBWEBM_SRC_DIR}/dumpvtt.cc")
71*103e46e4SHarish Mahendrakar
72*103e46e4SHarish Mahendrakarset(libwebm_common_public_headers "${LIBWEBM_SRC_DIR}/common/webmids.h")
73*103e46e4SHarish Mahendrakar
74*103e46e4SHarish Mahendrakarset(libwebm_common_sources
75*103e46e4SHarish Mahendrakar    ${libwebm_common_public_headers}
76*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/file_util.cc"
77*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/file_util.h"
78*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/hdr_util.cc"
79*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/hdr_util.h")
80*103e46e4SHarish Mahendrakar
81*103e46e4SHarish Mahendrakarset(mkvmuxer_public_headers
82*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvmuxer.h"
83*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvmuxertypes.h"
84*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvmuxerutil.h"
85*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvwriter.h")
86*103e46e4SHarish Mahendrakar
87*103e46e4SHarish Mahendrakarset(mkvmuxer_sources
88*103e46e4SHarish Mahendrakar    ${mkvmuxer_public_headers}
89*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvmuxer.cc"
90*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvmuxerutil.cc"
91*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer/mkvwriter.cc"
92*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/webmids.h")
93*103e46e4SHarish Mahendrakar
94*103e46e4SHarish Mahendrakarset(mkvmuxer_sample_sources
95*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvmuxer_sample.cc"
96*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/sample_muxer_metadata.cc"
97*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/sample_muxer_metadata.h")
98*103e46e4SHarish Mahendrakar
99*103e46e4SHarish Mahendrakarset(mkvmuxer_tests_sources
100*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/mkvmuxer_tests.cc"
101*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.cc"
102*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.h")
103*103e46e4SHarish Mahendrakar
104*103e46e4SHarish Mahendrakarset(mkvparser_public_headers "${LIBWEBM_SRC_DIR}/mkvparser/mkvparser.h"
105*103e46e4SHarish Mahendrakar                             "${LIBWEBM_SRC_DIR}/mkvparser/mkvreader.h")
106*103e46e4SHarish Mahendrakar
107*103e46e4SHarish Mahendrakarset(mkvparser_sources
108*103e46e4SHarish Mahendrakar    ${mkvparser_public_headers} "${LIBWEBM_SRC_DIR}/mkvparser/mkvparser.cc"
109*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/mkvparser/mkvreader.cc"
110*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/webmids.h")
111*103e46e4SHarish Mahendrakar
112*103e46e4SHarish Mahendrakarset(mkvparser_sample_sources "${LIBWEBM_SRC_DIR}/mkvparser_sample.cc")
113*103e46e4SHarish Mahendrakarset(mkvparser_tests_sources
114*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/mkvparser_tests.cc"
115*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.cc"
116*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.h")
117*103e46e4SHarish Mahendrakar
118*103e46e4SHarish Mahendrakarset(vp9_header_parser_tests_sources
119*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser_tests.cc"
120*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.cc"
121*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.h"
122*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.cc"
123*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.h")
124*103e46e4SHarish Mahendrakar
125*103e46e4SHarish Mahendrakarset(vp9_level_stats_tests_sources
126*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.cc"
127*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.h"
128*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_level_stats_tests.cc"
129*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_level_stats.cc"
130*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_level_stats.h"
131*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.cc"
132*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.h")
133*103e46e4SHarish Mahendrakar
134*103e46e4SHarish Mahendrakarset(webm_parser_public_headers
135*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/buffer_reader.h"
136*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/callback.h"
137*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/dom_types.h"
138*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/element.h"
139*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/file_reader.h"
140*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/id.h"
141*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/istream_reader.h"
142*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/reader.h"
143*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/status.h"
144*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/include/webm/webm_parser.h")
145*103e46e4SHarish Mahendrakar
146*103e46e4SHarish Mahendrakarset(webm_parser_sources
147*103e46e4SHarish Mahendrakar    ${webm_parser_public_headers}
148*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/ancestory.cc"
149*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/ancestory.h"
150*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/audio_parser.h"
151*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/bit_utils.cc"
152*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/bit_utils.h"
153*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_additions_parser.h"
154*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_group_parser.h"
155*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_header_parser.cc"
156*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_header_parser.h"
157*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_more_parser.h"
158*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_parser.cc"
159*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/block_parser.h"
160*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/bool_parser.h"
161*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/buffer_reader.cc"
162*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/byte_parser.h"
163*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/callback.cc"
164*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/chapter_atom_parser.h"
165*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/chapter_display_parser.h"
166*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/chapters_parser.h"
167*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/cluster_parser.h"
168*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/colour_parser.h"
169*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/content_enc_aes_settings_parser.h"
170*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/content_encoding_parser.h"
171*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/content_encodings_parser.h"
172*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/content_encryption_parser.h"
173*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/cue_point_parser.h"
174*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/cue_track_positions_parser.h"
175*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/cues_parser.h"
176*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/date_parser.cc"
177*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/date_parser.h"
178*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/ebml_parser.h"
179*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/edition_entry_parser.h"
180*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/element_parser.h"
181*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/file_reader.cc"
182*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/float_parser.cc"
183*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/float_parser.h"
184*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/id_element_parser.cc"
185*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/id_element_parser.h"
186*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/id_parser.cc"
187*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/id_parser.h"
188*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/info_parser.h"
189*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/int_parser.h"
190*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/istream_reader.cc"
191*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/master_parser.cc"
192*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/master_parser.h"
193*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/master_value_parser.h"
194*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/mastering_metadata_parser.h"
195*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/parser.h"
196*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/parser_utils.cc"
197*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/parser_utils.h"
198*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/projection_parser.h"
199*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/recursive_parser.h"
200*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/seek_head_parser.h"
201*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/seek_parser.h"
202*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/segment_parser.cc"
203*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/segment_parser.h"
204*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/simple_tag_parser.h"
205*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/size_parser.cc"
206*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/size_parser.h"
207*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/skip_callback.h"
208*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/skip_parser.cc"
209*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/skip_parser.h"
210*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/slices_parser.h"
211*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/tag_parser.h"
212*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/tags_parser.h"
213*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/targets_parser.h"
214*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/time_slice_parser.h"
215*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/track_entry_parser.h"
216*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/tracks_parser.h"
217*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/unknown_parser.cc"
218*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/unknown_parser.h"
219*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/var_int_parser.cc"
220*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/var_int_parser.h"
221*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/video_parser.h"
222*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/virtual_block_parser.cc"
223*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/virtual_block_parser.h"
224*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/void_parser.cc"
225*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/void_parser.h"
226*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/src/webm_parser.cc")
227*103e46e4SHarish Mahendrakar
228*103e46e4SHarish Mahendrakarset(webm_parser_demo_sources "${LIBWEBM_SRC_DIR}/webm_parser/demo/demo.cc")
229*103e46e4SHarish Mahendrakarset(webm_parser_tests_sources
230*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/audio_parser_test.cc"
231*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/bit_utils_test.cc"
232*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/block_additions_parser_test.cc"
233*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/block_group_parser_test.cc"
234*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/block_header_parser_test.cc"
235*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/block_more_parser_test.cc"
236*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/block_parser_test.cc"
237*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/bool_parser_test.cc"
238*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/buffer_reader_test.cc"
239*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/byte_parser_test.cc"
240*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/callback_test.cc"
241*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/chapter_atom_parser_test.cc"
242*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/chapter_display_parser_test.cc"
243*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/chapters_parser_test.cc"
244*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/cluster_parser_test.cc"
245*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/colour_parser_test.cc"
246*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/content_enc_aes_settings_parser_test.cc"
247*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/content_encoding_parser_test.cc"
248*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/content_encodings_parser_test.cc"
249*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/content_encryption_parser_test.cc"
250*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/cue_point_parser_test.cc"
251*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/cue_track_positions_parser_test.cc"
252*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/cues_parser_test.cc"
253*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/date_parser_test.cc"
254*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/ebml_parser_test.cc"
255*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/edition_entry_parser_test.cc"
256*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/element_test.cc"
257*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/float_parser_test.cc"
258*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/id_element_parser_test.cc"
259*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/id_parser_test.cc"
260*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/info_parser_test.cc"
261*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/int_parser_test.cc"
262*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/istream_reader_test.cc"
263*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/limited_reader_test.cc"
264*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/master_parser_test.cc"
265*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/master_value_parser_test.cc"
266*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/mastering_metadata_parser_test.cc"
267*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/parser_utils_test.cc"
268*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/projection_parser_test.cc"
269*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/recursive_parser_test.cc"
270*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/seek_head_parser_test.cc"
271*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/seek_parser_test.cc"
272*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/segment_parser_test.cc"
273*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/simple_tag_parser_test.cc"
274*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/size_parser_test.cc"
275*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/skip_parser_test.cc"
276*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/slices_parser_test.cc"
277*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/tag_parser_test.cc"
278*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/tags_parser_test.cc"
279*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/targets_parser_test.cc"
280*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/time_slice_parser_test.cc"
281*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/track_entry_parser_test.cc"
282*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/tracks_parser_test.cc"
283*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/unknown_parser_test.cc"
284*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/var_int_parser_test.cc"
285*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/video_parser_test.cc"
286*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/virtual_block_parser_test.cc"
287*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/void_parser_test.cc"
288*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/webm_parser_test.cc"
289*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/test_utils/element_parser_test.h"
290*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/test_utils/limited_reader.cc"
291*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/test_utils/limited_reader.h"
292*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/test_utils/mock_callback.h"
293*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/test_utils/parser_test.h"
294*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_parser/tests/webm_parser_tests.cc")
295*103e46e4SHarish Mahendrakar
296*103e46e4SHarish Mahendrakarset(webm_info_sources
297*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/indent.cc"
298*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/indent.h"
299*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.cc"
300*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_header_parser.h"
301*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_level_stats.cc"
302*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/vp9_level_stats.h"
303*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/webm_constants.h"
304*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/webm_endian.cc"
305*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/webm_endian.h"
306*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webm_info.cc")
307*103e46e4SHarish Mahendrakar
308*103e46e4SHarish Mahendrakarset(webmts_sources
309*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/libwebm_util.cc"
310*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/libwebm_util.h"
311*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/video_frame.cc"
312*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/common/video_frame.h"
313*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/vpxpes2ts.cc"
314*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/vpxpes2ts.h"
315*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/vpxpes_parser.cc"
316*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/vpxpes_parser.h"
317*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/webm2pes.cc"
318*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/webm2pes.h")
319*103e46e4SHarish Mahendrakar
320*103e46e4SHarish Mahendrakarset(webm2pes_sources "${LIBWEBM_SRC_DIR}/m2ts/webm2pes_main.cc")
321*103e46e4SHarish Mahendrakarset(webm2pes_tests_sources
322*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.cc"
323*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/test_util.h"
324*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/testing/video_frame_tests.cc"
325*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/m2ts/tests/webm2pes_tests.cc")
326*103e46e4SHarish Mahendrakarset(webm2ts_sources "${LIBWEBM_SRC_DIR}/m2ts/vpxpes2ts_main.cc")
327*103e46e4SHarish Mahendrakar
328*103e46e4SHarish Mahendrakarset(webvtt_common_headers "${LIBWEBM_SRC_DIR}/webvtt/vttreader.h"
329*103e46e4SHarish Mahendrakar                          "${LIBWEBM_SRC_DIR}/webvtt/webvttparser.h")
330*103e46e4SHarish Mahendrakar
331*103e46e4SHarish Mahendrakarset(webvtt_common_sources
332*103e46e4SHarish Mahendrakar    ${webvtt_common_headers} "${LIBWEBM_SRC_DIR}/webvtt/vttreader.cc"
333*103e46e4SHarish Mahendrakar    "${LIBWEBM_SRC_DIR}/webvtt/webvttparser.cc")
334*103e46e4SHarish Mahendrakar
335*103e46e4SHarish Mahendrakarset(vttdemux_sources ${webvtt_common_sources} "${LIBWEBM_SRC_DIR}/vttdemux.cc")
336*103e46e4SHarish Mahendrakar
337*103e46e4SHarish Mahendrakar# Targets.
338*103e46e4SHarish Mahendrakaradd_library(mkvmuxer OBJECT ${mkvmuxer_sources})
339*103e46e4SHarish Mahendrakaradd_library(mkvparser OBJECT ${mkvparser_sources})
340*103e46e4SHarish Mahendrakaradd_library(webvtt_common OBJECT ${webvtt_common_sources})
341*103e46e4SHarish Mahendrakar
342*103e46e4SHarish Mahendrakaradd_library(webm ${libwebm_common_sources} $<TARGET_OBJECTS:mkvmuxer>
343*103e46e4SHarish Mahendrakar                 $<TARGET_OBJECTS:mkvparser>)
344*103e46e4SHarish Mahendrakar
345*103e46e4SHarish Mahendrakarif(ENABLE_SAMPLE_PROGRAMS)
346*103e46e4SHarish Mahendrakar  add_executable(mkvparser_sample ${mkvparser_sample_sources})
347*103e46e4SHarish Mahendrakar  target_link_libraries(mkvparser_sample LINK_PUBLIC webm)
348*103e46e4SHarish Mahendrakar
349*103e46e4SHarish Mahendrakar  add_executable(mkvmuxer_sample ${mkvmuxer_sample_sources}
350*103e46e4SHarish Mahendrakar                                 $<TARGET_OBJECTS:webvtt_common>)
351*103e46e4SHarish Mahendrakar  target_link_libraries(mkvmuxer_sample LINK_PUBLIC webm)
352*103e46e4SHarish Mahendrakar
353*103e46e4SHarish Mahendrakar  add_executable(dumpvtt ${dumpvtt_sources} $<TARGET_OBJECTS:webvtt_common>)
354*103e46e4SHarish Mahendrakar  target_link_libraries(dumpvtt LINK_PUBLIC webm)
355*103e46e4SHarish Mahendrakar
356*103e46e4SHarish Mahendrakar  add_executable(vttdemux ${vttdemux_sources})
357*103e46e4SHarish Mahendrakar  target_link_libraries(vttdemux LINK_PUBLIC webm)
358*103e46e4SHarish Mahendrakarendif()
359*103e46e4SHarish Mahendrakar
360*103e46e4SHarish Mahendrakarif(ENABLE_WEBMINFO)
361*103e46e4SHarish Mahendrakar  add_executable(webm_info ${webm_info_sources})
362*103e46e4SHarish Mahendrakar  target_link_libraries(webm_info LINK_PUBLIC webm)
363*103e46e4SHarish Mahendrakarendif()
364*103e46e4SHarish Mahendrakar
365*103e46e4SHarish Mahendrakarif(ENABLE_WEBM_PARSER)
366*103e46e4SHarish Mahendrakar  include_directories(webm_parser webm_parser/include)
367*103e46e4SHarish Mahendrakar  add_library(webm_parser OBJECT ${webm_parser_sources})
368*103e46e4SHarish Mahendrakar  target_sources(webm PUBLIC $<TARGET_OBJECTS:webm_parser>)
369*103e46e4SHarish Mahendrakar
370*103e46e4SHarish Mahendrakar  add_executable(webm_parser_demo ${webm_parser_demo_sources})
371*103e46e4SHarish Mahendrakar  target_link_libraries(webm_parser_demo LINK_PUBLIC webm)
372*103e46e4SHarish Mahendrakarendif()
373*103e46e4SHarish Mahendrakar
374*103e46e4SHarish Mahendrakarif(ENABLE_WEBMTS)
375*103e46e4SHarish Mahendrakar  add_library(webmts OBJECT ${webmts_sources})
376*103e46e4SHarish Mahendrakar
377*103e46e4SHarish Mahendrakar  add_executable(webm2pes ${webm2pes_sources} $<TARGET_OBJECTS:webmts>)
378*103e46e4SHarish Mahendrakar  target_link_libraries(webm2pes LINK_PUBLIC webm)
379*103e46e4SHarish Mahendrakar
380*103e46e4SHarish Mahendrakar  add_executable(webm2ts ${webm2ts_sources} $<TARGET_OBJECTS:webmts>)
381*103e46e4SHarish Mahendrakar  target_link_libraries(webm2ts LINK_PUBLIC webm)
382*103e46e4SHarish Mahendrakarendif()
383*103e46e4SHarish Mahendrakar
384*103e46e4SHarish Mahendrakarif(ENABLE_TESTS)
385*103e46e4SHarish Mahendrakar  set(GTEST_SRC_DIR
386*103e46e4SHarish Mahendrakar      "${LIBWEBM_SRC_DIR}/../googletest"
387*103e46e4SHarish Mahendrakar      CACHE PATH "Path to Googletest git repository.")
388*103e46e4SHarish Mahendrakar  # This directory is where libwebm will build googletest dependencies.
389*103e46e4SHarish Mahendrakar  set(GTEST_BUILD_DIR "${CMAKE_BINARY_DIR}/googletest_build")
390*103e46e4SHarish Mahendrakar
391*103e46e4SHarish Mahendrakar  if(LIBWEBM_DISABLE_GTEST_CMAKE)
392*103e46e4SHarish Mahendrakar    add_library(gtest STATIC "${GTEST_SRC_DIR}/googletest/src/gtest-all.cc")
393*103e46e4SHarish Mahendrakar    include_directories("${GTEST_SRC_DIR}/googletest")
394*103e46e4SHarish Mahendrakar  else()
395*103e46e4SHarish Mahendrakar    add_subdirectory("${GTEST_SRC_DIR}" "${GTEST_BUILD_DIR}")
396*103e46e4SHarish Mahendrakar  endif()
397*103e46e4SHarish Mahendrakar  include_directories("${GTEST_SRC_DIR}/googletest/include")
398*103e46e4SHarish Mahendrakar
399*103e46e4SHarish Mahendrakar  add_executable(mkvmuxer_tests ${mkvmuxer_tests_sources})
400*103e46e4SHarish Mahendrakar  target_link_libraries(mkvmuxer_tests LINK_PUBLIC gtest webm)
401*103e46e4SHarish Mahendrakar
402*103e46e4SHarish Mahendrakar  add_executable(mkvparser_tests ${mkvparser_tests_sources})
403*103e46e4SHarish Mahendrakar  target_link_libraries(mkvparser_tests LINK_PUBLIC gtest webm)
404*103e46e4SHarish Mahendrakar
405*103e46e4SHarish Mahendrakar  add_executable(vp9_header_parser_tests ${vp9_header_parser_tests_sources})
406*103e46e4SHarish Mahendrakar  target_link_libraries(vp9_header_parser_tests LINK_PUBLIC gtest webm)
407*103e46e4SHarish Mahendrakar
408*103e46e4SHarish Mahendrakar  add_executable(vp9_level_stats_tests ${vp9_level_stats_tests_sources})
409*103e46e4SHarish Mahendrakar  target_link_libraries(vp9_level_stats_tests LINK_PUBLIC gtest webm)
410*103e46e4SHarish Mahendrakar
411*103e46e4SHarish Mahendrakar  if(ENABLE_WEBMTS)
412*103e46e4SHarish Mahendrakar    add_executable(webm2pes_tests ${webm2pes_tests_sources}
413*103e46e4SHarish Mahendrakar                                  $<TARGET_OBJECTS:webmts>)
414*103e46e4SHarish Mahendrakar    target_link_libraries(webm2pes_tests LINK_PUBLIC gtest webm)
415*103e46e4SHarish Mahendrakar  endif()
416*103e46e4SHarish Mahendrakar
417*103e46e4SHarish Mahendrakar  if(ENABLE_WEBM_PARSER)
418*103e46e4SHarish Mahendrakar    include_directories("${GTEST_SRC_DIR}/googlemock/include")
419*103e46e4SHarish Mahendrakar    add_executable(webm_parser_tests ${webm_parser_tests_sources})
420*103e46e4SHarish Mahendrakar    target_link_libraries(webm_parser_tests LINK_PUBLIC gmock gtest webm)
421*103e46e4SHarish Mahendrakar  endif()
422*103e46e4SHarish Mahendrakarendif()
423*103e46e4SHarish Mahendrakar
424*103e46e4SHarish Mahendrakar# Include-what-you-use.
425*103e46e4SHarish Mahendrakarif(ENABLE_IWYU)
426*103e46e4SHarish Mahendrakar  # Make sure all the tools necessary for IWYU are present.
427*103e46e4SHarish Mahendrakar  find_program(iwyu_path NAMES include-what-you-use)
428*103e46e4SHarish Mahendrakar  find_program(iwyu_tool_path NAMES iwyu_tool.py)
429*103e46e4SHarish Mahendrakar
430*103e46e4SHarish Mahendrakar  # Some odd behavior on cmake's part: PYTHON_EXECUTABLE and PYTHON_VERSION_*
431*103e46e4SHarish Mahendrakar  # are set by cmake when it does its internal python check, but
432*103e46e4SHarish Mahendrakar  # PYTHONINTERP_FOUND is empty without explicitly looking for it.
433*103e46e4SHarish Mahendrakar  find_package(PythonInterp)
434*103e46e4SHarish Mahendrakar
435*103e46e4SHarish Mahendrakar  if(iwyu_path
436*103e46e4SHarish Mahendrakar     AND iwyu_tool_path
437*103e46e4SHarish Mahendrakar     AND PYTHONINTERP_FOUND)
438*103e46e4SHarish Mahendrakar    # Enable compilation command export (needed for iwyu_tool.py)
439*103e46e4SHarish Mahendrakar    set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
440*103e46e4SHarish Mahendrakar
441*103e46e4SHarish Mahendrakar    # Add a custom target to run iwyu across all targets.
442*103e46e4SHarish Mahendrakar    add_custom_target(
443*103e46e4SHarish Mahendrakar      iwyu ALL
444*103e46e4SHarish Mahendrakar      COMMAND "${PYTHON_EXECUTABLE}" "${iwyu_tool_path}" -p
445*103e46e4SHarish Mahendrakar              "${CMAKE_BINARY_DIR}"
446*103e46e4SHarish Mahendrakar      COMMENT "Running include-what-you-use..."
447*103e46e4SHarish Mahendrakar      VERBATIM)
448*103e46e4SHarish Mahendrakar  else()
449*103e46e4SHarish Mahendrakar    message(STATUS "Ignoring ENABLE_IWYU because reasons:")
450*103e46e4SHarish Mahendrakar    message(STATUS "  iwyu_path=" ${iwyu_path})
451*103e46e4SHarish Mahendrakar    message(STATUS "  iwyu_tool_path=" ${iwyu_tool_path})
452*103e46e4SHarish Mahendrakar    message(STATUS "  PYTHONINTERP_FOUND=" ${PYTHONINTERP_FOUND})
453*103e46e4SHarish Mahendrakar    message(STATUS "  See README.libwebm for more information.")
454*103e46e4SHarish Mahendrakar  endif()
455*103e46e4SHarish Mahendrakarendif()
456*103e46e4SHarish Mahendrakar
457*103e46e4SHarish Mahendrakar# webm_parser headers are rooted at webm/.
458*103e46e4SHarish Mahendrakarset_target_properties(webm PROPERTIES PUBLIC_HEADER
459*103e46e4SHarish Mahendrakar                                      "${webm_parser_public_headers}")
460*103e46e4SHarish Mahendrakarinstall(
461*103e46e4SHarish Mahendrakar  TARGETS webm
462*103e46e4SHarish Mahendrakar  ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
463*103e46e4SHarish Mahendrakar  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
464*103e46e4SHarish Mahendrakar  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
465*103e46e4SHarish Mahendrakar  PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm)
466*103e46e4SHarish Mahendrakar
467*103e46e4SHarish Mahendrakar# Install common headers into a subdirectory to avoid breaking nested includes.
468*103e46e4SHarish Mahendrakarinstall(FILES ${libwebm_common_public_headers}
469*103e46e4SHarish Mahendrakar        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm/common)
470*103e46e4SHarish Mahendrakar# mkvmuxer and mkvparser headers are referenced with their prefix.
471*103e46e4SHarish Mahendrakarinstall(FILES ${mkvmuxer_public_headers}
472*103e46e4SHarish Mahendrakar        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm/mkvmuxer)
473*103e46e4SHarish Mahendrakarinstall(FILES ${mkvparser_public_headers}
474*103e46e4SHarish Mahendrakar        DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webm/mkvparser)
475