xref: /aosp_15_r20/external/libaom/test/test.cmake (revision 77c1e3ccc04c968bd2bc212e87364f250e820521)
1*77c1e3ccSAndroid Build Coastguard Worker#
2*77c1e3ccSAndroid Build Coastguard Worker# Copyright (c) 2017, Alliance for Open Media. All rights reserved.
3*77c1e3ccSAndroid Build Coastguard Worker#
4*77c1e3ccSAndroid Build Coastguard Worker# This source code is subject to the terms of the BSD 2 Clause License and the
5*77c1e3ccSAndroid Build Coastguard Worker# Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was
6*77c1e3ccSAndroid Build Coastguard Worker# not distributed with this source code in the LICENSE file, you can obtain it
7*77c1e3ccSAndroid Build Coastguard Worker# at www.aomedia.org/license/software. If the Alliance for Open Media Patent
8*77c1e3ccSAndroid Build Coastguard Worker# License 1.0 was not distributed with this source code in the PATENTS file, you
9*77c1e3ccSAndroid Build Coastguard Worker# can obtain it at www.aomedia.org/license/patent.
10*77c1e3ccSAndroid Build Coastguard Worker#
11*77c1e3ccSAndroid Build Coastguard Workerif(AOM_TEST_TEST_CMAKE_)
12*77c1e3ccSAndroid Build Coastguard Worker  return()
13*77c1e3ccSAndroid Build Coastguard Workerendif() # AOM_TEST_TEST_CMAKE_
14*77c1e3ccSAndroid Build Coastguard Workerset(AOM_TEST_TEST_CMAKE_ 1)
15*77c1e3ccSAndroid Build Coastguard Worker
16*77c1e3ccSAndroid Build Coastguard Workerinclude(ProcessorCount)
17*77c1e3ccSAndroid Build Coastguard Worker
18*77c1e3ccSAndroid Build Coastguard Workerinclude("${AOM_ROOT}/test/test_data_util.cmake")
19*77c1e3ccSAndroid Build Coastguard Worker
20*77c1e3ccSAndroid Build Coastguard Workerset(AOM_UNIT_TEST_DATA_LIST_FILE "${AOM_ROOT}/test/test-data.sha1")
21*77c1e3ccSAndroid Build Coastguard Workerset(AOM_IDE_TEST_FOLDER "test")
22*77c1e3ccSAndroid Build Coastguard Workerset(AOM_IDE_TESTDATA_FOLDER "testdata")
23*77c1e3ccSAndroid Build Coastguard Worker
24*77c1e3ccSAndroid Build Coastguard Worker# Appends |AOM_TEST_SOURCE_VARS| with |src_list_name| at the caller's scope.
25*77c1e3ccSAndroid Build Coastguard Worker# This collects all variables containing libaom test source files.
26*77c1e3ccSAndroid Build Coastguard Workerfunction(add_to_libaom_test_srcs src_list_name)
27*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_TEST_SOURCE_VARS ${src_list_name})
28*77c1e3ccSAndroid Build Coastguard Worker  set(AOM_TEST_SOURCE_VARS "${AOM_TEST_SOURCE_VARS}" PARENT_SCOPE)
29*77c1e3ccSAndroid Build Coastguard Workerendfunction()
30*77c1e3ccSAndroid Build Coastguard Worker
31*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_UNIT_TEST_WRAPPER_SOURCES "${AOM_ROOT}/test/test_libaom.cc")
32*77c1e3ccSAndroid Build Coastguard Workeradd_to_libaom_test_srcs(AOM_UNIT_TEST_WRAPPER_SOURCES)
33*77c1e3ccSAndroid Build Coastguard Worker
34*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_UNIT_TEST_COMMON_SOURCES
35*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/acm_random.h"
36*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/aom_image_test.cc"
37*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/aom_integer_test.cc"
38*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/av1_config_test.cc"
39*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/av1_key_value_api_test.cc"
40*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/block_test.cc"
41*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/codec_factory.h"
42*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/function_equivalence_test.h"
43*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/log2_test.cc"
44*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/md5_helper.h"
45*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/register_state_check.h"
46*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/test_vectors.cc"
47*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/test_vectors.h"
48*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/transform_test_base.h"
49*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/util.h"
50*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/video_source.h")
51*77c1e3ccSAndroid Build Coastguard Workeradd_to_libaom_test_srcs(AOM_UNIT_TEST_COMMON_SOURCES)
52*77c1e3ccSAndroid Build Coastguard Worker
53*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_UNIT_TEST_DECODER_SOURCES "${AOM_ROOT}/test/decode_api_test.cc"
54*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/decode_scalability_test.cc"
55*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/external_frame_buffer_test.cc"
56*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/invalid_file_test.cc"
57*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/test_vector_test.cc"
58*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/ivf_video_source.h")
59*77c1e3ccSAndroid Build Coastguard Workeradd_to_libaom_test_srcs(AOM_UNIT_TEST_DECODER_SOURCES)
60*77c1e3ccSAndroid Build Coastguard Worker
61*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
62*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/active_map_test.cc"
63*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/aq_segment_test.cc"
64*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/av1_external_partition_test.cc"
65*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/avif_progressive_test.cc"
66*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/borders_test.cc"
67*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/cpu_speed_test.cc"
68*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/cpu_used_firstpass_test.cc"
69*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/datarate_test.cc"
70*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/datarate_test.h"
71*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/deltaq_mode_test.cc"
72*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/dropframe_encode_test.cc"
73*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/svc_datarate_test.cc"
74*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/encode_api_test.cc"
75*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/encode_small_width_height_test.cc"
76*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/encode_test_driver.cc"
77*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/encode_test_driver.h"
78*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/end_to_end_psnr_test.cc"
79*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/forced_max_frame_width_height_test.cc"
80*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/force_key_frame_test.cc"
81*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/gf_pyr_height_test.cc"
82*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/rt_end_to_end_test.cc"
83*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/allintra_end_to_end_test.cc"
84*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/loopfilter_control_test.cc"
85*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/frame_size_tests.cc"
86*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/horz_superres_test.cc"
87*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/i420_video_source.h"
88*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/level_test.cc"
89*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/monochrome_test.cc"
90*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/postproc_filters_test.cc"
91*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/resize_test.cc"
92*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/scalability_test.cc"
93*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/sharpness_test.cc"
94*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/y4m_test.cc"
95*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/y4m_video_source.h"
96*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/yuv_video_source.h"
97*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/time_stamp_test.cc")
98*77c1e3ccSAndroid Build Coastguard Workeradd_to_libaom_test_srcs(AOM_UNIT_TEST_ENCODER_SOURCES)
99*77c1e3ccSAndroid Build Coastguard Worker
100*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_ENCODE_PERF_TEST_SOURCES "${AOM_ROOT}/test/encode_perf_test.cc")
101*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_UNIT_TEST_WEBM_SOURCES "${AOM_ROOT}/test/webm_video_source.h")
102*77c1e3ccSAndroid Build Coastguard Workeradd_to_libaom_test_srcs(AOM_UNIT_TEST_WEBM_SOURCES)
103*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_TEST_INTRA_PRED_SPEED_SOURCES
104*77c1e3ccSAndroid Build Coastguard Worker            "${AOM_ROOT}/test/test_intra_pred_speed.cc")
105*77c1e3ccSAndroid Build Coastguard Worker
106*77c1e3ccSAndroid Build Coastguard Workerif(CONFIG_AV1_DECODER)
107*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
108*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/decode_test_driver.cc"
109*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/decode_test_driver.h")
110*77c1e3ccSAndroid Build Coastguard Workerendif()
111*77c1e3ccSAndroid Build Coastguard Worker
112*77c1e3ccSAndroid Build Coastguard Workerif(CONFIG_INTERNAL_STATS AND CONFIG_AV1_HIGHBITDEPTH)
113*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
114*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/hbd_metrics_test.cc")
115*77c1e3ccSAndroid Build Coastguard Workerendif()
116*77c1e3ccSAndroid Build Coastguard Worker
117*77c1e3ccSAndroid Build Coastguard Workerlist(APPEND AOM_DECODE_PERF_TEST_SOURCES "${AOM_ROOT}/test/decode_perf_test.cc")
118*77c1e3ccSAndroid Build Coastguard Worker
119*77c1e3ccSAndroid Build Coastguard Workerif(CONFIG_REALTIME_ONLY)
120*77c1e3ccSAndroid Build Coastguard Worker  list(REMOVE_ITEM AOM_UNIT_TEST_ENCODER_SOURCES
121*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/allintra_end_to_end_test.cc"
122*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/av1_external_partition_test.cc"
123*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/avif_progressive_test.cc"
124*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/borders_test.cc"
125*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/cpu_speed_test.cc"
126*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/cpu_used_firstpass_test.cc"
127*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/deltaq_mode_test.cc"
128*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/dropframe_encode_test.cc"
129*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/end_to_end_psnr_test.cc"
130*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/force_key_frame_test.cc"
131*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/gf_pyr_height_test.cc"
132*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/horz_superres_test.cc"
133*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/level_test.cc"
134*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/monochrome_test.cc"
135*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/postproc_filters_test.cc"
136*77c1e3ccSAndroid Build Coastguard Worker                   "${AOM_ROOT}/test/sharpness_test.cc")
137*77c1e3ccSAndroid Build Coastguard Workerendif()
138*77c1e3ccSAndroid Build Coastguard Worker
139*77c1e3ccSAndroid Build Coastguard Workerif(NOT BUILD_SHARED_LIBS)
140*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
141*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/aom_mem_test.cc"
142*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_common_int_test.cc"
143*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_scale_test.cc"
144*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/cdef_test.cc"
145*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/cfl_test.cc"
146*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/convolve_test.cc"
147*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/hiprec_convolve_test.cc"
148*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/hiprec_convolve_test_util.cc"
149*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/hiprec_convolve_test_util.h"
150*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/intrabc_test.cc"
151*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/intrapred_test.cc"
152*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/lpf_test.cc"
153*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/scan_test.cc"
154*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/selfguided_filter_test.cc"
155*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/simd_cmp_impl.inc"
156*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/simd_impl.h")
157*77c1e3ccSAndroid Build Coastguard Worker
158*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_REALTIME_ONLY AND NOT CONFIG_AV1_DECODER)
159*77c1e3ccSAndroid Build Coastguard Worker    list(REMOVE_ITEM AOM_UNIT_TEST_COMMON_SOURCES "${AOM_ROOT}/test/cfl_test.cc"
160*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/hiprec_convolve_test.cc"
161*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/hiprec_convolve_test_util.cc"
162*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/hiprec_convolve_test_util.h")
163*77c1e3ccSAndroid Build Coastguard Worker  endif()
164*77c1e3ccSAndroid Build Coastguard Worker
165*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE2)
166*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_INTRIN_SSE2
167*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_cmp_sse2.cc")
168*77c1e3ccSAndroid Build Coastguard Worker    add_to_libaom_test_srcs(AOM_UNIT_TEST_COMMON_INTRIN_SSE2)
169*77c1e3ccSAndroid Build Coastguard Worker  endif()
170*77c1e3ccSAndroid Build Coastguard Worker
171*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSSE3)
172*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_INTRIN_SSSE3
173*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_cmp_ssse3.cc")
174*77c1e3ccSAndroid Build Coastguard Worker    add_to_libaom_test_srcs(AOM_UNIT_TEST_COMMON_INTRIN_SSSE3)
175*77c1e3ccSAndroid Build Coastguard Worker  endif()
176*77c1e3ccSAndroid Build Coastguard Worker
177*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_1)
178*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_INTRIN_SSE4_1
179*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_cmp_sse4.cc")
180*77c1e3ccSAndroid Build Coastguard Worker    add_to_libaom_test_srcs(AOM_UNIT_TEST_COMMON_INTRIN_SSE4_1)
181*77c1e3ccSAndroid Build Coastguard Worker  endif()
182*77c1e3ccSAndroid Build Coastguard Worker
183*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_AVX2)
184*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_INTRIN_AVX2
185*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_cmp_avx2.cc")
186*77c1e3ccSAndroid Build Coastguard Worker    add_to_libaom_test_srcs(AOM_UNIT_TEST_COMMON_INTRIN_AVX2)
187*77c1e3ccSAndroid Build Coastguard Worker  endif()
188*77c1e3ccSAndroid Build Coastguard Worker
189*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
190*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/arf_freq_test.cc"
191*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_convolve_test.cc"
192*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_fwd_txfm1d_test.cc"
193*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_fwd_txfm2d_test.cc"
194*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_inv_txfm1d_test.cc"
195*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_inv_txfm2d_test.cc"
196*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_k_means_test.cc"
197*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_nn_predict_test.cc"
198*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_round_shift_array_test.cc"
199*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_softmax_test.cc"
200*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_txfm_test.cc"
201*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_txfm_test.h"
202*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/av1_wedge_utils_test.cc"
203*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/avg_test.cc"
204*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/blend_a64_mask_1d_test.cc"
205*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/blend_a64_mask_test.cc"
206*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/comp_avg_pred_test.cc"
207*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/comp_mask_pred_test.cc"
208*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/disflow_test.cc"
209*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/encodemb_test.cc"
210*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/encodetxb_test.cc"
211*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/end_to_end_qmpsnr_test.cc"
212*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/end_to_end_ssim_test.cc"
213*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/error_block_test.cc"
214*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/fdct4x4_test.cc"
215*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/fft_test.cc"
216*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/firstpass_test.cc"
217*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/frame_resize_test.cc"
218*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/fwht4x4_test.cc"
219*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/hadamard_test.cc"
220*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/horver_correlation_test.cc"
221*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/masked_sad_test.cc"
222*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/masked_variance_test.cc"
223*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/metadata_test.cc"
224*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/minmax_test.cc"
225*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/motion_vector_test.cc"
226*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/mv_cost_test.cc"
227*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/obmc_sad_test.cc"
228*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/obmc_variance_test.cc"
229*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/pickrst_test.cc"
230*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/reconinter_test.cc"
231*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/sad_test.cc"
232*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/subtract_test.cc"
233*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/sum_squares_test.cc"
234*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/sse_sum_test.cc"
235*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/variance_test.cc"
236*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/warp_filter_test.cc"
237*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/warp_filter_test_util.cc"
238*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/warp_filter_test_util.h"
239*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/webmenc_test.cc"
240*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/wiener_test.cc")
241*77c1e3ccSAndroid Build Coastguard Worker
242*77c1e3ccSAndroid Build Coastguard Worker  if(NOT CONFIG_REALTIME_ONLY)
243*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_INTRIN_SSE4_1
244*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/corner_match_test.cc")
245*77c1e3ccSAndroid Build Coastguard Worker  endif()
246*77c1e3ccSAndroid Build Coastguard Worker
247*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_ACCOUNTING)
248*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
249*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/accounting_test.cc")
250*77c1e3ccSAndroid Build Coastguard Worker  endif()
251*77c1e3ccSAndroid Build Coastguard Worker
252*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_DECODER AND CONFIG_AV1_ENCODER)
253*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
254*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/altref_test.cc"
255*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_encoder_parms_get_to_decoder.cc"
256*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_ext_tile_test.cc"
257*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/binary_codes_test.cc"
258*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/boolcoder_test.cc"
259*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/cnn_test.cc"
260*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/decode_multithreaded_test.cc"
261*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/divu_small_test.cc"
262*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/dr_prediction_test.cc"
263*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/ec_test.cc"
264*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/error_resilience_test.cc"
265*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/ethread_test.cc"
266*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/film_grain_table_test.cc"
267*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/kf_test.cc"
268*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/lossless_test.cc"
269*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/noise_model_test.cc"
270*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/quant_test.cc"
271*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/ratectrl_test.cc"
272*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/rd_test.cc"
273*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/sb_multipass_test.cc"
274*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/sb_qp_sweep_test.cc"
275*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/screen_content_test.cc"
276*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/segment_binarization_sync.cc"
277*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/still_picture_test.cc"
278*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/temporal_filter_test.cc"
279*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/tile_config_test.cc"
280*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/tile_independence_test.cc"
281*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/tpl_model_test.cc")
282*77c1e3ccSAndroid Build Coastguard Worker    if(CONFIG_AV1_HIGHBITDEPTH)
283*77c1e3ccSAndroid Build Coastguard Worker      list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
284*77c1e3ccSAndroid Build Coastguard Worker                  "${AOM_ROOT}/test/coding_path_sync.cc")
285*77c1e3ccSAndroid Build Coastguard Worker    endif()
286*77c1e3ccSAndroid Build Coastguard Worker  endif()
287*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_REALTIME_ONLY)
288*77c1e3ccSAndroid Build Coastguard Worker    list(REMOVE_ITEM AOM_UNIT_TEST_COMMON_SOURCES
289*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/altref_test.cc"
290*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/av1_encoder_parms_get_to_decoder.cc"
291*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/av1_ext_tile_test.cc"
292*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/binary_codes_test.cc"
293*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/cnn_test.cc"
294*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/decode_multithreaded_test.cc"
295*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/error_resilience_test.cc"
296*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/film_grain_table_test.cc"
297*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/kf_test.cc"
298*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/lossless_test.cc"
299*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/noise_model_test.cc"
300*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/sb_multipass_test.cc"
301*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/sb_qp_sweep_test.cc"
302*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/selfguided_filter_test.cc"
303*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/screen_content_test.cc"
304*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/still_picture_test.cc"
305*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/tile_independence_test.cc"
306*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/tpl_model_test.cc")
307*77c1e3ccSAndroid Build Coastguard Worker  endif()
308*77c1e3ccSAndroid Build Coastguard Worker
309*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_FPMT_TEST AND (NOT CONFIG_REALTIME_ONLY))
310*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
311*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/frame_parallel_enc_test.cc")
312*77c1e3ccSAndroid Build Coastguard Worker  endif()
313*77c1e3ccSAndroid Build Coastguard Worker
314*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE2)
315*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
316*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_sse2_test.cc")
317*77c1e3ccSAndroid Build Coastguard Worker  endif()
318*77c1e3ccSAndroid Build Coastguard Worker
319*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSSE3)
320*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
321*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_ssse3_test.cc")
322*77c1e3ccSAndroid Build Coastguard Worker  endif()
323*77c1e3ccSAndroid Build Coastguard Worker
324*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_1)
325*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
326*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_sse4_test.cc")
327*77c1e3ccSAndroid Build Coastguard Worker  endif()
328*77c1e3ccSAndroid Build Coastguard Worker
329*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_1 OR HAVE_NEON)
330*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
331*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/filterintra_test.cc")
332*77c1e3ccSAndroid Build Coastguard Worker
333*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
334*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_highbd_iht_test.cc")
335*77c1e3ccSAndroid Build Coastguard Worker  endif()
336*77c1e3ccSAndroid Build Coastguard Worker
337*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_AVX2)
338*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_COMMON_SOURCES
339*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/simd_avx2_test.cc")
340*77c1e3ccSAndroid Build Coastguard Worker  endif()
341*77c1e3ccSAndroid Build Coastguard Worker
342*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_TEMPORAL_DENOISING AND (HAVE_SSE2 OR HAVE_NEON))
343*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
344*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_temporal_denoiser_test.cc")
345*77c1e3ccSAndroid Build Coastguard Worker  endif()
346*77c1e3ccSAndroid Build Coastguard Worker
347*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_HIGHBITDEPTH)
348*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_INTRIN_SSE4_1
349*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_quantize_test.cc")
350*77c1e3ccSAndroid Build Coastguard Worker  endif()
351*77c1e3ccSAndroid Build Coastguard Worker
352*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE2 OR HAVE_NEON)
353*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
354*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/quantize_func_test.cc")
355*77c1e3ccSAndroid Build Coastguard Worker  endif()
356*77c1e3ccSAndroid Build Coastguard Worker
357*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_1)
358*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
359*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_convolve_scale_test.cc"
360*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_horz_only_frame_superres_test.cc"
361*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/intra_edge_test.cc")
362*77c1e3ccSAndroid Build Coastguard Worker  endif()
363*77c1e3ccSAndroid Build Coastguard Worker
364*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_NEON)
365*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES
366*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_convolve_scale_test.cc"
367*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/av1_horz_only_frame_superres_test.cc"
368*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/intra_edge_test.cc")
369*77c1e3ccSAndroid Build Coastguard Worker  endif()
370*77c1e3ccSAndroid Build Coastguard Worker
371*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_2 OR HAVE_ARM_CRC32)
372*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_UNIT_TEST_ENCODER_SOURCES "${AOM_ROOT}/test/hash_test.cc")
373*77c1e3ccSAndroid Build Coastguard Worker  endif()
374*77c1e3ccSAndroid Build Coastguard Worker
375*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_REALTIME_ONLY)
376*77c1e3ccSAndroid Build Coastguard Worker    list(REMOVE_ITEM AOM_UNIT_TEST_ENCODER_SOURCES
377*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/disflow_test.cc"
378*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/end_to_end_qmpsnr_test.cc"
379*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/end_to_end_ssim_test.cc"
380*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/firstpass_test.cc"
381*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/motion_vector_test.cc"
382*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/obmc_sad_test.cc"
383*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/obmc_variance_test.cc"
384*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/pickrst_test.cc"
385*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/warp_filter_test.cc"
386*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/warp_filter_test_util.cc"
387*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/warp_filter_test_util.h"
388*77c1e3ccSAndroid Build Coastguard Worker                     "${AOM_ROOT}/test/wiener_test.cc")
389*77c1e3ccSAndroid Build Coastguard Worker  endif()
390*77c1e3ccSAndroid Build Coastguard Workerendif()
391*77c1e3ccSAndroid Build Coastguard Worker
392*77c1e3ccSAndroid Build Coastguard Workerif(CONFIG_AV1_ENCODER AND ENABLE_TESTS)
393*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_RC_TEST_SOURCES "${AOM_ROOT}/test/codec_factory.h"
394*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/decode_test_driver.cc"
395*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/decode_test_driver.h"
396*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/encode_test_driver.cc"
397*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/encode_test_driver.h"
398*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/i420_video_source.h"
399*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/ratectrl_rtc_test.cc"
400*77c1e3ccSAndroid Build Coastguard Worker              "${AOM_ROOT}/test/test_aom_rc.cc" "${AOM_ROOT}/test/util.h")
401*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_THREE_PASS)
402*77c1e3ccSAndroid Build Coastguard Worker    # Add the dependencies of "${AOM_ROOT}/common/ivfdec.c".
403*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_RC_TEST_SOURCES "${AOM_ROOT}/common/tools_common.c"
404*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/common/tools_common.h"
405*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_GEN_SRC_DIR}/usage_exit.c")
406*77c1e3ccSAndroid Build Coastguard Worker  endif()
407*77c1e3ccSAndroid Build Coastguard Workerendif()
408*77c1e3ccSAndroid Build Coastguard Worker
409*77c1e3ccSAndroid Build Coastguard Workerif(ENABLE_TESTS)
410*77c1e3ccSAndroid Build Coastguard Worker  if(BUILD_SHARED_LIBS AND APPLE) # Silence an RPATH warning.
411*77c1e3ccSAndroid Build Coastguard Worker    set(CMAKE_MACOSX_RPATH 1)
412*77c1e3ccSAndroid Build Coastguard Worker  endif()
413*77c1e3ccSAndroid Build Coastguard Worker
414*77c1e3ccSAndroid Build Coastguard Worker  add_library(
415*77c1e3ccSAndroid Build Coastguard Worker    aom_gtest STATIC
416*77c1e3ccSAndroid Build Coastguard Worker    "${AOM_ROOT}/third_party/googletest/src/googletest/src/gtest-all.cc")
417*77c1e3ccSAndroid Build Coastguard Worker  set_property(TARGET aom_gtest PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
418*77c1e3ccSAndroid Build Coastguard Worker  # There are -Wundef warnings in the gtest headers. Tell the compiler to treat
419*77c1e3ccSAndroid Build Coastguard Worker  # the gtest include directories as system include directories and suppress
420*77c1e3ccSAndroid Build Coastguard Worker  # compiler warnings in the gtest headers.
421*77c1e3ccSAndroid Build Coastguard Worker  target_include_directories(
422*77c1e3ccSAndroid Build Coastguard Worker    aom_gtest SYSTEM
423*77c1e3ccSAndroid Build Coastguard Worker    PUBLIC "${AOM_ROOT}/third_party/googletest/src/googletest/include"
424*77c1e3ccSAndroid Build Coastguard Worker    PRIVATE "${AOM_ROOT}/third_party/googletest/src/googletest")
425*77c1e3ccSAndroid Build Coastguard Worker
426*77c1e3ccSAndroid Build Coastguard Worker  # The definition of GTEST_HAS_PTHREAD must be public, since it's checked by
427*77c1e3ccSAndroid Build Coastguard Worker  # interface headers, not just by the implementation.
428*77c1e3ccSAndroid Build Coastguard Worker  if(NOT (MSVC OR WIN32))
429*77c1e3ccSAndroid Build Coastguard Worker    if(CONFIG_MULTITHREAD AND CMAKE_USE_PTHREADS_INIT)
430*77c1e3ccSAndroid Build Coastguard Worker      target_compile_definitions(aom_gtest PUBLIC GTEST_HAS_PTHREAD=1)
431*77c1e3ccSAndroid Build Coastguard Worker    else()
432*77c1e3ccSAndroid Build Coastguard Worker      target_compile_definitions(aom_gtest PUBLIC GTEST_HAS_PTHREAD=0)
433*77c1e3ccSAndroid Build Coastguard Worker    endif()
434*77c1e3ccSAndroid Build Coastguard Worker  endif()
435*77c1e3ccSAndroid Build Coastguard Workerendif()
436*77c1e3ccSAndroid Build Coastguard Worker
437*77c1e3ccSAndroid Build Coastguard Worker# Setup testdata download targets, test build targets, and test run targets. The
438*77c1e3ccSAndroid Build Coastguard Worker# libaom and app util targets must exist before this function is called.
439*77c1e3ccSAndroid Build Coastguard Workerfunction(setup_aom_test_targets)
440*77c1e3ccSAndroid Build Coastguard Worker
441*77c1e3ccSAndroid Build Coastguard Worker  # TODO(tomfinegan): Build speed optimization. $AOM_UNIT_TEST_COMMON_SOURCES
442*77c1e3ccSAndroid Build Coastguard Worker  # and $AOM_UNIT_TEST_ENCODER_SOURCES are very large. The build of test targets
443*77c1e3ccSAndroid Build Coastguard Worker  # could be sped up (on multicore build machines) by compiling sources in each
444*77c1e3ccSAndroid Build Coastguard Worker  # list into separate object library targets, and then linking them into
445*77c1e3ccSAndroid Build Coastguard Worker  # test_libaom.
446*77c1e3ccSAndroid Build Coastguard Worker  add_library(test_aom_common OBJECT ${AOM_UNIT_TEST_COMMON_SOURCES})
447*77c1e3ccSAndroid Build Coastguard Worker  set_property(TARGET test_aom_common PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
448*77c1e3ccSAndroid Build Coastguard Worker  add_dependencies(test_aom_common aom)
449*77c1e3ccSAndroid Build Coastguard Worker  target_link_libraries(test_aom_common ${AOM_LIB_LINK_TYPE} aom_gtest)
450*77c1e3ccSAndroid Build Coastguard Worker
451*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_DECODER)
452*77c1e3ccSAndroid Build Coastguard Worker    add_library(test_aom_decoder OBJECT ${AOM_UNIT_TEST_DECODER_SOURCES})
453*77c1e3ccSAndroid Build Coastguard Worker    set_property(TARGET test_aom_decoder PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
454*77c1e3ccSAndroid Build Coastguard Worker    add_dependencies(test_aom_decoder aom)
455*77c1e3ccSAndroid Build Coastguard Worker    target_link_libraries(test_aom_decoder ${AOM_LIB_LINK_TYPE} aom_gtest)
456*77c1e3ccSAndroid Build Coastguard Worker  endif()
457*77c1e3ccSAndroid Build Coastguard Worker
458*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_ENCODER)
459*77c1e3ccSAndroid Build Coastguard Worker    add_library(test_aom_encoder OBJECT ${AOM_UNIT_TEST_ENCODER_SOURCES})
460*77c1e3ccSAndroid Build Coastguard Worker    set_property(TARGET test_aom_encoder PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
461*77c1e3ccSAndroid Build Coastguard Worker    add_dependencies(test_aom_encoder aom)
462*77c1e3ccSAndroid Build Coastguard Worker    target_link_libraries(test_aom_encoder ${AOM_LIB_LINK_TYPE} aom_gtest)
463*77c1e3ccSAndroid Build Coastguard Worker  endif()
464*77c1e3ccSAndroid Build Coastguard Worker
465*77c1e3ccSAndroid Build Coastguard Worker  add_executable(test_libaom ${AOM_UNIT_TEST_WRAPPER_SOURCES}
466*77c1e3ccSAndroid Build Coastguard Worker                             $<TARGET_OBJECTS:aom_common_app_util>
467*77c1e3ccSAndroid Build Coastguard Worker                             $<TARGET_OBJECTS:aom_usage_exit>
468*77c1e3ccSAndroid Build Coastguard Worker                             $<TARGET_OBJECTS:test_aom_common>)
469*77c1e3ccSAndroid Build Coastguard Worker  set_property(TARGET test_libaom PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
470*77c1e3ccSAndroid Build Coastguard Worker  list(APPEND AOM_APP_TARGETS test_libaom)
471*77c1e3ccSAndroid Build Coastguard Worker
472*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_DECODER)
473*77c1e3ccSAndroid Build Coastguard Worker    target_sources(test_libaom PRIVATE $<TARGET_OBJECTS:aom_decoder_app_util>
474*77c1e3ccSAndroid Build Coastguard Worker                   $<TARGET_OBJECTS:test_aom_decoder>)
475*77c1e3ccSAndroid Build Coastguard Worker
476*77c1e3ccSAndroid Build Coastguard Worker    if(ENABLE_DECODE_PERF_TESTS AND CONFIG_WEBM_IO)
477*77c1e3ccSAndroid Build Coastguard Worker      target_sources(test_libaom PRIVATE ${AOM_DECODE_PERF_TEST_SOURCES})
478*77c1e3ccSAndroid Build Coastguard Worker    endif()
479*77c1e3ccSAndroid Build Coastguard Worker  endif()
480*77c1e3ccSAndroid Build Coastguard Worker
481*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_ENCODER)
482*77c1e3ccSAndroid Build Coastguard Worker    target_sources(test_libaom PRIVATE $<TARGET_OBJECTS:test_aom_encoder>
483*77c1e3ccSAndroid Build Coastguard Worker                   $<TARGET_OBJECTS:aom_encoder_app_util>)
484*77c1e3ccSAndroid Build Coastguard Worker
485*77c1e3ccSAndroid Build Coastguard Worker    if(ENABLE_ENCODE_PERF_TESTS)
486*77c1e3ccSAndroid Build Coastguard Worker      target_sources(test_libaom PRIVATE ${AOM_ENCODE_PERF_TEST_SOURCES})
487*77c1e3ccSAndroid Build Coastguard Worker    endif()
488*77c1e3ccSAndroid Build Coastguard Worker
489*77c1e3ccSAndroid Build Coastguard Worker    if(NOT BUILD_SHARED_LIBS)
490*77c1e3ccSAndroid Build Coastguard Worker      add_executable(test_intra_pred_speed ${AOM_TEST_INTRA_PRED_SPEED_SOURCES}
491*77c1e3ccSAndroid Build Coastguard Worker                                           $<TARGET_OBJECTS:aom_common_app_util>
492*77c1e3ccSAndroid Build Coastguard Worker                                           $<TARGET_OBJECTS:aom_usage_exit>)
493*77c1e3ccSAndroid Build Coastguard Worker      set_property(TARGET test_intra_pred_speed
494*77c1e3ccSAndroid Build Coastguard Worker                   PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
495*77c1e3ccSAndroid Build Coastguard Worker      target_link_libraries(test_intra_pred_speed ${AOM_LIB_LINK_TYPE} aom
496*77c1e3ccSAndroid Build Coastguard Worker                            aom_gtest)
497*77c1e3ccSAndroid Build Coastguard Worker      list(APPEND AOM_APP_TARGETS test_intra_pred_speed)
498*77c1e3ccSAndroid Build Coastguard Worker    endif()
499*77c1e3ccSAndroid Build Coastguard Worker  endif()
500*77c1e3ccSAndroid Build Coastguard Worker
501*77c1e3ccSAndroid Build Coastguard Worker  target_link_libraries(test_libaom ${AOM_LIB_LINK_TYPE} aom aom_gtest)
502*77c1e3ccSAndroid Build Coastguard Worker
503*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_WEBM_IO)
504*77c1e3ccSAndroid Build Coastguard Worker    target_sources(test_libaom PRIVATE $<TARGET_OBJECTS:webm>)
505*77c1e3ccSAndroid Build Coastguard Worker  endif()
506*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE2)
507*77c1e3ccSAndroid Build Coastguard Worker    add_intrinsics_source_to_target("-msse2" "test_libaom"
508*77c1e3ccSAndroid Build Coastguard Worker                                    "AOM_UNIT_TEST_COMMON_INTRIN_SSE2")
509*77c1e3ccSAndroid Build Coastguard Worker  endif()
510*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSSE3)
511*77c1e3ccSAndroid Build Coastguard Worker    add_intrinsics_source_to_target("-mssse3" "test_libaom"
512*77c1e3ccSAndroid Build Coastguard Worker                                    "AOM_UNIT_TEST_COMMON_INTRIN_SSSE3")
513*77c1e3ccSAndroid Build Coastguard Worker  endif()
514*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_SSE4_1)
515*77c1e3ccSAndroid Build Coastguard Worker    add_intrinsics_source_to_target("-msse4.1" "test_libaom"
516*77c1e3ccSAndroid Build Coastguard Worker                                    "AOM_UNIT_TEST_COMMON_INTRIN_SSE4_1")
517*77c1e3ccSAndroid Build Coastguard Worker    if(CONFIG_AV1_ENCODER)
518*77c1e3ccSAndroid Build Coastguard Worker      if(AOM_UNIT_TEST_ENCODER_INTRIN_SSE4_1)
519*77c1e3ccSAndroid Build Coastguard Worker        add_intrinsics_source_to_target("-msse4.1" "test_libaom"
520*77c1e3ccSAndroid Build Coastguard Worker                                        "AOM_UNIT_TEST_ENCODER_INTRIN_SSE4_1")
521*77c1e3ccSAndroid Build Coastguard Worker      endif()
522*77c1e3ccSAndroid Build Coastguard Worker    endif()
523*77c1e3ccSAndroid Build Coastguard Worker  endif()
524*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_AVX2)
525*77c1e3ccSAndroid Build Coastguard Worker    add_intrinsics_source_to_target("-mavx2" "test_libaom"
526*77c1e3ccSAndroid Build Coastguard Worker                                    "AOM_UNIT_TEST_COMMON_INTRIN_AVX2")
527*77c1e3ccSAndroid Build Coastguard Worker  endif()
528*77c1e3ccSAndroid Build Coastguard Worker  if(HAVE_NEON)
529*77c1e3ccSAndroid Build Coastguard Worker    add_intrinsics_source_to_target("${AOM_NEON_INTRIN_FLAG}" "test_libaom"
530*77c1e3ccSAndroid Build Coastguard Worker                                    "AOM_UNIT_TEST_COMMON_INTRIN_NEON")
531*77c1e3ccSAndroid Build Coastguard Worker  endif()
532*77c1e3ccSAndroid Build Coastguard Worker
533*77c1e3ccSAndroid Build Coastguard Worker  if(ENABLE_TESTDATA)
534*77c1e3ccSAndroid Build Coastguard Worker    make_test_data_lists("${AOM_UNIT_TEST_DATA_LIST_FILE}" test_files
535*77c1e3ccSAndroid Build Coastguard Worker                         test_file_checksums)
536*77c1e3ccSAndroid Build Coastguard Worker    list(LENGTH test_files num_test_files)
537*77c1e3ccSAndroid Build Coastguard Worker    list(LENGTH test_file_checksums num_test_file_checksums)
538*77c1e3ccSAndroid Build Coastguard Worker
539*77c1e3ccSAndroid Build Coastguard Worker    math(EXPR max_file_index "${num_test_files} - 1")
540*77c1e3ccSAndroid Build Coastguard Worker    foreach(test_index RANGE ${max_file_index})
541*77c1e3ccSAndroid Build Coastguard Worker      list(GET test_files ${test_index} test_file)
542*77c1e3ccSAndroid Build Coastguard Worker      list(GET test_file_checksums ${test_index} test_file_checksum)
543*77c1e3ccSAndroid Build Coastguard Worker      add_custom_target(
544*77c1e3ccSAndroid Build Coastguard Worker        testdata_${test_index}
545*77c1e3ccSAndroid Build Coastguard Worker        COMMAND ${CMAKE_COMMAND}
546*77c1e3ccSAndroid Build Coastguard Worker                -DAOM_CONFIG_DIR="${AOM_CONFIG_DIR}" -DAOM_ROOT="${AOM_ROOT}"
547*77c1e3ccSAndroid Build Coastguard Worker                -DAOM_TEST_FILE="${test_file}"
548*77c1e3ccSAndroid Build Coastguard Worker                -DAOM_TEST_CHECKSUM=${test_file_checksum} -P
549*77c1e3ccSAndroid Build Coastguard Worker                "${AOM_ROOT}/test/test_data_download_worker.cmake")
550*77c1e3ccSAndroid Build Coastguard Worker      set_property(TARGET testdata_${test_index}
551*77c1e3ccSAndroid Build Coastguard Worker                   PROPERTY FOLDER ${AOM_IDE_TESTDATA_FOLDER})
552*77c1e3ccSAndroid Build Coastguard Worker      list(APPEND testdata_targets testdata_${test_index})
553*77c1e3ccSAndroid Build Coastguard Worker    endforeach()
554*77c1e3ccSAndroid Build Coastguard Worker
555*77c1e3ccSAndroid Build Coastguard Worker    # Create a custom build target for running each test data download target.
556*77c1e3ccSAndroid Build Coastguard Worker    add_custom_target(testdata)
557*77c1e3ccSAndroid Build Coastguard Worker    add_dependencies(testdata ${testdata_targets})
558*77c1e3ccSAndroid Build Coastguard Worker    set_property(TARGET testdata PROPERTY FOLDER ${AOM_IDE_TESTDATA_FOLDER})
559*77c1e3ccSAndroid Build Coastguard Worker
560*77c1e3ccSAndroid Build Coastguard Worker    # Skip creation of test run targets when generating for Visual Studio and
561*77c1e3ccSAndroid Build Coastguard Worker    # Xcode unless the user explicitly requests IDE test hosting. This is done
562*77c1e3ccSAndroid Build Coastguard Worker    # to make build cycles in the IDE tolerable when the IDE command for build
563*77c1e3ccSAndroid Build Coastguard Worker    # project is used to build AOM. Default behavior in IDEs is to build all
564*77c1e3ccSAndroid Build Coastguard Worker    # targets, and the test run takes hours.
565*77c1e3ccSAndroid Build Coastguard Worker    if(((NOT MSVC) AND (NOT XCODE)) OR ENABLE_IDE_TEST_HOSTING)
566*77c1e3ccSAndroid Build Coastguard Worker
567*77c1e3ccSAndroid Build Coastguard Worker      # Pick a reasonable number of targets (this controls parallelization).
568*77c1e3ccSAndroid Build Coastguard Worker      processorcount(num_test_targets)
569*77c1e3ccSAndroid Build Coastguard Worker      if(num_test_targets EQUAL 0) # Just default to 10 targets when there's no
570*77c1e3ccSAndroid Build Coastguard Worker                                   # processor count available.
571*77c1e3ccSAndroid Build Coastguard Worker        set(num_test_targets 10)
572*77c1e3ccSAndroid Build Coastguard Worker      endif()
573*77c1e3ccSAndroid Build Coastguard Worker
574*77c1e3ccSAndroid Build Coastguard Worker      math(EXPR max_shard_index "${num_test_targets} - 1")
575*77c1e3ccSAndroid Build Coastguard Worker      foreach(shard_index RANGE ${max_shard_index})
576*77c1e3ccSAndroid Build Coastguard Worker        set(test_name "test_${shard_index}")
577*77c1e3ccSAndroid Build Coastguard Worker        add_custom_target(${test_name}
578*77c1e3ccSAndroid Build Coastguard Worker                          COMMAND ${CMAKE_COMMAND}
579*77c1e3ccSAndroid Build Coastguard Worker                                  -DGTEST_SHARD_INDEX=${shard_index}
580*77c1e3ccSAndroid Build Coastguard Worker                                  -DGTEST_TOTAL_SHARDS=${num_test_targets}
581*77c1e3ccSAndroid Build Coastguard Worker                                  -DTEST_LIBAOM=$<TARGET_FILE:test_libaom> -P
582*77c1e3ccSAndroid Build Coastguard Worker                                  "${AOM_ROOT}/test/test_runner.cmake"
583*77c1e3ccSAndroid Build Coastguard Worker                          DEPENDS testdata test_libaom)
584*77c1e3ccSAndroid Build Coastguard Worker        set_property(TARGET ${test_name} PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
585*77c1e3ccSAndroid Build Coastguard Worker        list(APPEND test_targets ${test_name})
586*77c1e3ccSAndroid Build Coastguard Worker      endforeach()
587*77c1e3ccSAndroid Build Coastguard Worker      add_custom_target(runtests)
588*77c1e3ccSAndroid Build Coastguard Worker      set_property(TARGET runtests PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
589*77c1e3ccSAndroid Build Coastguard Worker      add_dependencies(runtests ${test_targets})
590*77c1e3ccSAndroid Build Coastguard Worker    endif()
591*77c1e3ccSAndroid Build Coastguard Worker  endif()
592*77c1e3ccSAndroid Build Coastguard Worker
593*77c1e3ccSAndroid Build Coastguard Worker  # Libaom_test_srcs.txt generation.
594*77c1e3ccSAndroid Build Coastguard Worker  set(libaom_test_srcs_txt_file "${AOM_CONFIG_DIR}/libaom_test_srcs.txt")
595*77c1e3ccSAndroid Build Coastguard Worker  file(WRITE "${libaom_test_srcs_txt_file}"
596*77c1e3ccSAndroid Build Coastguard Worker       "# This file is generated. DO NOT EDIT.\n")
597*77c1e3ccSAndroid Build Coastguard Worker
598*77c1e3ccSAndroid Build Coastguard Worker  # Static source file list first.
599*77c1e3ccSAndroid Build Coastguard Worker  list(SORT AOM_TEST_SOURCE_VARS)
600*77c1e3ccSAndroid Build Coastguard Worker  foreach(aom_test_source_var ${AOM_TEST_SOURCE_VARS})
601*77c1e3ccSAndroid Build Coastguard Worker    if("${aom_test_source_var}" STREQUAL "${last_aom_test_source_var}")
602*77c1e3ccSAndroid Build Coastguard Worker      message(
603*77c1e3ccSAndroid Build Coastguard Worker        FATAL_ERROR
604*77c1e3ccSAndroid Build Coastguard Worker          "Duplicate AOM_TEST_SOURCE_VARS entry: ${aom_test_source_var}")
605*77c1e3ccSAndroid Build Coastguard Worker    endif()
606*77c1e3ccSAndroid Build Coastguard Worker    foreach(file ${${aom_test_source_var}})
607*77c1e3ccSAndroid Build Coastguard Worker      if(NOT "${file}" MATCHES "${AOM_CONFIG_DIR}")
608*77c1e3ccSAndroid Build Coastguard Worker        string(REPLACE "${AOM_ROOT}/" "" file "${file}")
609*77c1e3ccSAndroid Build Coastguard Worker        file(APPEND "${libaom_test_srcs_txt_file}" "${file}\n")
610*77c1e3ccSAndroid Build Coastguard Worker      endif()
611*77c1e3ccSAndroid Build Coastguard Worker    endforeach()
612*77c1e3ccSAndroid Build Coastguard Worker    set(last_aom_test_source_var ${aom_test_source_var})
613*77c1e3ccSAndroid Build Coastguard Worker  endforeach()
614*77c1e3ccSAndroid Build Coastguard Worker
615*77c1e3ccSAndroid Build Coastguard Worker  # libaom_test_srcs.gni generation
616*77c1e3ccSAndroid Build Coastguard Worker  set(libaom_test_srcs_gni_file "${AOM_CONFIG_DIR}/libaom_test_srcs.gni")
617*77c1e3ccSAndroid Build Coastguard Worker  file(WRITE "${libaom_test_srcs_gni_file}"
618*77c1e3ccSAndroid Build Coastguard Worker       "# This file is generated. DO NOT EDIT.\n")
619*77c1e3ccSAndroid Build Coastguard Worker
620*77c1e3ccSAndroid Build Coastguard Worker  foreach(aom_test_source_var ${AOM_TEST_SOURCE_VARS})
621*77c1e3ccSAndroid Build Coastguard Worker    string(TOLOWER "${aom_test_source_var}" aom_test_source_var_lowercase)
622*77c1e3ccSAndroid Build Coastguard Worker    file(APPEND "${libaom_test_srcs_gni_file}"
623*77c1e3ccSAndroid Build Coastguard Worker         "\n${aom_test_source_var_lowercase} = [\n")
624*77c1e3ccSAndroid Build Coastguard Worker
625*77c1e3ccSAndroid Build Coastguard Worker    foreach(file ${${aom_test_source_var}})
626*77c1e3ccSAndroid Build Coastguard Worker      if(NOT "${file}" MATCHES "${AOM_CONFIG_DIR}")
627*77c1e3ccSAndroid Build Coastguard Worker        string(REPLACE "${AOM_ROOT}/" "//third_party/libaom/source/libaom/" file
628*77c1e3ccSAndroid Build Coastguard Worker                       "${file}")
629*77c1e3ccSAndroid Build Coastguard Worker        file(APPEND "${libaom_test_srcs_gni_file}" "  \"${file}\",\n")
630*77c1e3ccSAndroid Build Coastguard Worker      endif()
631*77c1e3ccSAndroid Build Coastguard Worker    endforeach()
632*77c1e3ccSAndroid Build Coastguard Worker
633*77c1e3ccSAndroid Build Coastguard Worker    file(APPEND "${libaom_test_srcs_gni_file}" "]\n")
634*77c1e3ccSAndroid Build Coastguard Worker  endforeach()
635*77c1e3ccSAndroid Build Coastguard Worker
636*77c1e3ccSAndroid Build Coastguard Worker  # Set up test for rc interface
637*77c1e3ccSAndroid Build Coastguard Worker  if(CONFIG_AV1_ENCODER
638*77c1e3ccSAndroid Build Coastguard Worker     AND ENABLE_TESTS
639*77c1e3ccSAndroid Build Coastguard Worker     AND CONFIG_WEBM_IO
640*77c1e3ccSAndroid Build Coastguard Worker     AND NOT CONFIG_REALTIME_ONLY)
641*77c1e3ccSAndroid Build Coastguard Worker    add_executable(test_aom_rc ${AOM_RC_TEST_SOURCES})
642*77c1e3ccSAndroid Build Coastguard Worker    target_link_libraries(test_aom_rc ${AOM_LIB_LINK_TYPE} aom_av1_rc aom_gtest)
643*77c1e3ccSAndroid Build Coastguard Worker    set_property(TARGET test_aom_rc PROPERTY FOLDER ${AOM_IDE_TEST_FOLDER})
644*77c1e3ccSAndroid Build Coastguard Worker    list(APPEND AOM_APP_TARGETS test_aom_rc)
645*77c1e3ccSAndroid Build Coastguard Worker  endif()
646*77c1e3ccSAndroid Build Coastguard Worker
647*77c1e3ccSAndroid Build Coastguard Worker  set(AOM_APP_TARGETS ${AOM_APP_TARGETS} PARENT_SCOPE)
648*77c1e3ccSAndroid Build Coastguard Workerendfunction()
649