1# 2# Copyright (c) 2017, 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# 11cmake_minimum_required(VERSION 3.5) 12 13set(REQUIRED_ARGS "AOM_ROOT" "AOM_CONFIG_DIR" "CMAKE_INSTALL_PREFIX" 14 "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_INCLUDEDIR" 15 "CMAKE_INSTALL_LIBDIR" "CMAKE_PROJECT_NAME" 16 "CONFIG_MULTITHREAD") 17 18foreach(arg ${REQUIRED_ARGS}) 19 if("${${arg}}" STREQUAL "") 20 message(FATAL_ERROR "${arg} must not be empty.") 21 endif() 22endforeach() 23 24include("${AOM_ROOT}/build/cmake/util.cmake") 25 26extract_version_string("${AOM_CONFIG_DIR}/config/aom_version.h" aom_version) 27 28# Create a version string suitable for comparison using the RPM version compare 29# algorithm: strip out everything after the number. 30string(FIND "${aom_version}" "-" dash_pos) 31if(${dash_pos} EQUAL -1) 32 set(package_version "${aom_version}") 33else() 34 string(SUBSTRING "${aom_version}" 0 ${dash_pos} package_version) 35endif() 36 37# Write pkg-config info. 38set(prefix "${CMAKE_INSTALL_PREFIX}") 39set(bindir "${CMAKE_INSTALL_BINDIR}") 40set(includedir "${CMAKE_INSTALL_INCLUDEDIR}") 41set(libdir "${CMAKE_INSTALL_LIBDIR}") 42set(pkgconfig_file "${AOM_CONFIG_DIR}/aom.pc") 43string(TOLOWER ${CMAKE_PROJECT_NAME} pkg_name) 44file(WRITE "${pkgconfig_file}" "# libaom pkg-config.\n") 45file(APPEND "${pkgconfig_file}" "prefix=${prefix}\n") 46file(APPEND "${pkgconfig_file}" "exec_prefix=\${prefix}\n") 47file(APPEND "${pkgconfig_file}" "includedir=\${prefix}/${includedir}\n") 48file(APPEND "${pkgconfig_file}" "libdir=\${exec_prefix}/${libdir}\n\n") 49file(APPEND "${pkgconfig_file}" "Name: ${pkg_name}\n") 50file( 51 APPEND "${pkgconfig_file}" 52 "Description: Alliance for Open Media AV1 codec library v${aom_version}.\n") 53file(APPEND "${pkgconfig_file}" "Version: ${package_version}\n") 54file(APPEND "${pkgconfig_file}" "Requires:") 55if(CONFIG_TUNE_VMAF) 56 file(APPEND "${pkgconfig_file}" " libvmaf") 57endif() 58if(CONFIG_TUNE_BUTTERAUGLI) 59 file(APPEND "${pkgconfig_file}" " libjxl") 60endif() 61file(APPEND "${pkgconfig_file}" "\nConflicts:\n") 62file(APPEND "${pkgconfig_file}" "Libs: -L\${libdir} -l${pkg_name}\n") 63file(APPEND "${pkgconfig_file}" "Libs.private:") 64if(NOT WIN32 AND NOT APPLE) 65 file(APPEND "${pkgconfig_file}" " -lm") 66endif() 67if(CONFIG_MULTITHREAD AND CMAKE_THREAD_LIBS_INIT) 68 file(APPEND "${pkgconfig_file}" " ${CMAKE_THREAD_LIBS_INIT}") 69endif() 70file(APPEND "${pkgconfig_file}" "\nCflags: -I\${includedir}\n") 71