# Copyright (c) Advanced Micro Devices, Inc., or its affiliates. # # SPDX-License-Identifier: MIT set(TEST_SRC loadlib_rtc.cc loadlib_co.cc library_negative.cc library_get_global.cc library_get_global_co.cc library_invariants.cc hipKernelGetAttribute.cc lib_attribute.cc ) if (HIP_PLATFORM MATCHES "amd") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code COMMAND ${CMAKE_HIP_COMPILER} ${HIP_DEVICE_BUILD_FLAGS_NO_ARCH} ${OFFLOAD_ARCH_LIST} --cuda-device-only -x hip ${CMAKE_CURRENT_SOURCE_DIR}/library_code_load.cc -o ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -I${HIP_INCLUDE_DIR} ${HIP_PATH_OPT} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/library_code_load.cc COMMENT "Compiling library_code_load.code") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code COMMAND ${CMAKE_HIP_COMPILER} ${HIP_DEVICE_BUILD_FLAGS_NO_ARCH} ${OFFLOAD_ARCH_LIST} --cuda-device-only -x hip ${CMAKE_CURRENT_SOURCE_DIR}/reverse_kernel.cc -o ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -I${HIP_INCLUDE_DIR} ${HIP_PATH_OPT} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/reverse_kernel.cc COMMENT "Compiling reverse_kernel.code") else() add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code COMMAND ${CMAKE_HIP_COMPILER} --fatbin -x cu ${CMAKE_CURRENT_SOURCE_DIR}/library_code_load.cc -o ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code ${OFFLOAD_ARCH_LIST} -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -I${HIP_INCLUDE_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/library_code_load.cc COMMENT "Compiling library_code_load.code") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code COMMAND ${CMAKE_HIP_COMPILER} --fatbin -x cu ${CMAKE_CURRENT_SOURCE_DIR}/reverse_kernel.cc -o ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code ${OFFLOAD_ARCH_LIST} -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -I${HIP_INCLUDE_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/reverse_kernel.cc COMMENT "Compiling reverse_kernel.code") endif() add_custom_target(library_code_load_code DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code) add_custom_target(reverse_kernel_code DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code) set_property(GLOBAL APPEND PROPERTY G_INSTALL_CUSTOM_TARGETS ${CMAKE_CURRENT_BINARY_DIR}/library_code_load.code) set_property(GLOBAL APPEND PROPERTY G_INSTALL_CUSTOM_TARGETS ${CMAKE_CURRENT_BINARY_DIR}/reverse_kernel.code) if(HIP_PLATFORM MATCHES "amd") hip_add_exe_to_target(NAME LibraryTests TEST_SRC ${TEST_SRC} TEST_TARGET_NAME build_tests LINKER_LIBS hiprtc::hiprtc) else() hip_add_exe_to_target(NAME LibraryTests TEST_SRC ${TEST_SRC} TEST_TARGET_NAME build_tests LINKER_LIBS nvrtc) endif() add_dependencies(LibraryTests library_code_load_code) add_dependencies(LibraryTests reverse_kernel_code)