# SPDX-License-Identifier: Apache-2.0
# Copyright (C) 2022-2026, Advanced Micro Devices, Inc. All rights reserved.

set(XDNA_SHIM_TEST shim_test.elf)

aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} MAIN_SOURCES)
add_executable(${XDNA_SHIM_TEST}
  ${MAIN_SOURCES}
  )

target_compile_definitions(${XDNA_SHIM_TEST} PRIVATE
  # below macros is required so that i/f defined in ishim.h is
  # consistent with native xrt implementation
  XRT_ENABLE_AIE
  XRT_BUILD
  )

target_link_libraries(${XDNA_SHIM_TEST} PRIVATE
  xrt_coreutil # for xclbin parser and some other helpers
  aiebu_static
  dl
  )

set_target_properties(${XDNA_SHIM_TEST} PROPERTIES
  BUILD_WITH_INSTALL_RPATH FALSE
  # --disable-new-dtags is needed to make sure linker to use RPATH instead of RUNPATH.
  # RPATH   is searched *before* LD_LIBRARY_PATH
  # RUNPATH is searched *after*  LD_LIBRARY_PATH
  # We want RPATH behavior for XDNA_SHIM_TEST
  LINK_FLAGS "-Wl,-rpath,$ORIGIN/../${XDNA_PKG_LIB_DIR} -Wl,--disable-new-dtags"
  )

target_include_directories(${XDNA_SHIM_TEST} PRIVATE
  ${XRT_SUBMOD_SOURCE_DIR}/src/runtime_src
  ${XRT_SUBMOD_SOURCE_DIR}/src/runtime_src/core/include
  ${XRT_SUBMOD_SOURCE_DIR}/src/runtime_src/core/common/elf
  ${XRT_SUBMOD_BINARY_DIR}/src/gen
  )

target_compile_options(${XDNA_SHIM_TEST} PRIVATE -O3)

install(TARGETS ${XDNA_SHIM_TEST} DESTINATION ${XDNA_BIN_DIR}/bin)

configure_file(
  shim_test.in
  shim_test.sh
  @ONLY
  )
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/shim_test.sh DESTINATION ${XDNA_BIN_DIR}/bin)

# Set up symlink for local shim test case data
set(XDNA_SHIM_TEST_DATA_DIR local_shim_test_data)
install(CODE "execute_process( \
  COMMAND ${CMAKE_COMMAND} -E create_symlink \
  ${AMDXDNA_BINS_DIR}/${XDNA_SHIM_TEST_DATA_DIR} \
  ${CMAKE_BINARY_DIR}/${XDNA_BIN_DIR}/${XDNA_SHIM_TEST_DATA_DIR} \
  )"
  )
