summaryrefslogtreecommitdiffstats
path: root/third_party/aom/build/cmake/aom_install.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/aom/build/cmake/aom_install.cmake')
-rw-r--r--third_party/aom/build/cmake/aom_install.cmake98
1 files changed, 98 insertions, 0 deletions
diff --git a/third_party/aom/build/cmake/aom_install.cmake b/third_party/aom/build/cmake/aom_install.cmake
new file mode 100644
index 0000000000..2c263e96b9
--- /dev/null
+++ b/third_party/aom/build/cmake/aom_install.cmake
@@ -0,0 +1,98 @@
+#
+# 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")
+
+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"
+ "${AOM_ROOT}/aom/aom_external_partition.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 XCODE)
+ include("GNUInstallDirs")
+ set(AOM_PKG_CONFIG_FILE "${AOM_CONFIG_DIR}/aom.pc")
+
+ # Create a library target for creating aom.pc.
+ create_no_op_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}
+ -DCMAKE_THREAD_LIBS_INIT=${CMAKE_THREAD_LIBS_INIT}
+ -DCONFIG_MULTITHREAD=${CONFIG_MULTITHREAD}
+ -DCONFIG_TUNE_VMAF=${CONFIG_TUNE_VMAF}
+ -DCONFIG_TUNE_BUTTERAUGLI=${CONFIG_TUNE_BUTTERAUGLI}
+ -DCONFIG_SALIENCY_MAP=${CONFIG_SALIENCY_MAP}
+ -DCONFIG_TFLITE=${CONFIG_TFLITE}
+ -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()
+
+ if(BUILD_SHARED_LIBS)
+ set(AOM_INSTALL_LIBS aom aom_static)
+ else()
+ set(AOM_INSTALL_LIBS aom)
+ endif()
+
+ # Setup the install rules. install() will automatically prepend
+ # CMAKE_INSTALL_PREFIX to relative paths
+ install(FILES ${AOM_INSTALL_INCS}
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aom")
+ install(FILES "${AOM_PKG_CONFIG_FILE}"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+ install(TARGETS ${AOM_INSTALL_LIBS};${AOM_INSTALL_BINS}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ endif()
+endmacro()