file(GLOB_RECURSE SRC_FILES CONFIGURE_DEPENDS
  *.cpp
  *.hpp
  *.rc
)

list(SORT SRC_FILES)

add_library(backend-selection ${SRC_FILES})

sogen_assign_source_group(${SRC_FILES})

target_include_directories(backend-selection INTERFACE "${CMAKE_CURRENT_LIST_DIR}")

target_link_libraries(backend-selection PRIVATE
  unicorn-emulator
)

if (SOGEN_ENABLE_RUST)
  target_link_libraries(backend-selection PRIVATE
    icicle-emulator
  )
endif()

if (NOT MINGW AND MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8)
  target_link_libraries(backend-selection PRIVATE
    whp-emulator
  )
endif()

if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT ANDROID AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
  target_link_libraries(backend-selection PRIVATE
    kvm-emulator
  )
endif()