mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-15 22:46:32 +00:00

Under non-Windows platforms, also create a dynamic library version of the runtime. Build of either version of the library can be switched on using FLANG_RT_ENABLE_STATIC=ON respectively FLANG_RT_ENABLE_SHARED=ON. Default is to build only the static library, consistent with previous behaviour. This is because the way the flang driver invokes the linker, most linkers choose the dynamic library by default, if available. Building the dynamic library therefore causes flang-built executables to depend on `libflang_rt.so`, unless explicitly told otherwise.
43 lines
1.3 KiB
CMake
43 lines
1.3 KiB
CMake
#===-- lib/cuda/CMakeLists.txt ---------------------------------------------===#
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
#===------------------------------------------------------------------------===#
|
|
|
|
add_flangrt_library(flang_rt.cuda STATIC SHARED
|
|
allocatable.cpp
|
|
allocator.cpp
|
|
descriptor.cpp
|
|
init.cpp
|
|
kernel.cpp
|
|
memmove-function.cpp
|
|
memory.cpp
|
|
registration.cpp
|
|
|
|
TARGET_PROPERTIES
|
|
# libflang_rt.runtime depends on a certain version of CUDA. To be able to have
|
|
# multiple build of this library with different CUDA version, the version is
|
|
# added to the library name.
|
|
OUTPUT_NAME "flang_rt.cuda_${CUDAToolkit_VERSION_MAJOR}"
|
|
INCLUDE_DIRECTORIES
|
|
PRIVATE ${CUDAToolkit_INCLUDE_DIRS}
|
|
)
|
|
|
|
# For the static library, link-in the static dependencies as well.
|
|
if (TARGET flang_rt.cuda.static)
|
|
target_link_libraries(flang_rt.cuda.static PUBLIC
|
|
flang_rt.runtime.static
|
|
CUDA::cudart_static
|
|
)
|
|
endif ()
|
|
|
|
# For the shared library, use the shared versions of the dependencies.
|
|
if (TARGET flang_rt.cuda.shared)
|
|
target_link_libraries(flang_rt.cuda.shared PUBLIC
|
|
flang_rt.runtime.shared
|
|
CUDA::cudart
|
|
)
|
|
endif ()
|