1fd4e5da5Sopenharmony_ci# Copyright (c) 2016 Google Inc.
2fd4e5da5Sopenharmony_ci#
3fd4e5da5Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
4fd4e5da5Sopenharmony_ci# you may not use this file except in compliance with the License.
5fd4e5da5Sopenharmony_ci# You may obtain a copy of the License at
6fd4e5da5Sopenharmony_ci#
7fd4e5da5Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
8fd4e5da5Sopenharmony_ci#
9fd4e5da5Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
10fd4e5da5Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
11fd4e5da5Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12fd4e5da5Sopenharmony_ci# See the License for the specific language governing permissions and
13fd4e5da5Sopenharmony_ci# limitations under the License.
14fd4e5da5Sopenharmony_ci
15fd4e5da5Sopenharmony_ciadd_subdirectory(dominator_tree)
16fd4e5da5Sopenharmony_ciadd_subdirectory(loop_optimizations)
17fd4e5da5Sopenharmony_ci
18fd4e5da5Sopenharmony_ciadd_spvtools_unittest(TARGET opt
19fd4e5da5Sopenharmony_ci  SRCS aggressive_dead_code_elim_test.cpp
20fd4e5da5Sopenharmony_ci       amd_ext_to_khr.cpp
21fd4e5da5Sopenharmony_ci       analyze_live_input_test.cpp
22fd4e5da5Sopenharmony_ci       assembly_builder_test.cpp
23fd4e5da5Sopenharmony_ci       block_merge_test.cpp
24fd4e5da5Sopenharmony_ci       c_interface_test.cpp
25fd4e5da5Sopenharmony_ci       ccp_test.cpp
26fd4e5da5Sopenharmony_ci       cfg_cleanup_test.cpp
27fd4e5da5Sopenharmony_ci       cfg_test.cpp
28fd4e5da5Sopenharmony_ci       code_sink_test.cpp
29fd4e5da5Sopenharmony_ci       combine_access_chains_test.cpp
30fd4e5da5Sopenharmony_ci       compact_ids_test.cpp
31fd4e5da5Sopenharmony_ci       constants_test.cpp
32fd4e5da5Sopenharmony_ci       constant_manager_test.cpp
33fd4e5da5Sopenharmony_ci       control_dependence.cpp
34fd4e5da5Sopenharmony_ci       convert_relaxed_to_half_test.cpp
35fd4e5da5Sopenharmony_ci       convert_to_sampled_image_test.cpp
36fd4e5da5Sopenharmony_ci       copy_prop_array_test.cpp
37fd4e5da5Sopenharmony_ci       dataflow.cpp
38fd4e5da5Sopenharmony_ci       dead_branch_elim_test.cpp
39fd4e5da5Sopenharmony_ci       dead_insert_elim_test.cpp
40fd4e5da5Sopenharmony_ci       dead_variable_elim_test.cpp
41fd4e5da5Sopenharmony_ci       debug_info_manager_test.cpp
42fd4e5da5Sopenharmony_ci       decoration_manager_test.cpp
43fd4e5da5Sopenharmony_ci       def_use_test.cpp
44fd4e5da5Sopenharmony_ci       desc_sroa_test.cpp
45fd4e5da5Sopenharmony_ci       eliminate_dead_const_test.cpp
46fd4e5da5Sopenharmony_ci       eliminate_dead_functions_test.cpp
47fd4e5da5Sopenharmony_ci       eliminate_dead_io_components_test.cpp
48fd4e5da5Sopenharmony_ci       eliminate_dead_member_test.cpp
49fd4e5da5Sopenharmony_ci       eliminate_dead_output_stores_test.cpp
50fd4e5da5Sopenharmony_ci       feature_manager_test.cpp
51fd4e5da5Sopenharmony_ci       fix_func_call_arguments_test.cpp
52fd4e5da5Sopenharmony_ci       fix_storage_class_test.cpp
53fd4e5da5Sopenharmony_ci       flatten_decoration_test.cpp
54fd4e5da5Sopenharmony_ci       fold_spec_const_op_composite_test.cpp
55fd4e5da5Sopenharmony_ci       fold_test.cpp
56fd4e5da5Sopenharmony_ci       freeze_spec_const_test.cpp
57fd4e5da5Sopenharmony_ci       function_test.cpp
58fd4e5da5Sopenharmony_ci       graphics_robust_access_test.cpp
59fd4e5da5Sopenharmony_ci       if_conversion_test.cpp
60fd4e5da5Sopenharmony_ci       inline_opaque_test.cpp
61fd4e5da5Sopenharmony_ci       inline_test.cpp
62fd4e5da5Sopenharmony_ci       insert_extract_elim_test.cpp
63fd4e5da5Sopenharmony_ci       inst_bindless_check_test.cpp
64fd4e5da5Sopenharmony_ci       inst_buff_addr_check_test.cpp
65fd4e5da5Sopenharmony_ci       inst_debug_printf_test.cpp
66fd4e5da5Sopenharmony_ci       instruction_list_test.cpp
67fd4e5da5Sopenharmony_ci       instruction_test.cpp
68fd4e5da5Sopenharmony_ci       interface_var_sroa_test.cpp
69fd4e5da5Sopenharmony_ci       invocation_interlock_placement_test.cpp
70fd4e5da5Sopenharmony_ci       interp_fixup_test.cpp
71fd4e5da5Sopenharmony_ci       ir_builder.cpp
72fd4e5da5Sopenharmony_ci       ir_context_test.cpp
73fd4e5da5Sopenharmony_ci       ir_loader_test.cpp
74fd4e5da5Sopenharmony_ci       iterator_test.cpp
75fd4e5da5Sopenharmony_ci       line_debug_info_test.cpp
76fd4e5da5Sopenharmony_ci       local_access_chain_convert_test.cpp
77fd4e5da5Sopenharmony_ci       local_redundancy_elimination_test.cpp
78fd4e5da5Sopenharmony_ci       local_single_block_elim.cpp
79fd4e5da5Sopenharmony_ci       local_single_store_elim_test.cpp
80fd4e5da5Sopenharmony_ci       local_ssa_elim_test.cpp
81fd4e5da5Sopenharmony_ci       module_test.cpp
82fd4e5da5Sopenharmony_ci       module_utils.h
83fd4e5da5Sopenharmony_ci       optimizer_test.cpp
84fd4e5da5Sopenharmony_ci       pass_manager_test.cpp
85fd4e5da5Sopenharmony_ci       pass_merge_return_test.cpp
86fd4e5da5Sopenharmony_ci       pass_remove_duplicates_test.cpp
87fd4e5da5Sopenharmony_ci       pass_utils.cpp
88fd4e5da5Sopenharmony_ci       private_to_local_test.cpp
89fd4e5da5Sopenharmony_ci       propagator_test.cpp
90fd4e5da5Sopenharmony_ci       reduce_load_size_test.cpp
91fd4e5da5Sopenharmony_ci       redundancy_elimination_test.cpp
92fd4e5da5Sopenharmony_ci       remove_dontinline_test.cpp
93fd4e5da5Sopenharmony_ci       remove_unused_interface_variables_test.cpp
94fd4e5da5Sopenharmony_ci       register_liveness.cpp
95fd4e5da5Sopenharmony_ci       relax_float_ops_test.cpp
96fd4e5da5Sopenharmony_ci       replace_desc_array_access_using_var_index_test.cpp
97fd4e5da5Sopenharmony_ci       replace_invalid_opc_test.cpp
98fd4e5da5Sopenharmony_ci       scalar_analysis.cpp
99fd4e5da5Sopenharmony_ci       scalar_replacement_test.cpp
100fd4e5da5Sopenharmony_ci       set_spec_const_default_value_test.cpp
101fd4e5da5Sopenharmony_ci       simplification_test.cpp
102fd4e5da5Sopenharmony_ci       spread_volatile_semantics_test.cpp
103fd4e5da5Sopenharmony_ci       strength_reduction_test.cpp
104fd4e5da5Sopenharmony_ci       strip_debug_info_test.cpp
105fd4e5da5Sopenharmony_ci       strip_nonsemantic_info_test.cpp
106fd4e5da5Sopenharmony_ci       struct_cfg_analysis_test.cpp
107fd4e5da5Sopenharmony_ci       switch_descriptorset_test.cpp
108fd4e5da5Sopenharmony_ci       trim_capabilities_pass_test.cpp
109fd4e5da5Sopenharmony_ci       type_manager_test.cpp
110fd4e5da5Sopenharmony_ci       types_test.cpp
111fd4e5da5Sopenharmony_ci       unify_const_test.cpp
112fd4e5da5Sopenharmony_ci       upgrade_memory_model_test.cpp
113fd4e5da5Sopenharmony_ci       utils_test.cpp pass_utils.cpp
114fd4e5da5Sopenharmony_ci       value_table_test.cpp
115fd4e5da5Sopenharmony_ci       vector_dce_test.cpp
116fd4e5da5Sopenharmony_ci       workaround1209_test.cpp
117fd4e5da5Sopenharmony_ci       wrap_opkill_test.cpp
118fd4e5da5Sopenharmony_ci  LIBS SPIRV-Tools-opt
119fd4e5da5Sopenharmony_ci  PCH_FILE pch_test_opt
120fd4e5da5Sopenharmony_ci)
121fd4e5da5Sopenharmony_ciif (NOT "${SPIRV_SKIP_TESTS}" AND TARGET gmock_main)
122fd4e5da5Sopenharmony_ci  if (MSVC)
123fd4e5da5Sopenharmony_ci    if (${MSVC_VERSION} LESS 1920)
124fd4e5da5Sopenharmony_ci      # The VS 2017 debug build requires /bigobj on test_opt
125fd4e5da5Sopenharmony_ci      # https://github.com/KhronosGroup/SPIRV-Tools/issues/5335
126fd4e5da5Sopenharmony_ci      target_compile_options(test_opt PRIVATE /bigobj)
127fd4e5da5Sopenharmony_ci    endif()
128fd4e5da5Sopenharmony_ci  endif()
129fd4e5da5Sopenharmony_ciendif()
130