47 lines · plain
1set(LLVM_LINK_COMPONENTS2 BinaryFormat3 Object4 Option5 Support6 FrontendOffloading7 TargetParser8)9 10add_llvm_tool(llvm-gpu-loader11 llvm-gpu-loader.cpp12 13 # TODO: We intentionally split this currently due to statically linking the14 # GPU runtimes. Dynamically load the dependencies, possibly using the15 # LLVM offloading API when it is complete.16 PARTIAL_SOURCES_INTENDED17 18 DEPENDS19 intrinsics_gen20)21 22# Locate the RPC server handling interface.23include(FindLibcCommonUtils)24target_link_libraries(llvm-gpu-loader PUBLIC llvm-libc-common-utilities)25 26# Check for HSA support for targeting AMD GPUs.27find_package(hsa-runtime64 QUIET 1.2.0 HINTS ${CMAKE_INSTALL_PREFIX} PATHS /opt/rocm)28if(hsa-runtime64_FOUND)29 target_sources(llvm-gpu-loader PRIVATE amdhsa.cpp)30 target_compile_definitions(llvm-gpu-loader PRIVATE AMDHSA_SUPPORT)31 target_link_libraries(llvm-gpu-loader PRIVATE hsa-runtime64::hsa-runtime64)32 33 # Compatibility with the old amdhsa-loader name.34 add_llvm_tool_symlink(amdhsa-loader llvm-gpu-loader)35endif()36 37# Check for CUDA support for targeting NVIDIA GPUs.38find_package(CUDAToolkit 11.2 QUIET)39if(CUDAToolkit_FOUND)40 target_sources(llvm-gpu-loader PRIVATE nvptx.cpp)41 target_compile_definitions(llvm-gpu-loader PRIVATE NVPTX_SUPPORT)42 target_link_libraries(llvm-gpu-loader PRIVATE CUDA::cuda_driver)43 44 # Compatibility with the old nvptx-loader name.45 add_llvm_tool_symlink(nvptx-loader llvm-gpu-loader)46endif()47