suyu/src/shader_recompiler/CMakeLists.txt

270 lines
12 KiB
CMake
Raw Normal View History

chore: make yuzu REUSE compliant [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-05-14 19:06:02 -05:00
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
2021-02-16 21:59:28 -06:00
add_library(shader_recompiler STATIC
backend/bindings.h
backend/glasm/emit_glasm.cpp
backend/glasm/emit_glasm.h
backend/glasm/emit_glasm_barriers.cpp
backend/glasm/emit_glasm_bitwise_conversion.cpp
backend/glasm/emit_glasm_composite.cpp
backend/glasm/emit_glasm_context_get_set.cpp
backend/glasm/emit_glasm_control_flow.cpp
backend/glasm/emit_glasm_convert.cpp
backend/glasm/emit_glasm_floating_point.cpp
backend/glasm/emit_glasm_image.cpp
backend/glasm/emit_glasm_instructions.h
backend/glasm/emit_glasm_integer.cpp
backend/glasm/emit_glasm_logical.cpp
backend/glasm/emit_glasm_memory.cpp
backend/glasm/emit_glasm_not_implemented.cpp
backend/glasm/emit_glasm_select.cpp
backend/glasm/emit_glasm_shared_memory.cpp
backend/glasm/emit_glasm_special.cpp
backend/glasm/emit_glasm_undefined.cpp
backend/glasm/emit_glasm_warp.cpp
backend/glasm/glasm_emit_context.cpp
backend/glasm/glasm_emit_context.h
backend/glasm/reg_alloc.cpp
backend/glasm/reg_alloc.h
2021-05-19 20:58:32 -05:00
backend/glsl/emit_glsl.cpp
backend/glsl/emit_glsl.h
backend/glsl/emit_glsl_atomic.cpp
backend/glsl/emit_glsl_barriers.cpp
backend/glsl/emit_glsl_bitwise_conversion.cpp
backend/glsl/emit_glsl_composite.cpp
backend/glsl/emit_glsl_context_get_set.cpp
backend/glsl/emit_glsl_control_flow.cpp
backend/glsl/emit_glsl_convert.cpp
backend/glsl/emit_glsl_floating_point.cpp
backend/glsl/emit_glsl_image.cpp
backend/glsl/emit_glsl_instructions.h
backend/glsl/emit_glsl_integer.cpp
backend/glsl/emit_glsl_logical.cpp
backend/glsl/emit_glsl_memory.cpp
backend/glsl/emit_glsl_not_implemented.cpp
backend/glsl/emit_glsl_select.cpp
backend/glsl/emit_glsl_shared_memory.cpp
backend/glsl/emit_glsl_special.cpp
backend/glsl/emit_glsl_undefined.cpp
backend/glsl/emit_glsl_warp.cpp
backend/glsl/glsl_emit_context.cpp
backend/glsl/glsl_emit_context.h
backend/glsl/var_alloc.cpp
backend/glsl/var_alloc.h
2021-02-07 23:54:35 -06:00
backend/spirv/emit_spirv.cpp
2021-02-05 20:11:23 -06:00
backend/spirv/emit_spirv.h
2021-04-11 01:07:02 -05:00
backend/spirv/emit_spirv_atomic.cpp
2021-04-02 12:27:30 -05:00
backend/spirv/emit_spirv_barriers.cpp
2021-02-07 23:54:35 -06:00
backend/spirv/emit_spirv_bitwise_conversion.cpp
backend/spirv/emit_spirv_composite.cpp
backend/spirv/emit_spirv_context_get_set.cpp
backend/spirv/emit_spirv_control_flow.cpp
2021-02-19 15:10:18 -06:00
backend/spirv/emit_spirv_convert.cpp
2021-02-07 23:54:35 -06:00
backend/spirv/emit_spirv_floating_point.cpp
backend/spirv/emit_spirv_image.cpp
2021-04-23 16:47:54 -05:00
backend/spirv/emit_spirv_image_atomic.cpp
backend/spirv/emit_spirv_instructions.h
2021-02-07 23:54:35 -06:00
backend/spirv/emit_spirv_integer.cpp
backend/spirv/emit_spirv_logical.cpp
backend/spirv/emit_spirv_memory.cpp
backend/spirv/emit_spirv_select.cpp
backend/spirv/emit_spirv_shared_memory.cpp
backend/spirv/emit_spirv_special.cpp
2021-02-07 23:54:35 -06:00
backend/spirv/emit_spirv_undefined.cpp
2021-03-25 10:31:37 -05:00
backend/spirv/emit_spirv_warp.cpp
backend/spirv/spirv_emit_context.cpp
backend/spirv/spirv_emit_context.h
2021-01-09 00:30:07 -06:00
environment.h
exception.h
frontend/ir/abstract_syntax_list.h
2021-01-09 00:30:07 -06:00
frontend/ir/attribute.cpp
frontend/ir/attribute.h
frontend/ir/basic_block.cpp
frontend/ir/basic_block.h
frontend/ir/breadth_first_search.h
2021-01-09 00:30:07 -06:00
frontend/ir/condition.cpp
frontend/ir/condition.h
frontend/ir/flow_test.cpp
frontend/ir/flow_test.h
frontend/ir/ir_emitter.cpp
frontend/ir/ir_emitter.h
frontend/ir/microinstruction.cpp
2021-02-20 00:30:13 -06:00
frontend/ir/modifiers.h
2021-02-05 20:11:23 -06:00
frontend/ir/opcodes.cpp
frontend/ir/opcodes.h
frontend/ir/opcodes.inc
frontend/ir/patch.cpp
frontend/ir/patch.h
2021-02-14 17:15:42 -06:00
frontend/ir/post_order.cpp
frontend/ir/post_order.h
2021-01-09 00:30:07 -06:00
frontend/ir/pred.h
2021-02-05 20:11:23 -06:00
frontend/ir/program.cpp
frontend/ir/program.h
2021-01-09 00:30:07 -06:00
frontend/ir/reg.h
frontend/ir/type.cpp
frontend/ir/type.h
frontend/ir/value.cpp
frontend/ir/value.h
frontend/maxwell/control_flow.cpp
frontend/maxwell/control_flow.h
frontend/maxwell/decode.cpp
frontend/maxwell/decode.h
2021-03-27 16:30:24 -05:00
frontend/maxwell/indirect_branch_table_track.cpp
frontend/maxwell/indirect_branch_table_track.h
2021-01-09 00:30:07 -06:00
frontend/maxwell/instruction.h
frontend/maxwell/location.h
frontend/maxwell/maxwell.inc
2021-02-05 20:11:23 -06:00
frontend/maxwell/opcodes.cpp
frontend/maxwell/opcodes.h
frontend/maxwell/structured_control_flow.cpp
frontend/maxwell/structured_control_flow.h
2021-04-11 01:07:02 -05:00
frontend/maxwell/translate/impl/atomic_operations_global_memory.cpp
frontend/maxwell/translate/impl/atomic_operations_shared_memory.cpp
2021-04-03 19:42:58 -05:00
frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp
2021-04-02 12:27:30 -05:00
frontend/maxwell/translate/impl/barrier_operations.cpp
2021-02-27 00:45:13 -06:00
frontend/maxwell/translate/impl/bitfield_extract.cpp
2021-02-27 15:37:49 -06:00
frontend/maxwell/translate/impl/bitfield_insert.cpp
2021-03-27 16:30:24 -05:00
frontend/maxwell/translate/impl/branch_indirect.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/common_encoding.h
frontend/maxwell/translate/impl/common_funcs.cpp
frontend/maxwell/translate/impl/common_funcs.h
2021-03-16 23:53:53 -05:00
frontend/maxwell/translate/impl/condition_code_set.cpp
2021-03-18 01:53:57 -05:00
frontend/maxwell/translate/impl/double_add.cpp
2021-03-21 18:28:37 -05:00
frontend/maxwell/translate/impl/double_compare_and_set.cpp
frontend/maxwell/translate/impl/double_fused_multiply_add.cpp
2021-03-21 18:28:37 -05:00
frontend/maxwell/translate/impl/double_min_max.cpp
frontend/maxwell/translate/impl/double_multiply.cpp
2021-03-21 18:28:37 -05:00
frontend/maxwell/translate/impl/double_set_predicate.cpp
frontend/maxwell/translate/impl/exit_program.cpp
2021-03-01 14:58:16 -06:00
frontend/maxwell/translate/impl/find_leading_one.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/floating_point_add.cpp
frontend/maxwell/translate/impl/floating_point_compare.cpp
frontend/maxwell/translate/impl/floating_point_compare_and_set.cpp
2021-03-21 03:32:16 -05:00
frontend/maxwell/translate/impl/floating_point_conversion_floating_point.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/impl/floating_point_conversion_integer.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/floating_point_fused_multiply_add.cpp
frontend/maxwell/translate/impl/floating_point_min_max.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/impl/floating_point_multi_function.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/floating_point_multiply.cpp
frontend/maxwell/translate/impl/floating_point_range_reduction.cpp
frontend/maxwell/translate/impl/floating_point_set_predicate.cpp
2021-03-28 21:23:45 -05:00
frontend/maxwell/translate/impl/floating_point_swizzled_add.cpp
2021-03-03 00:07:19 -06:00
frontend/maxwell/translate/impl/half_floating_point_add.cpp
2021-03-20 19:03:21 -05:00
frontend/maxwell/translate/impl/half_floating_point_fused_multiply_add.cpp
frontend/maxwell/translate/impl/half_floating_point_helper.cpp
frontend/maxwell/translate/impl/half_floating_point_helper.h
2021-03-20 20:08:04 -05:00
frontend/maxwell/translate/impl/half_floating_point_multiply.cpp
2021-03-20 21:48:40 -05:00
frontend/maxwell/translate/impl/half_floating_point_set.cpp
frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/impl/impl.cpp
frontend/maxwell/translate/impl/impl.h
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/integer_add.cpp
2021-03-02 13:59:28 -06:00
frontend/maxwell/translate/impl/integer_add_three_input.cpp
2021-02-28 23:18:30 -06:00
frontend/maxwell/translate/impl/integer_compare.cpp
frontend/maxwell/translate/impl/integer_compare_and_set.cpp
2021-03-20 03:04:12 -05:00
frontend/maxwell/translate/impl/integer_floating_point_conversion.cpp
2021-03-07 13:48:03 -06:00
frontend/maxwell/translate/impl/integer_funnel_shift.cpp
2021-02-28 22:33:53 -06:00
frontend/maxwell/translate/impl/integer_minimum_maximum.cpp
2021-02-26 20:41:46 -06:00
frontend/maxwell/translate/impl/integer_popcount.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/integer_scaled_add.cpp
frontend/maxwell/translate/impl/integer_set_predicate.cpp
frontend/maxwell/translate/impl/integer_shift_left.cpp
2021-02-24 23:46:40 -06:00
frontend/maxwell/translate/impl/integer_shift_right.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/integer_short_multiply_add.cpp
2021-03-04 00:02:44 -06:00
frontend/maxwell/translate/impl/integer_to_integer_conversion.cpp
2021-04-11 19:33:18 -05:00
frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.cpp
2021-03-09 14:14:57 -06:00
frontend/maxwell/translate/impl/load_constant.cpp
2021-03-27 16:30:24 -05:00
frontend/maxwell/translate/impl/load_constant.h
2021-03-05 00:15:16 -06:00
frontend/maxwell/translate/impl/load_effective_address.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/impl/load_store_attribute.cpp
frontend/maxwell/translate/impl/load_store_local_shared.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/impl/load_store_memory.cpp
2021-03-02 23:41:05 -06:00
frontend/maxwell/translate/impl/logic_operation.cpp
frontend/maxwell/translate/impl/logic_operation_three_input.cpp
frontend/maxwell/translate/impl/move_predicate_to_register.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/move_register.cpp
2021-03-07 21:01:22 -06:00
frontend/maxwell/translate/impl/move_register_to_predicate.cpp
2021-02-03 13:43:04 -06:00
frontend/maxwell/translate/impl/move_special_register.cpp
frontend/maxwell/translate/impl/not_implemented.cpp
2021-04-12 01:48:15 -05:00
frontend/maxwell/translate/impl/output_geometry.cpp
2021-04-16 15:22:59 -05:00
frontend/maxwell/translate/impl/pixel_load.cpp
2021-03-02 12:42:09 -06:00
frontend/maxwell/translate/impl/predicate_set_predicate.cpp
frontend/maxwell/translate/impl/predicate_set_register.cpp
2021-02-24 19:31:15 -06:00
frontend/maxwell/translate/impl/select_source_with_predicate.cpp
2021-04-23 16:47:54 -05:00
frontend/maxwell/translate/impl/surface_atomic_operations.cpp
2021-04-08 23:45:39 -05:00
frontend/maxwell/translate/impl/surface_load_store.cpp
2021-03-15 02:54:43 -05:00
frontend/maxwell/translate/impl/texture_fetch.cpp
frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp
2021-03-24 17:41:55 -05:00
frontend/maxwell/translate/impl/texture_gather.cpp
frontend/maxwell/translate/impl/texture_gather_swizzled.cpp
2021-03-28 19:52:52 -05:00
frontend/maxwell/translate/impl/texture_gradient.cpp
2021-03-26 14:51:05 -05:00
frontend/maxwell/translate/impl/texture_load.cpp
frontend/maxwell/translate/impl/texture_load_swizzled.cpp
2021-03-28 14:25:08 -05:00
frontend/maxwell/translate/impl/texture_mipmap_level.cpp
frontend/maxwell/translate/impl/texture_query.cpp
2021-03-27 18:47:00 -05:00
frontend/maxwell/translate/impl/video_helper.cpp
frontend/maxwell/translate/impl/video_helper.h
frontend/maxwell/translate/impl/video_minimum_maximum.cpp
frontend/maxwell/translate/impl/video_multiply_add.cpp
frontend/maxwell/translate/impl/video_set_predicate.cpp
2021-03-23 19:27:17 -05:00
frontend/maxwell/translate/impl/vote.cpp
2021-03-25 10:31:37 -05:00
frontend/maxwell/translate/impl/warp_shuffle.cpp
2021-01-09 00:30:07 -06:00
frontend/maxwell/translate/translate.cpp
frontend/maxwell/translate/translate.h
frontend/maxwell/translate_program.cpp
frontend/maxwell/translate_program.h
host_translate_info.h
2021-02-16 01:10:22 -06:00
ir_opt/collect_shader_info_pass.cpp
ir_opt/conditional_barrier_pass.cpp
ir_opt/constant_propagation_pass.cpp
2021-01-09 00:30:07 -06:00
ir_opt/dead_code_elimination_pass.cpp
2021-04-18 18:03:38 -05:00
ir_opt/dual_vertex_pass.cpp
ir_opt/global_memory_to_storage_buffer_pass.cpp
2021-01-09 00:30:07 -06:00
ir_opt/identity_removal_pass.cpp
ir_opt/layer_pass.cpp
2021-02-19 15:10:18 -06:00
ir_opt/lower_fp16_to_fp32.cpp
ir_opt/lower_fp64_to_fp32.cpp
ir_opt/lower_int64_to_int32.cpp
2021-01-09 00:30:07 -06:00
ir_opt/passes.h
ir_opt/position_pass.cpp
2021-07-21 20:25:34 -05:00
ir_opt/rescaling_pass.cpp
2021-02-02 18:07:00 -06:00
ir_opt/ssa_rewrite_pass.cpp
ir_opt/texture_pass.cpp
2021-01-09 00:30:07 -06:00
ir_opt/verification_pass.cpp
2021-02-05 20:11:23 -06:00
object_pool.h
2022-11-22 17:38:23 -06:00
precompiled_headers.h
2021-02-16 21:59:28 -06:00
profile.h
program_header.h
runtime_info.h
2021-02-16 01:10:22 -06:00
shader_info.h
varying_state.h
2021-01-09 00:30:07 -06:00
)
2021-02-07 23:54:35 -06:00
target_link_libraries(shader_recompiler PUBLIC common fmt::fmt sirit)
2021-02-16 21:59:28 -06:00
2021-01-09 00:30:07 -06:00
if (MSVC)
target_compile_options(shader_recompiler PRIVATE
/W4
/we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data
2021-01-09 00:30:07 -06:00
/we4254 # 'operator': conversion from 'type1:field_bits' to 'type2:field_bits', possible loss of data
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
)
else()
target_compile_options(shader_recompiler PRIVATE
-Werror=conversion
# Bracket depth determines maximum size of a fold expression in Clang since 9c9974c3ccb6.
# And this in turns limits the size of a std::array.
$<$<CXX_COMPILER_ID:Clang>:-fbracket-depth=1024>
2022-11-21 10:31:18 -06:00
$<$<CXX_COMPILER_ID:AppleClang>:-fbracket-depth=1024>
2021-01-09 00:30:07 -06:00
)
endif()
create_target_directory_groups(shader_recompiler)
2022-11-22 17:38:23 -06:00
if (YUZU_USE_PRECOMPILED_HEADERS)
target_precompile_headers(shader_recompiler PRIVATE precompiled_headers.h)
endif()