xref: /openbsd-src/gnu/llvm/clang/tools/nvptx-arch/CMakeLists.txt (revision 12c855180aad702bbcca06e0398d774beeafb155)
1# //===--------------------------------------------------------------------===//
2# //
3# // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4# // See https://llvm.org/LICENSE.txt for details.
5# // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6# //
7# //===--------------------------------------------------------------------===//
8
9set(LLVM_LINK_COMPONENTS Support)
10add_clang_tool(nvptx-arch NVPTXArch.cpp)
11
12# TODO: This is deprecated. Since CMake 3.17 we can use FindCUDAToolkit instead.
13find_package(CUDA QUIET)
14find_library(cuda-library NAMES cuda PATHS /lib64)
15if (NOT cuda-library AND CUDA_FOUND)
16  get_filename_component(CUDA_LIBDIR "${CUDA_cudart_static_LIBRARY}" DIRECTORY)
17  find_library(cuda-library NAMES cuda HINTS "${CUDA_LIBDIR}/stubs")
18endif()
19
20# If we found the CUDA library directly we just dynamically link against it.
21if (CUDA_FOUND AND cuda-library)
22  target_include_directories(nvptx-arch PRIVATE ${CUDA_INCLUDE_DIRS})
23  target_link_libraries(nvptx-arch PRIVATE ${cuda-library})
24else()
25  target_compile_definitions(nvptx-arch PRIVATE "DYNAMIC_CUDA")
26endif()
27