| # |
| # Copyright (c) 2021, Alliance for Open Media. All rights reserved |
| # |
| # This source code is subject to the terms of the BSD 3-Clause Clear License and |
| # the Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear |
| # License was not distributed with this source code in the LICENSE file, you can |
| # obtain it at aomedia.org/license/software-license/bsd-3-c-c/. 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 aomedia.org/license/patent-license/. |
| # |
| cmake_minimum_required(VERSION 3.5) |
| |
| string(TIMESTAMP year "%Y") |
| set(asm_file_header_block |
| "\; |
| \; Copyright (c) ${year}, Alliance for Open Media. All rights reserved |
| \; |
| \; This source code is subject to the terms of the BSD 3-Clause Clear License and the |
| \; Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear License was |
| \; not distributed with this source code in the LICENSE file, you can obtain it |
| \; at aomedia.org/license/software-license/bsd-3-c-c/. 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 aomedia.org/license/patent-license/. |
| \; |
| ") |
| set(h_file_header_block |
| "/* |
| * Copyright (c) ${year}, Alliance for Open Media. All rights reserved |
| * |
| * This source code is subject to the terms of the BSD 3-Clause Clear License and the |
| * Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear License was |
| * not distributed with this source code in the LICENSE file, you can obtain it |
| * at aomedia.org/license/software-license/bsd-3-c-c/. 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 aomedia.org/license/patent-license/. |
| */ |
| \#ifndef AOM_CONFIG_H_ |
| \#define AOM_CONFIG_H_ |
| ") |
| set(cmake_file_header_block |
| "## |
| ## Copyright (c) ${year}, Alliance for Open Media. All rights reserved |
| ## |
| ## This source code is subject to the terms of the BSD 3-Clause Clear License and the |
| ## Alliance for Open Media Patent License 1.0. If the BSD 3-Clause Clear License was |
| ## not distributed with this source code in the LICENSE file, you can obtain it |
| ## at aomedia.org/license/software-license/bsd-3-c-c/. 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 aomedia.org/license/patent-license/. |
| ## |
| ") |
| |
| # Terminates cmake execution when $var_name is an empty string, or the variable |
| # name it contains does not expand to an existing directory. |
| function(check_directory_var var_name) |
| if("${var_name}" STREQUAL "") |
| message(FATAL_ERROR "The CMake variable ${var_name} must be defined.") |
| endif() |
| |
| if(NOT EXISTS "${${var_name}}") |
| message(FATAL_ERROR "${${var_name}} (${var_name}) missing.") |
| endif() |
| endfunction() |
| |
| check_directory_var(AOM_CONFIG_DIR) |
| check_directory_var(AOM_ROOT) |
| |
| set(AOM_DEFAULTS "${AOM_ROOT}/build/cmake/aom_config_defaults.cmake") |
| if(NOT EXISTS "${AOM_DEFAULTS}") |
| message( |
| FATAL_ERROR "Configuration default values file (${AOM_DEFAULTS}) missing.") |
| endif() |
| |
| include("${AOM_ROOT}/build/cmake/aom_config_defaults.cmake") |
| list(APPEND aom_build_vars ${AOM_DETECT_VARS} ${AOM_CONFIG_VARS}) |
| list(SORT aom_build_vars) |
| |
| set(aom_config_h_template "${AOM_CONFIG_DIR}/config/aom_config.h.cmake") |
| file(WRITE "${aom_config_h_template}" ${h_file_header_block}) |
| foreach(aom_var ${aom_build_vars}) |
| if(NOT "${aom_var}" STREQUAL "AOM_RTCD_FLAGS") |
| file(APPEND "${aom_config_h_template}" |
| "\#define ${aom_var} \${${aom_var}}\n") |
| endif() |
| endforeach() |
| file(APPEND "${aom_config_h_template}" "\#endif // AOM_CONFIG_H_") |
| |
| set(aom_asm_config_template "${AOM_CONFIG_DIR}/config/aom_config.asm.cmake") |
| file(WRITE "${aom_asm_config_template}" ${asm_file_header_block}) |
| foreach(aom_var ${aom_build_vars}) |
| if(NOT "${aom_var}" STREQUAL "INLINE" AND NOT "${aom_var}" STREQUAL |
| "AOM_RTCD_FLAGS") |
| file(APPEND "${aom_asm_config_template}" "${aom_var} equ \${${aom_var}}\n") |
| endif() |
| endforeach() |