aom_config_defaults.cmake (12515B)
1 # 2 # Copyright (c) 2016, 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 11 include("${AOM_ROOT}/build/cmake/util.cmake") 12 13 # This file sets default values for libaom configuration variables. All libaom 14 # config variables are added to the CMake variable cache via the macros provided 15 # in util.cmake. 16 17 # 18 # The variables in this section of the file are detected at configuration time, 19 # but can be overridden via the use of CONFIG_* and ENABLE_* values also defined 20 # in this file. 21 # 22 23 # CPUs. 24 set_aom_detect_var(AOM_ARCH_AARCH64 0 "Enables AArch64 architecture.") 25 set_aom_detect_var(AOM_ARCH_ARM 0 "Enables ARM architecture.") 26 set_aom_detect_var(AOM_ARCH_PPC 0 "Enables PPC architecture.") 27 set_aom_detect_var(AOM_ARCH_X86 0 "Enables X86 architecture.") 28 set_aom_detect_var(AOM_ARCH_X86_64 0 "Enables X86_64 architecture.") 29 set_aom_detect_var(AOM_ARCH_RISCV 0 "Enables RISC-V architecture.") 30 31 # Arm/AArch64 feature flags. 32 set_aom_detect_var(HAVE_NEON 0 "Enables Neon intrinsics optimizations.") 33 set_aom_detect_var(HAVE_ARM_CRC32 0 "Enables Arm CRC32 optimizations.") 34 set_aom_detect_var(HAVE_NEON_DOTPROD 0 35 "Enables Armv8.2-A Neon dotprod intrinsics optimizations.") 36 set_aom_detect_var(HAVE_NEON_I8MM 0 37 "Enables Armv8.2-A Neon i8mm intrinsics optimizations.") 38 set_aom_detect_var(HAVE_SVE 0 "Enables Armv8.2-A SVE intrinsics optimizations.") 39 set_aom_detect_var(HAVE_SVE2 0 "Enables Armv9-A SVE2 intrinsics optimizations.") 40 41 # PPC feature flags. 42 set_aom_detect_var(HAVE_VSX 0 "Enables VSX optimizations.") 43 44 # x86/x86_64 feature flags. 45 set_aom_detect_var(HAVE_MMX 0 "Enables MMX optimizations. ") 46 set_aom_detect_var(HAVE_SSE 0 "Enables SSE optimizations.") 47 set_aom_detect_var(HAVE_SSE2 0 "Enables SSE2 optimizations.") 48 set_aom_detect_var(HAVE_SSE3 0 "Enables SSE3 optimizations.") 49 set_aom_detect_var(HAVE_SSSE3 0 "Enables SSSE3 optimizations.") 50 set_aom_detect_var(HAVE_SSE4_1 0 "Enables SSE 4.1 optimizations.") 51 set_aom_detect_var(HAVE_SSE4_2 0 "Enables SSE 4.2 optimizations.") 52 set_aom_detect_var(HAVE_AVX 0 "Enables AVX optimizations.") 53 set_aom_detect_var(HAVE_AVX2 0 "Enables AVX2 optimizations.") 54 set_aom_detect_var(HAVE_AVX512 0 "Enables AVX512 optimizations.") 55 56 # RISC-V64 feature flags. 57 set_aom_detect_var(HAVE_RVV 0 "Enables RVV optimizations.") 58 59 # Flags describing the build environment. 60 set_aom_detect_var(HAVE_FEXCEPT 0 61 "Internal flag, GNU fenv.h present for target.") 62 set_aom_detect_var(HAVE_PTHREAD_H 0 "Internal flag, target pthread support.") 63 set_aom_detect_var(HAVE_UNISTD_H 0 64 "Internal flag, unistd.h present for target.") 65 set_aom_detect_var(HAVE_WXWIDGETS 0 "WxWidgets present.") 66 67 # 68 # Variables in this section can be set from the CMake command line or from 69 # within the CMake GUI. The variables control libaom features. 70 # 71 72 # Build configuration flags. 73 set_aom_config_var(AOM_RTCD_FLAGS "" 74 "Arguments to pass to rtcd.pl. Separate with ';'") 75 set_aom_config_var(CONFIG_AV1_DECODER 1 "Enable AV1 decoder.") 76 set_aom_config_var(CONFIG_AV1_ENCODER 1 "Enable AV1 encoder.") 77 set_aom_config_var(CONFIG_BIG_ENDIAN 0 "Internal flag.") 78 set_aom_config_var(CONFIG_FPMT_TEST 0 "Enable FPMT testing.") 79 set_aom_config_var(CONFIG_GCC 0 "Building with GCC (detect).") 80 set_aom_config_var(CONFIG_GCOV 0 "Enable gcov support.") 81 set_aom_config_var(CONFIG_GPROF 0 "Enable gprof support.") 82 set_aom_config_var(CONFIG_LIBYUV 1 "Enables libyuv scaling/conversion support.") 83 # Set CONFIG_SVT_AV1 to 0 to avoid the BSD 3-Clause Clear License used by the 84 # code in third_party/SVT-AV1/. 85 set_aom_config_var(CONFIG_SVT_AV1 1 "Enables SVT-AV1 AVX2 convolution support.") 86 87 set_aom_config_var(CONFIG_AV1_HIGHBITDEPTH 1 88 "Build with high bitdepth support.") 89 set_aom_config_var(CONFIG_AV1_TEMPORAL_DENOISING 0 90 "Build with temporal denoising support.") 91 set_aom_config_var(CONFIG_MULTITHREAD 1 "Multithread support.") 92 set_aom_config_var(CONFIG_OS_SUPPORT 0 "Internal flag.") 93 set_aom_config_var(CONFIG_PIC 0 "Build with PIC enabled.") 94 set_aom_config_var(CONFIG_QUANT_MATRIX 1 95 "Build with quantization matrices for AV1 encoder." 96 "AV1 decoder is always built with quantization matrices.") 97 set_aom_config_var(CONFIG_REALTIME_ONLY 0 98 "Build for RTC-only. See aomcx.h for all disabled features.") 99 set_aom_config_var(CONFIG_RUNTIME_CPU_DETECT 1 "Runtime CPU detection support.") 100 set_aom_config_var(CONFIG_SHARED 0 "Build shared libs.") 101 set_aom_config_var(CONFIG_WEBM_IO 1 "Enables WebM support.") 102 103 # Debugging flags. 104 set_aom_config_var(CONFIG_DEBUG 0 "Enable debug-only code.") 105 set_aom_config_var(CONFIG_EXCLUDE_SIMD_MISMATCH 0 106 "Exclude mismatch in SIMD functions for testing/debugging.") 107 set_aom_config_var(CONFIG_MISMATCH_DEBUG 0 "Mismatch debugging flag.") 108 109 # AV1 feature flags. 110 set_aom_config_var(CONFIG_ACCOUNTING 0 "Enables bit accounting.") 111 set_aom_config_var(CONFIG_ANALYZER 0 "Enables bit stream analyzer.") 112 set_aom_config_var(CONFIG_COEFFICIENT_RANGE_CHECKING 0 113 "Coefficient range check.") 114 set_aom_config_var(CONFIG_DENOISE 1 115 "Denoise/noise modeling support in encoder.") 116 set_aom_config_var(CONFIG_INSPECTION 0 "Enables bitstream inspection.") 117 set_aom_config_var(CONFIG_INTERNAL_STATS 0 "Enables internal encoder stats.") 118 set_aom_config_var(FORCE_HIGHBITDEPTH_DECODING 0 119 "Force high bitdepth decoding pipeline on 8-bit input.") 120 mark_as_advanced(FORCE_HIGHBITDEPTH_DECODING) 121 set_aom_config_var(CONFIG_MAX_DECODE_PROFILE 2 122 "Max profile to support decoding.") 123 set_aom_config_var( 124 CONFIG_NORMAL_TILE_MODE 0 125 "Only enables general decoding (disables large scale tile decoding).") 126 set_aom_config_var(CONFIG_SIZE_LIMIT 0 "Limit max decode width/height.") 127 set_aom_config_var(CONFIG_TUNE_BUTTERAUGLI 0 128 "Enable encoding tuning for Butteraugli.") 129 set_aom_config_var(CONFIG_TUNE_VMAF 0 "Enable encoding tuning for VMAF.") 130 set_aom_config_var(DECODE_HEIGHT_LIMIT 0 "Set limit for decode height.") 131 set_aom_config_var(DECODE_WIDTH_LIMIT 0 "Set limit for decode width.") 132 set_aom_config_var(STATIC_LINK_JXL 0 "Statically link the JPEG-XL library.") 133 134 # AV1 experiment flags. 135 set_aom_config_var(CONFIG_BITRATE_ACCURACY 0 136 "AV1 experiment: Improve bitrate accuracy.") 137 set_aom_config_var( 138 CONFIG_BITRATE_ACCURACY_BL 0 139 "AV1 experiment: Baseline of improve bitrate accuracy experiment.") 140 set_aom_config_var(CONFIG_BITSTREAM_DEBUG 0 141 "AV1 experiment: Bitstream debugging.") 142 set_aom_config_var( 143 CONFIG_COLLECT_COMPONENT_TIMING 0 144 "AV1 experiment: Collect encoding component timing information.") 145 set_aom_config_var( 146 CONFIG_COLLECT_PARTITION_STATS 0 147 "AV1 experiment: Collect partition timing stats. Can be 1 or 2.") 148 set_aom_config_var(CONFIG_COLLECT_RD_STATS 0 "AV1 experiment.") 149 set_aom_config_var( 150 CONFIG_DISABLE_FULL_PIXEL_SPLIT_8X8 1 151 "AV1 experiment: Disable full_pixel_motion_search_based_split on BLOCK_8X8.") 152 set_aom_config_var(CONFIG_ENTROPY_STATS 0 "AV1 experiment.") 153 set_aom_config_var(CONFIG_INTER_STATS_ONLY 0 "AV1 experiment.") 154 set_aom_config_var(CONFIG_NN_V2 0 155 "AV1 experiment: Fully-connected neural nets ver.2.") 156 set_aom_config_var(CONFIG_OPTICAL_FLOW_API 0 157 "AV1 experiment: for optical flow API.") 158 set_aom_config_var(CONFIG_PARTITION_SEARCH_ORDER 0 159 "AV1 experiment: Use alternative partition search order.") 160 set_aom_config_var(CONFIG_RATECTRL_LOG 0 161 "AV1 experiment: Log rate control decision.") 162 set_aom_config_var(CONFIG_RD_COMMAND 0 163 "AV1 experiment: Use external rdmult and q_index.") 164 set_aom_config_var(CONFIG_RD_DEBUG 0 "AV1 experiment.") 165 set_aom_config_var( 166 CONFIG_RT_ML_PARTITIONING 0 167 "AV1 experiment: Build with ML-based partitioning for Real Time.") 168 set_aom_config_var(CONFIG_SPEED_STATS 0 "AV1 experiment.") 169 set_aom_config_var(CONFIG_TFLITE 0 170 "AV1 experiment: Enable tensorflow lite library.") 171 set_aom_config_var(CONFIG_THREE_PASS 0 172 "AV1 experiment: Enable three-pass encoding.") 173 set_aom_config_var(CONFIG_OUTPUT_FRAME_SIZE 0 174 "AV1 experiment: Output frame size information.") 175 set_aom_config_var( 176 CONFIG_SALIENCY_MAP 0 177 "AV1 experiment: Enable saliency map based encoding tuning for VMAF.") 178 set_aom_config_var(CONFIG_CWG_C013 0 179 "AV1 experiment: Support for 7.x and 8.x levels.") 180 set_aom_config_var(CONFIG_CWG_E050 0 181 "AV1 experiment: Support for multilayer metadata OBU.") 182 # Add this change to make aomenc reported PSNR consistent with libvmaf result. 183 set_aom_config_var(CONFIG_LIBVMAF_PSNR_PEAK 1 184 "Use libvmaf PSNR peak for 10- and 12-bit") 185 186 set_aom_config_var(CONFIG_HIGHWAY 0 "Use Highway for SIMD.") 187 188 # 189 # Variables in this section control optional features of the build system. 190 # 191 set_aom_option_var(ENABLE_CCACHE "Enable ccache support." OFF) 192 set_aom_option_var(ENABLE_DECODE_PERF_TESTS "Enables decoder performance tests" 193 OFF) 194 set_aom_option_var(ENABLE_DISTCC "Enable distcc support." OFF) 195 set_aom_option_var(ENABLE_DOCS 196 "Enable documentation generation (doxygen required)." ON) 197 set_aom_option_var(ENABLE_ENCODE_PERF_TESTS "Enables encoder performance tests" 198 OFF) 199 set_aom_option_var(ENABLE_EXAMPLES "Enables build of example code." ON) 200 set_aom_option_var(ENABLE_GOMA "Enable goma support." OFF) 201 set_aom_option_var( 202 ENABLE_IDE_TEST_HOSTING 203 "Enables running tests within IDEs like Visual Studio and Xcode." OFF) 204 set_aom_option_var(ENABLE_NASM "Use nasm instead of yasm for x86 assembly." OFF) 205 set_aom_option_var(ENABLE_TESTDATA "Enables unit test data download targets." 206 ON) 207 set_aom_option_var(ENABLE_TESTS "Enables unit tests." ON) 208 set_aom_option_var(ENABLE_TOOLS "Enable applications in tools sub directory." 209 ON) 210 set_aom_option_var(ENABLE_WERROR "Converts warnings to errors at compile time." 211 OFF) 212 213 # Arm/AArch64 assembly/intrinsics flags. 214 set_aom_option_var(ENABLE_NEON 215 "Enables Neon optimizations on Arm/AArch64 targets." ON) 216 set_aom_option_var(ENABLE_ARM_CRC32 "Enables Arm CRC32 optimizations." ON) 217 set_aom_option_var( 218 ENABLE_NEON_DOTPROD 219 "Enables Armv8.2-A Neon dotprod optimizations on AArch64 targets." ON) 220 set_aom_option_var( 221 ENABLE_NEON_I8MM 222 "Enables Armv8.2-A Neon i8mm optimizations on AArch64 targets." ON) 223 set_aom_option_var(ENABLE_SVE 224 "Enables Armv8.2-A SVE optimizations on AArch64 targets." ON) 225 set_aom_option_var(ENABLE_SVE2 226 "Enables Armv9-A SVE2 optimizations on AArch64 targets." ON) 227 228 # VSX intrinsics flags. 229 set_aom_option_var(ENABLE_VSX "Enables VSX optimizations on PowerPC targets." 230 ON) 231 232 # x86/x86_64 assembly/intrinsics flags. 233 set_aom_option_var(ENABLE_MMX "Enables MMX optimizations on x86/x86_64 targets." 234 ON) 235 set_aom_option_var(ENABLE_SSE "Enables SSE optimizations on x86/x86_64 targets." 236 ON) 237 set_aom_option_var(ENABLE_SSE2 238 "Enables SSE2 optimizations on x86/x86_64 targets." ON) 239 set_aom_option_var(ENABLE_SSE3 240 "Enables SSE3 optimizations on x86/x86_64 targets." ON) 241 set_aom_option_var(ENABLE_SSSE3 242 "Enables SSSE3 optimizations on x86/x86_64 targets." ON) 243 set_aom_option_var(ENABLE_SSE4_1 244 "Enables SSE4_1 optimizations on x86/x86_64 targets." ON) 245 set_aom_option_var(ENABLE_SSE4_2 246 "Enables SSE4_2 optimizations on x86/x86_64 targets." ON) 247 set_aom_option_var(ENABLE_AVX "Enables AVX optimizations on x86/x86_64 targets." 248 ON) 249 set_aom_option_var(ENABLE_AVX2 250 "Enables AVX2 optimizations on x86/x86_64 targets." ON) 251 set_aom_option_var(ENABLE_AVX512 252 "Enables AVX512 optimizations on x86/x86_64 targets." ON) 253 254 # RVV intrinsics flags. 255 set_aom_option_var(ENABLE_RVV "Enables RVV optimizations on RISC-V targets." ON)