cmake: Add all aom_config variables to the cache.

Adding the variables to the cache allows the user running cmake
to control configuration variable values using the -D parameter
passed to cmake.

Variables set by the user are used directly unless, for example,
a failing compiler flag or feature test overrides the user's
specified value. Variables not set by the user pick up the cached
default value.

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Ie8a80968345998c1869011d8a2c5eff01af678a3
diff --git a/build/cmake/aom_config_defaults.cmake b/build/cmake/aom_config_defaults.cmake
index 70432a2..36b288c 100644
--- a/build/cmake/aom_config_defaults.cmake
+++ b/build/cmake/aom_config_defaults.cmake
@@ -9,127 +9,130 @@
 ## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 ##
 
-# Defaults for every libaom configuration variable.
-set(RESTRICT)
-set(INLINE)
-set(ARCH_ARM 0)
-set(ARCH_MIPS 0)
-set(ARCH_X86 0)
-set(ARCH_X86_64 0)
-set(HAVE_EDSP 0)
-set(HAVE_MEDIA 0)
-set(HAVE_NEON 0)
-set(HAVE_NEON_ASM 0)
-set(HAVE_MIPS32 0)
-set(HAVE_DSPR2 0)
-set(HAVE_MSA 0)
-set(HAVE_MIPS64 0)
-set(HAVE_MMX 0)
-set(HAVE_SSE 0)
-set(HAVE_SSE2 0)
-set(HAVE_SSE3 0)
-set(HAVE_SSSE3 0)
-set(HAVE_SSE4_1 0)
-set(HAVE_AVX 0)
-set(HAVE_AVX2 0)
-set(HAVE_AOM_PORTS 0)
-set(HAVE_PTHREAD_H 0)
-set(HAVE_UNISTD_H 0)
-set(CONFIG_DEPENDENCY_TRACKING 1)
-set(CONFIG_EXTERNAL_BUILD 0)
-set(CONFIG_INSTALL_DOCS 0)
-set(CONFIG_INSTALL_BINS 0)
-set(CONFIG_INSTALL_LIBS 0)
-set(CONFIG_INSTALL_SRCS 0)
-set(CONFIG_DEBUG 0)
-set(CONFIG_GPROF 0)
-set(CONFIG_GCOV 0)
-set(CONFIG_RVCT 0)
-set(CONFIG_GCC 0)
-set(CONFIG_MSVS 0)
-set(CONFIG_PIC 0)
-set(CONFIG_BIG_ENDIAN 0)
-set(CONFIG_CODEC_SRCS 0)
-set(CONFIG_DEBUG_LIBS 0)
-set(CONFIG_DEQUANT_TOKENS 0)
-set(CONFIG_DC_RECON 0)
-set(CONFIG_RUNTIME_CPU_DETECT 0)
-set(CONFIG_POSTPROC 0)
-set(CONFIG_AV1_POSTPROC 0)
-set(CONFIG_MULTITHREAD 0)
-set(CONFIG_INTERNAL_STATS 0)
-set(CONFIG_AV1_ENCODER 1)
-set(CONFIG_AV1_DECODER 1)
-set(CONFIG_AV1 1)
-set(CONFIG_ENCODERS 1)
-set(CONFIG_DECODERS 1)
-set(CONFIG_STATIC_MSVCRT 0)
-set(CONFIG_SPATIAL_RESAMPLING 1)
-set(CONFIG_REALTIME_ONLY 0)
-set(CONFIG_ONTHEFLY_BITPACKING 0)
-set(CONFIG_ERROR_CONCEALMENT 0)
-set(CONFIG_SHARED 0)
-set(CONFIG_STATIC 1)
-set(CONFIG_SMALL 0)
-set(CONFIG_POSTPROC_VISUALIZER 0)
-set(CONFIG_OS_SUPPORT 0)
-set(CONFIG_UNIT_TESTS 0)
-set(CONFIG_WEBM_IO 1)
-set(CONFIG_LIBYUV 1)
-set(CONFIG_ACCOUNTING 0)
-set(CONFIG_DECODE_PERF_TESTS 0)
-set(CONFIG_ENCODE_PERF_TESTS 0)
-set(CONFIG_MULTI_RES_ENCODING 0)
-set(CONFIG_TEMPORAL_DENOISING 1)
-set(CONFIG_AV1_TEMPORAL_DENOISING 0)
-set(CONFIG_COEFFICIENT_RANGE_CHECKING 0)
-set(CONFIG_AOM_HIGHBITDEPTH 0)
-set(CONFIG_BETTER_HW_COMPATIBILITY 0)
-set(CONFIG_EXPERIMENTAL 0)
-set(CONFIG_SIZE_LIMIT 0)
-set(CONFIG_AOM_QM 0)
-set(CONFIG_FP_MB_STATS 0)
-set(CONFIG_EMULATE_HARDWARE 0)
-set(CONFIG_CLPF 0)
-set(CONFIG_DERING 0)
-set(CONFIG_VAR_TX 0)
-set(CONFIG_RECT_TX 0)
-set(CONFIG_REF_MV 0)
-set(CONFIG_DUAL_FILTER 0)
-set(CONFIG_EXT_TX 0)
-set(CONFIG_TX64X64 0)
-set(CONFIG_SUB8X8_MC 0)
-set(CONFIG_EXT_INTRA 0)
-set(CONFIG_FILTER_INTRA 0)
-set(CONFIG_EXT_INTER 0)
-set(CONFIG_EXT_INTERP 0)
-set(CONFIG_EXT_REFS 0)
-set(CONFIG_GLOBAL_MOTION 0)
-set(CONFIG_NEW_QUANT 0)
-set(CONFIG_SUPERTX 0)
-set(CONFIG_ANS 0)
-set(CONFIG_EC_MULTISYMBOL 1)
-set(CONFIG_LOOP_RESTORATION 0)
-set(CONFIG_EXT_PARTITION 0)
-set(CONFIG_EXT_PARTITION_TYPES 0)
-set(CONFIG_EXT_TILE 0)
-set(CONFIG_MOTION_VAR 0)
-set(CONFIG_WARPED_MOTION 0)
-set(CONFIG_ENTROPY 0)
-set(CONFIG_BIDIR_PRED 0)
-set(CONFIG_BITSTREAM_DEBUG 0)
-set(CONFIG_ALT_INTRA 0)
-set(CONFIG_PALETTE 0)
-set(CONFIG_DAALA_EC 1)
-set(CONFIG_PVQ 0)
-set(CONFIG_CB4X4 0)
-set(CONFIG_FRAME_SIZE 0)
-set(CONFIG_DELTA_Q 0)
-set(CONFIG_ADAPT_SCAN 0)
-set(CONFIG_FILTER_7BIT 0)
-set(CONFIG_PARALLEL_DEBLOCKING 0)
-set(CONFIG_TILE_GROUPS 0)
-set(CONFIG_EC_ADAPT 0)
-set(CONFIG_SIMP_MV_PRED 0)
-set(CONFIG_RD_DEBUG 0)
-set(CONFIG_REFERENCE_BUFFER 0)
+# Defaults for every libaom configuration variable. Here we add all libaom
+# config variables to the cmake variable cache, but omit the FORCE parameter to
+# allow users to specify values when executing cmake to generate build files.
+# Values here are used only if not set by the user.
+set(RESTRICT "" CACHE STRING "Sets RESTRICT value for current target.")
+set(INLINE "" CACHE STRING "Sets INLINE value for current target.")
+set(ARCH_ARM 0 CACHE BOOL "Enables ARM architecture.")
+set(ARCH_MIPS 0 CACHE BOOL "Enables MIPS architecture.")
+set(ARCH_X86 0 CACHE BOOL "Enables X86 architecture.")
+set(ARCH_X86_64 0 CACHE BOOL "Enables X86_64 architecture.")
+set(HAVE_EDSP 0 CACHE BOOL "Enables EDSP optimizations.")
+set(HAVE_MEDIA 0 CACHE BOOL "Enables MEDIA optimizations.")
+set(HAVE_NEON 0 CACHE BOOL "Enables NEON intrinsics optimizations.")
+set(HAVE_NEON_ASM 0 CACHE BOOL "Enables NEON assembly optimizations.")
+set(HAVE_MIPS32 0 CACHE BOOL "Enables MIPS32 optimizations.")
+set(HAVE_DSPR2 0 CACHE BOOL "Enables DSPR2 optimizations.")
+set(HAVE_MSA 0 CACHE BOOL "Enables MSA optimizations.")
+set(HAVE_MIPS64 0 CACHE BOOL "Enables MIPS64 optimizations. ")
+set(HAVE_MMX 0 CACHE BOOL "Enables MMX optimizations. ")
+set(HAVE_SSE 0 CACHE BOOL "Enables SSE optimizations.")
+set(HAVE_SSE2 0 CACHE BOOL "Enables SSE2 optimizations.")
+set(HAVE_SSE3 0 CACHE BOOL "Enables SSE3 optimizations.")
+set(HAVE_SSSE3 0 CACHE BOOL "Enables SSSE3 optimizations.")
+set(HAVE_SSE4_1 0 CACHE BOOL "Enables SSE 4.1 optimizations.")
+set(HAVE_AVX 0 CACHE BOOL "Enables AVX optimizations.")
+set(HAVE_AVX2 0 CACHE BOOL "Enables AVX2 optimizations.")
+set(HAVE_AOM_PORTS 0 CACHE BOOL "Internal flag, deprecated.")
+set(HAVE_PTHREAD_H 0 CACHE BOOL "Internal flag, target pthread support.")
+set(HAVE_UNISTD_H 0 CACHE BOOL "Internal flag, unistd.h present for target.")
+set(CONFIG_DEPENDENCY_TRACKING 1 CACHE BOOL "Internal flag.")
+set(CONFIG_EXTERNAL_BUILD 0 CACHE BOOL "Internal flag.")
+set(CONFIG_INSTALL_DOCS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_INSTALL_BINS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_INSTALL_LIBS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_INSTALL_SRCS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DEBUG 0 CACHE BOOL "Internal flag.")
+set(CONFIG_GPROF 0 CACHE BOOL "Internal flag.")
+set(CONFIG_GCOV 0 CACHE BOOL "Internal flag.")
+set(CONFIG_RVCT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_GCC 0 CACHE BOOL "Internal flag.")
+set(CONFIG_MSVS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_PIC 0 CACHE BOOL "Internal flag.")
+set(CONFIG_BIG_ENDIAN 0 CACHE BOOL "Internal flag.")
+set(CONFIG_CODEC_SRCS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DEBUG_LIBS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DEQUANT_TOKENS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DC_RECON 0 CACHE BOOL "Internal flag.")
+set(CONFIG_RUNTIME_CPU_DETECT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_POSTPROC 0 CACHE BOOL "Internal flag.")
+set(CONFIG_AV1_POSTPROC 0 CACHE BOOL "Internal flag.")
+set(CONFIG_MULTITHREAD 0 CACHE BOOL "Internal flag.")
+set(CONFIG_INTERNAL_STATS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_AV1_ENCODER 1 CACHE BOOL "Internal flag.")
+set(CONFIG_AV1_DECODER 1 CACHE BOOL "Internal flag.")
+set(CONFIG_AV1 1 CACHE BOOL "Internal flag.")
+set(CONFIG_ENCODERS 1 CACHE BOOL "Internal flag.")
+set(CONFIG_DECODERS 1 CACHE BOOL "Internal flag.")
+set(CONFIG_STATIC_MSVCRT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SPATIAL_RESAMPLING 1 CACHE BOOL "Internal flag.")
+set(CONFIG_REALTIME_ONLY 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ONTHEFLY_BITPACKING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ERROR_CONCEALMENT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SHARED 0 CACHE BOOL "Internal flag.")
+set(CONFIG_STATIC 1 CACHE BOOL "Internal flag.")
+set(CONFIG_SMALL 0 CACHE BOOL "Internal flag.")
+set(CONFIG_POSTPROC_VISUALIZER 0 CACHE BOOL "Internal flag.")
+set(CONFIG_OS_SUPPORT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_UNIT_TESTS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_WEBM_IO 1 CACHE BOOL "Enables WebM support.")
+set(CONFIG_LIBYUV 1 CACHE BOOL "Enables libyuv scaling and conversion support.")
+set(CONFIG_ACCOUNTING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DECODE_PERF_TESTS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ENCODE_PERF_TESTS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_MULTI_RES_ENCODING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_TEMPORAL_DENOISING 1 CACHE BOOL "Internal flag.")
+set(CONFIG_AV1_TEMPORAL_DENOISING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_COEFFICIENT_RANGE_CHECKING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_AOM_HIGHBITDEPTH 0 CACHE BOOL "Internal flag.")
+set(CONFIG_BETTER_HW_COMPATIBILITY 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXPERIMENTAL 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SIZE_LIMIT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_AOM_QM 0 CACHE BOOL "Internal flag.")
+set(CONFIG_FP_MB_STATS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EMULATE_HARDWARE 0 CACHE BOOL "Internal flag.")
+set(CONFIG_CLPF 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DERING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_VAR_TX 0 CACHE BOOL "Internal flag.")
+set(CONFIG_RECT_TX 0 CACHE BOOL "Internal flag.")
+set(CONFIG_REF_MV 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DUAL_FILTER 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_TX 0 CACHE BOOL "Internal flag.")
+set(CONFIG_TX64X64 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SUB8X8_MC 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_INTRA 0 CACHE BOOL "Internal flag.")
+set(CONFIG_FILTER_INTRA 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_INTER 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_INTERP 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_REFS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_GLOBAL_MOTION 0 CACHE BOOL "Internal flag.")
+set(CONFIG_NEW_QUANT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SUPERTX 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ANS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EC_MULTISYMBOL 1 CACHE BOOL "Internal flag.")
+set(CONFIG_LOOP_RESTORATION 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_PARTITION 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_PARTITION_TYPES 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EXT_TILE 0 CACHE BOOL "Internal flag.")
+set(CONFIG_MOTION_VAR 0 CACHE BOOL "Internal flag.")
+set(CONFIG_WARPED_MOTION 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ENTROPY 0 CACHE BOOL "Internal flag.")
+set(CONFIG_BIDIR_PRED 0 CACHE BOOL "Internal flag.")
+set(CONFIG_BITSTREAM_DEBUG 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ALT_INTRA 0 CACHE BOOL "Internal flag.")
+set(CONFIG_PALETTE 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DAALA_EC 1 CACHE BOOL "Internal flag.")
+set(CONFIG_PVQ 0 CACHE BOOL "Internal flag.")
+set(CONFIG_CB4X4 0 CACHE BOOL "Internal flag.")
+set(CONFIG_FRAME_SIZE 0 CACHE BOOL "Internal flag.")
+set(CONFIG_DELTA_Q 0 CACHE BOOL "Internal flag.")
+set(CONFIG_ADAPT_SCAN 0 CACHE BOOL "Internal flag.")
+set(CONFIG_FILTER_7BIT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_PARALLEL_DEBLOCKING 0 CACHE BOOL "Internal flag.")
+set(CONFIG_TILE_GROUPS 0 CACHE BOOL "Internal flag.")
+set(CONFIG_EC_ADAPT 0 CACHE BOOL "Internal flag.")
+set(CONFIG_SIMP_MV_PRED 0 CACHE BOOL "Internal flag.")
+set(CONFIG_RD_DEBUG 0 CACHE BOOL "Internal flag.")
+set(CONFIG_REFERENCE_BUFFER 0 CACHE BOOL "Internal flag.")