56 lines
2.0 KiB
CMake
56 lines
2.0 KiB
CMake
# 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()
|