dynarmic/src/CMakeLists.txt

204 lines
7.7 KiB
Text
Raw Normal View History

add_library(dynarmic
2018-01-04 21:12:02 +00:00
../include/dynarmic/A32/a32.h
../include/dynarmic/A32/config.h
2018-01-04 21:12:02 +00:00
../include/dynarmic/A32/coprocessor.h
../include/dynarmic/A32/coprocessor_util.h
../include/dynarmic/A32/disassembler.h
2017-02-16 18:18:29 +00:00
common/address_range.h
2018-01-30 12:56:18 +00:00
common/aes.cpp
common/aes.h
common/assert.h
common/bit_util.h
common/cast_util.h
common/common_types.h
common/crc32.cpp
common/crc32.h
common/intrusive_list.h
2016-08-24 20:07:08 +01:00
common/iterator_util.h
2018-01-01 15:23:56 +00:00
common/memory_pool.cpp
common/memory_pool.h
common/mp.h
common/scope_exit.h
common/string_util.h
common/variant_util.h
2018-01-01 15:23:56 +00:00
frontend/A32/decoder/arm.h
frontend/A32/decoder/thumb16.h
frontend/A32/decoder/thumb32.h
frontend/A32/decoder/vfp2.h
frontend/A32/disassembler/disassembler.h
frontend/A32/disassembler/disassembler_arm.cpp
frontend/A32/disassembler/disassembler_thumb.cpp
frontend/A32/FPSCR.h
2018-01-01 15:47:56 +00:00
frontend/A32/ir_emitter.cpp
frontend/A32/ir_emitter.h
2018-01-01 15:23:56 +00:00
frontend/A32/location_descriptor.cpp
frontend/A32/location_descriptor.h
frontend/A32/PSR.h
frontend/A32/translate/translate.cpp
frontend/A32/translate/translate.h
frontend/A32/translate/translate_arm.cpp
frontend/A32/translate/translate_arm/branch.cpp
frontend/A32/translate/translate_arm/coprocessor.cpp
frontend/A32/translate/translate_arm/data_processing.cpp
frontend/A32/translate/translate_arm/exception_generating.cpp
frontend/A32/translate/translate_arm/extension.cpp
frontend/A32/translate/translate_arm/load_store.cpp
frontend/A32/translate/translate_arm/misc.cpp
frontend/A32/translate/translate_arm/multiply.cpp
frontend/A32/translate/translate_arm/packing.cpp
frontend/A32/translate/translate_arm/parallel.cpp
frontend/A32/translate/translate_arm/reversal.cpp
frontend/A32/translate/translate_arm/saturated.cpp
frontend/A32/translate/translate_arm/status_register_access.cpp
frontend/A32/translate/translate_arm/synchronization.cpp
frontend/A32/translate/translate_arm/translate_arm.h
frontend/A32/translate/translate_arm/vfp2.cpp
frontend/A32/translate/translate_thumb.cpp
frontend/A32/types.cpp
frontend/A32/types.h
2018-01-04 23:05:27 +00:00
frontend/A64/decoder/a64.h
frontend/A64/decoder/a64.inc
2018-01-07 00:11:57 +00:00
frontend/A64/FPCR.h
2018-01-04 23:05:27 +00:00
frontend/A64/imm.h
2018-01-07 00:11:57 +00:00
frontend/A64/ir_emitter.cpp
frontend/A64/ir_emitter.h
2018-01-04 23:05:27 +00:00
frontend/A64/location_descriptor.cpp
frontend/A64/location_descriptor.h
2018-01-07 13:42:11 +00:00
frontend/A64/translate/impl/branch.cpp
2018-01-07 00:11:57 +00:00
frontend/A64/translate/impl/data_processing_addsub.cpp
2018-01-17 00:10:28 +00:00
frontend/A64/translate/impl/data_processing_bitfield.cpp
2018-02-04 23:08:16 +00:00
frontend/A64/translate/impl/data_processing_conditional_compare.cpp
2018-01-18 11:37:17 +00:00
frontend/A64/translate/impl/data_processing_conditional_select.cpp
2018-01-25 17:51:45 +00:00
frontend/A64/translate/impl/data_processing_crc32.cpp
2018-01-07 12:52:12 +00:00
frontend/A64/translate/impl/data_processing_logical.cpp
2018-01-23 14:51:57 +00:00
frontend/A64/translate/impl/data_processing_multiply.cpp
2018-01-07 11:41:17 +00:00
frontend/A64/translate/impl/data_processing_pcrel.cpp
frontend/A64/translate/impl/data_processing_register.cpp
frontend/A64/translate/impl/data_processing_shift.cpp
2018-01-08 22:03:03 +00:00
frontend/A64/translate/impl/exception_generating.cpp
2018-02-02 22:25:51 +00:00
frontend/A64/translate/impl/floating_point_compare.cpp
frontend/A64/translate/impl/floating_point_conversion_integer.cpp
2018-02-05 12:25:04 +00:00
frontend/A64/translate/impl/floating_point_conditional_compare.cpp
2018-02-04 13:40:37 +00:00
frontend/A64/translate/impl/floating_point_conditional_select.cpp
frontend/A64/translate/impl/floating_point_data_processing_one_register.cpp
frontend/A64/translate/impl/floating_point_data_processing_two_register.cpp
2018-01-07 00:11:57 +00:00
frontend/A64/translate/impl/impl.cpp
2018-01-04 23:05:27 +00:00
frontend/A64/translate/impl/impl.h
frontend/A64/translate/impl/load_store_exclusive.cpp
2018-01-10 01:13:23 +00:00
frontend/A64/translate/impl/load_store_load_literal.cpp
frontend/A64/translate/impl/load_store_multiple_structures.cpp
2018-01-10 01:13:23 +00:00
frontend/A64/translate/impl/load_store_register_immediate.cpp
2018-01-10 02:05:08 +00:00
frontend/A64/translate/impl/load_store_register_pair.cpp
frontend/A64/translate/impl/load_store_register_register_offset.cpp
frontend/A64/translate/impl/load_store_register_unprivileged.cpp
2018-01-15 21:47:28 +00:00
frontend/A64/translate/impl/move_wide.cpp
2018-01-30 12:56:18 +00:00
frontend/A64/translate/impl/simd_aes.cpp
2018-01-24 12:00:56 +00:00
frontend/A64/translate/impl/simd_copy.cpp
frontend/A64/translate/impl/simd_modified_immediate.cpp
2018-02-05 03:29:14 +00:00
frontend/A64/translate/impl/simd_permute.cpp
frontend/A64/translate/impl/simd_scalar_three_same.cpp
2018-01-21 17:45:43 +00:00
frontend/A64/translate/impl/simd_three_same.cpp
frontend/A64/translate/impl/system.cpp
2018-01-04 23:05:27 +00:00
frontend/A64/translate/translate.cpp
frontend/A64/translate/translate.h
frontend/A64/types.cpp
frontend/A64/types.h
frontend/decoder/decoder_detail.h
frontend/decoder/matcher.h
2018-01-01 15:23:56 +00:00
frontend/ir/basic_block.cpp
frontend/ir/basic_block.h
2018-01-01 15:23:56 +00:00
frontend/ir/ir_emitter.cpp
frontend/ir/ir_emitter.h
2018-01-01 15:23:56 +00:00
frontend/ir/location_descriptor.cpp
frontend/ir/location_descriptor.h
2018-01-01 15:23:56 +00:00
frontend/ir/microinstruction.cpp
frontend/ir/microinstruction.h
2018-01-01 15:23:56 +00:00
frontend/ir/opcodes.cpp
frontend/ir/opcodes.h
frontend/ir/opcodes.inc
frontend/ir/terminal.h
2018-01-01 15:23:56 +00:00
frontend/ir/value.cpp
frontend/ir/value.h
2018-01-10 19:24:19 +00:00
ir_opt/a32_constant_memory_reads_pass.cpp
ir_opt/a32_get_set_elimination_pass.cpp
ir_opt/a64_get_set_elimination_pass.cpp
ir_opt/a64_merge_interpret_blocks.cpp
2018-01-01 15:23:56 +00:00
ir_opt/constant_propagation_pass.cpp
ir_opt/dead_code_elimination_pass.cpp
ir_opt/passes.h
2018-01-01 15:23:56 +00:00
ir_opt/verification_pass.cpp
)
if (ARCHITECTURE_x86_64)
target_sources(dynarmic PRIVATE
backend_x64/a32_emit_x64.cpp
backend_x64/a32_emit_x64.h
2018-01-04 21:12:02 +00:00
backend_x64/a32_interface.cpp
2018-01-01 22:49:17 +00:00
backend_x64/a32_jitstate.cpp
backend_x64/a32_jitstate.h
2018-01-06 21:15:25 +00:00
backend_x64/a64_emit_x64.cpp
backend_x64/a64_emit_x64.h
backend_x64/a64_interface.cpp
backend_x64/a64_jitstate.cpp
backend_x64/a64_jitstate.h
backend_x64/abi.cpp
2018-01-01 15:23:56 +00:00
backend_x64/abi.h
backend_x64/block_of_code.cpp
2018-01-01 15:23:56 +00:00
backend_x64/block_of_code.h
backend_x64/block_range_information.cpp
backend_x64/block_range_information.h
2018-01-06 21:15:25 +00:00
backend_x64/callback.cpp
backend_x64/callback.h
backend_x64/constant_pool.cpp
2018-01-01 15:23:56 +00:00
backend_x64/constant_pool.h
2018-01-28 17:56:26 +00:00
backend_x64/devirtualize.h
backend_x64/disassemble_x64.cpp
backend_x64/disassemble_x64.h
backend_x64/emit_x64.cpp
2018-01-01 15:23:56 +00:00
backend_x64/emit_x64.h
2018-01-30 12:56:18 +00:00
backend_x64/emit_x64_aes.cpp
2018-01-25 17:51:45 +00:00
backend_x64/emit_x64_crc32.cpp
2018-01-23 13:21:10 +00:00
backend_x64/emit_x64_data_processing.cpp
backend_x64/emit_x64_floating_point.cpp
backend_x64/emit_x64_packed.cpp
backend_x64/emit_x64_saturation.cpp
backend_x64/emit_x64_vector.cpp
backend_x64/hostloc.cpp
2018-01-01 15:23:56 +00:00
backend_x64/hostloc.h
2018-01-04 21:12:02 +00:00
backend_x64/jitstate_info.h
2017-02-21 23:38:36 +00:00
backend_x64/oparg.h
2018-01-01 15:23:56 +00:00
backend_x64/reg_alloc.cpp
backend_x64/reg_alloc.h
)
if (WIN32)
target_sources(dynarmic PRIVATE backend_x64/exception_handler_windows.cpp)
else()
target_sources(dynarmic PRIVATE backend_x64/exception_handler_generic.cpp)
endif()
else()
message(FATAL_ERROR "Unsupported architecture")
endif()
2016-08-25 18:22:08 +01:00
include(CreateDirectoryGroups)
create_target_directory_groups(dynarmic)
2016-08-25 18:22:08 +01:00
target_include_directories(dynarmic
PUBLIC ../include
PRIVATE .)
target_compile_options(dynarmic PRIVATE ${DYNARMIC_CXX_FLAGS})
target_link_libraries(dynarmic
PUBLIC
boost
PRIVATE
2017-08-27 19:50:19 +01:00
fmt::fmt
xbyak
$<$<BOOL:DYNARMIC_USE_LLVM>:${llvm_libs}>
)
if (DYNARMIC_ENABLE_CPU_FEATURE_DETECTION)
target_compile_definitions(dynarmic PRIVATE DYNARMIC_ENABLE_CPU_FEATURE_DETECTION=1)
endif()
2016-08-25 22:21:19 +01:00
if (CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_compile_definitions(dynarmic PRIVATE FMT_USE_WINDOWS_H=0)
endif()