# Copyright 2019 The libgav1 Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. if(LIBGAV1_CMAKE_LIBGAV1_OPTIONS_CMAKE_) return() endif() # LIBGAV1_CMAKE_LIBGAV1_OPTIONS_CMAKE_ set(LIBGAV1_CMAKE_LIBGAV1_OPTIONS_CMAKE_) # Simple wrapper for CMake's builtin option command that tracks libgav1's build # options in the list variable $libgav1_options. macro(libgav1_option) unset(option_NAME) unset(option_HELPSTRING) unset(option_VALUE) unset(optional_args) unset(multi_value_args) set(single_value_args NAME HELPSTRING VALUE) cmake_parse_arguments(option "${optional_args}" "${single_value_args}" "${multi_value_args}" ${ARGN}) if(NOT (option_NAME AND option_HELPSTRING AND DEFINED option_VALUE)) message(FATAL_ERROR "libgav1_option: NAME HELPSTRING and VALUE required.") endif() option(${option_NAME} ${option_HELPSTRING} ${option_VALUE}) if(LIBGAV1_VERBOSE GREATER 2) message("--------- libgav1_option ---------\n" "option_NAME=${option_NAME}\n" "option_HELPSTRING=${option_HELPSTRING}\n" "option_VALUE=${option_VALUE}\n" "------------------------------------------\n") endif() list(APPEND libgav1_options ${option_NAME}) list(REMOVE_DUPLICATES libgav1_options) endmacro() # Dumps the $libgav1_options list via CMake message command. macro(libgav1_dump_options) foreach(option_name ${libgav1_options}) message("${option_name}: ${${option_name}}") endforeach() endmacro()