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