tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

aom_install.cmake (5175B)


      1 #
      2 # Copyright (c) 2018, Alliance for Open Media. All rights reserved.
      3 #
      4 # This source code is subject to the terms of the BSD 2 Clause License and the
      5 # Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was
      6 # not distributed with this source code in the LICENSE file, you can obtain it
      7 # at www.aomedia.org/license/software. If the Alliance for Open Media Patent
      8 # License 1.0 was not distributed with this source code in the PATENTS file, you
      9 # can obtain it at www.aomedia.org/license/patent.
     10 #
     11 list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aom.h"
     12            "${AOM_ROOT}/aom/aom_codec.h" "${AOM_ROOT}/aom/aom_frame_buffer.h"
     13            "${AOM_ROOT}/aom/aom_image.h" "${AOM_ROOT}/aom/aom_integer.h")
     14 
     15 if(CONFIG_AV1_DECODER)
     16  list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aom_decoder.h"
     17              "${AOM_ROOT}/aom/aomdx.h")
     18 endif()
     19 
     20 if(CONFIG_AV1_ENCODER)
     21  list(APPEND AOM_INSTALL_INCS "${AOM_ROOT}/aom/aomcx.h"
     22              "${AOM_ROOT}/aom/aom_encoder.h"
     23              "${AOM_ROOT}/aom/aom_external_partition.h")
     24 endif()
     25 
     26 # Generate aom.pc and setup dependencies to ensure it is created when necessary.
     27 # Note: aom.pc generation uses GNUInstallDirs:
     28 # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
     29 macro(setup_aom_install_targets)
     30  if(NOT XCODE)
     31    include("GNUInstallDirs")
     32    set(AOM_PKG_CONFIG_FILE "${AOM_CONFIG_DIR}/aom.pc")
     33 
     34    # Create a library target for creating aom.pc.
     35    create_no_op_source_file(aom_pc c AOM_PKG_CONFIG_SOURCES)
     36    add_library(aom_pc ${AOM_PKG_CONFIG_SOURCES})
     37 
     38    # Setup a rule to generate aom.pc.
     39    add_custom_command(
     40      OUTPUT "${AOM_PKG_CONFIG_FILE}"
     41      COMMAND ${CMAKE_COMMAND} ARGS
     42              -DAOM_CONFIG_DIR=${AOM_CONFIG_DIR}
     43              -DAOM_ROOT=${AOM_ROOT}
     44              -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
     45              -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
     46              -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
     47              -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
     48              -DCMAKE_PROJECT_NAME=${CMAKE_PROJECT_NAME}
     49              -DCMAKE_THREAD_LIBS_INIT=${CMAKE_THREAD_LIBS_INIT}
     50              -DCONFIG_MULTITHREAD=${CONFIG_MULTITHREAD}
     51              -DCONFIG_TUNE_VMAF=${CONFIG_TUNE_VMAF}
     52              -DCONFIG_TUNE_BUTTERAUGLI=${CONFIG_TUNE_BUTTERAUGLI}
     53              -DCONFIG_SALIENCY_MAP=${CONFIG_SALIENCY_MAP}
     54              -DCONFIG_TFLITE=${CONFIG_TFLITE}
     55              -P
     56              "${AOM_ROOT}/build/cmake/pkg_config.cmake"
     57      COMMENT "Writing aom.pc"
     58      VERBATIM)
     59 
     60    # Explicitly add a dependency on the pkg-config file to ensure it's built.
     61    get_property(aom_pc_sources TARGET aom_pc PROPERTY SOURCES)
     62    set_source_files_properties(${aom_pc_sources} OBJECT_DEPENDS
     63                                "${AOM_PKG_CONFIG_FILE}")
     64 
     65    # Our pkg-config file carries version information: add a dependency on the
     66    # version rule.
     67    add_dependencies(aom_pc aom_version)
     68 
     69    if(CONFIG_AV1_DECODER)
     70      if(ENABLE_EXAMPLES)
     71        list(APPEND AOM_INSTALL_BINS aomdec)
     72      endif()
     73    endif()
     74 
     75    if(CONFIG_AV1_ENCODER)
     76      if(ENABLE_EXAMPLES)
     77        list(APPEND AOM_INSTALL_BINS aomenc)
     78      endif()
     79    endif()
     80 
     81    if(BUILD_SHARED_LIBS)
     82      set(AOM_INSTALL_LIBS aom aom_static)
     83    else()
     84      set(AOM_INSTALL_LIBS aom)
     85    endif()
     86 
     87    set(AOM_GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
     88    set(AOM_VERSION_CONFIG
     89        "${AOM_GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
     90    set(AOM_PROJECT_CONFIG "${AOM_GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
     91    set(AOM_VERSION ${PROJECT_VERSION})
     92 
     93    include(CMakePackageConfigHelpers)
     94    write_basic_package_version_file("${AOM_VERSION_CONFIG}"
     95                                     VERSION ${AOM_VERSION}
     96                                     COMPATIBILITY SameMajorVersion)
     97    # AOM_TARGETS_EXPORT_NAME is used by config.cmake.in.
     98    set(AOM_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
     99    set(AOM_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
    100    configure_package_config_file(
    101      "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/config.cmake.in"
    102      "${AOM_PROJECT_CONFIG}" INSTALL_DESTINATION "${AOM_CONFIG_INSTALL_DIR}"
    103      PATH_VARS CMAKE_INSTALL_INCLUDEDIR)
    104 
    105    # Install cmake config files
    106    install(FILES "${AOM_PROJECT_CONFIG}" "${AOM_VERSION_CONFIG}"
    107            DESTINATION "${AOM_CONFIG_INSTALL_DIR}")
    108 
    109    install(EXPORT "${AOM_TARGETS_EXPORT_NAME}"
    110            NAMESPACE "${PROJECT_NAME}::"
    111            DESTINATION "${AOM_CONFIG_INSTALL_DIR}")
    112 
    113    # Setup the install rules. install() will automatically prepend
    114    # CMAKE_INSTALL_PREFIX to relative paths
    115    install(FILES ${AOM_INSTALL_INCS}
    116            DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aom")
    117    install(FILES "${AOM_PKG_CONFIG_FILE}"
    118            DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
    119    install(TARGETS ${AOM_INSTALL_LIBS};${AOM_INSTALL_BINS}
    120            EXPORT "${AOM_TARGETS_EXPORT_NAME}"
    121            RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
    122            LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
    123            ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
    124  endif()
    125 endmacro()