| # | |
| # Copyright (c) 2018, Alliance for Open Media. All rights reserved | |
| # | |
| # This source code is subject to the terms of the BSD 2 Clause License and the | |
| # Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was | |
| # not distributed with this source code in the LICENSE file, you can obtain it | |
| # at www.aomedia.org/license/software. If the Alliance for Open Media Patent | |
| # License 1.0 was not distributed with this source code in the PATENTS file, you | |
| # can obtain it at www.aomedia.org/license/patent. | |
| # | |
| list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aom.h" | |
| "${AOM_ROOT}/aom/aom_codec.h" "${AOM_ROOT}/aom/aom_frame_buffer.h" | |
| "${AOM_ROOT}/aom/aom_image.h" "${AOM_ROOT}/aom/aom_integer.h" | |
| "${AOM_ROOT}/aom/aom.h") | |
| if(CONFIG_AV1_DECODER) | |
| list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aom_decoder.h" | |
| "${AOM_ROOT}/aom/aomdx.h") | |
| endif() | |
| if(CONFIG_AV1_ENCODER) | |
| list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aomcx.h" | |
| "${AOM_ROOT}/aom/aom_encoder.h") | |
| endif() | |
| # Generate aom.pc and setup dependencies to ensure it is created when necessary. | |
| # Note: aom.pc generation uses GNUInstallDirs: | |
| # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html | |
| macro(setup_aom_install_targets) | |
| if(NOT (MSVC OR XCODE)) | |
| include("GNUInstallDirs") | |
| set(AOM_PKG_CONFIG_FILE "${AOM_CONFIG_DIR}/aom.pc") | |
| # Create a dummy library target for creating aom.pc. | |
| create_dummy_source_file(aom_pc c AOM_PKG_CONFIG_SOURCES) | |
| add_library(aom_pc ${AOM_PKG_CONFIG_SOURCES}) | |
| # Setup a rule to generate aom.pc. | |
| add_custom_command(OUTPUT "${AOM_PKG_CONFIG_FILE}" | |
| COMMAND | |
| ${CMAKE_COMMAND} ARGS | |
| -DAOM_CONFIG_DIR=${AOM_CONFIG_DIR} | |
| -DAOM_ROOT=${AOM_ROOT} | |
| -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} | |
| -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} | |
| -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR} | |
| -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR} | |
| -DCMAKE_PROJECT_NAME=${CMAKE_PROJECT_NAME} | |
| -DCONFIG_MULTITHREAD=${CONFIG_MULTITHREAD} | |
| -DHAVE_PTHREAD_H=${HAVE_PTHREAD_H} -P | |
| "${AOM_ROOT}/build/cmake/pkg_config.cmake" | |
| COMMENT "Writing aom.pc" VERBATIM) | |
| # Explicitly add a dependency on the pkg-config file to ensure it's built. | |
| get_property(aom_pc_sources TARGET aom_pc PROPERTY SOURCES) | |
| set_source_files_properties(${aom_pc_sources} OBJECT_DEPENDS | |
| "${AOM_PKG_CONFIG_FILE}") | |
| # Our pkg-config file carries version information: add a dependency on the | |
| # version rule. | |
| add_dependencies(aom_pc aom_version) | |
| if(CONFIG_AV1_DECODER) | |
| if(ENABLE_EXAMPLES) | |
| list(APPEND AOM_INSTALL_BINS aomdec) | |
| endif() | |
| endif() | |
| if(CONFIG_AV1_ENCODER) | |
| if(ENABLE_EXAMPLES) | |
| list(APPEND AOM_INSTALL_BINS aomenc) | |
| endif() | |
| endif() | |
| set(AOM_INSTALL_LIBS aom) | |
| # Setup the install rules. | |
| install(FILES ${AOM_INSTALL_INCS} DESTINATION | |
| "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}/aom") | |
| install(FILES "${AOM_PKG_CONFIG_FILE}" DESTINATION | |
| "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig") | |
| install(TARGETS ${AOM_INSTALL_LIBS} DESTINATION | |
| "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") | |
| if(ENABLE_EXAMPLES) | |
| install(TARGETS ${AOM_INSTALL_BINS} DESTINATION | |
| "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") | |
| endif() | |
| endif() | |
| endmacro() |