78 lines
2.3 KiB
CMake
78 lines
2.3 KiB
CMake
if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
|
|
# If Fortran runtime is built as CUDA library, the linking
|
|
# of targets that link FortranRuntime must be done
|
|
# with CUDA_RESOLVE_DEVICE_SYMBOLS.
|
|
# CUDA language must be enabled for CUDA_RESOLVE_DEVICE_SYMBOLS
|
|
# to take effect.
|
|
enable_language(CUDA)
|
|
endif()
|
|
|
|
add_custom_target(FlangUnitTests)
|
|
set_target_properties(FlangUnitTests PROPERTIES FOLDER "Flang Unit Tests")
|
|
|
|
function(add_flang_unittest_offload_properties target)
|
|
# Set CUDA_RESOLVE_DEVICE_SYMBOLS.
|
|
if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
|
|
set_target_properties(${target}
|
|
PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON
|
|
)
|
|
endif()
|
|
# Enable OpenMP offload during linking. We may need to replace
|
|
# LINK_OPTIONS with COMPILE_OPTIONS when there are OpenMP offload
|
|
# unittests.
|
|
#
|
|
# FIXME: replace 'native' in --offload-arch option with the list
|
|
# of targets that Fortran Runtime was built for.
|
|
# Common code must be moved from flang/runtime/CMakeLists.txt.
|
|
if (NOT FLANG_EXPERIMENTAL_OMP_OFFLOAD_BUILD STREQUAL "off")
|
|
set_target_properties(${target}
|
|
PROPERTIES LINK_OPTIONS
|
|
"-fopenmp;--offload-arch=native"
|
|
)
|
|
endif()
|
|
endfunction()
|
|
|
|
function(add_flang_unittest test_dirname)
|
|
add_unittest(FlangUnitTests ${test_dirname} ${ARGN})
|
|
add_flang_unittest_offload_properties(${test_dirname})
|
|
endfunction()
|
|
|
|
if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
|
|
add_compile_options("-Wno-suggest-override")
|
|
endif()
|
|
|
|
function(add_flang_nongtest_unittest test_name)
|
|
cmake_parse_arguments(ARG
|
|
"SLOW_TEST"
|
|
""
|
|
""
|
|
${ARGN})
|
|
|
|
if(ARG_SLOW_TEST)
|
|
set(suffix .slow)
|
|
else()
|
|
set(suffix .test)
|
|
endif()
|
|
|
|
add_executable(${test_name}${suffix} ${test_name}.cpp)
|
|
|
|
if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
|
|
set(llvm_libs LLVM)
|
|
else()
|
|
llvm_map_components_to_libnames(llvm_libs Support)
|
|
endif()
|
|
target_link_libraries(${test_name}${suffix} ${llvm_libs} ${ARG_UNPARSED_ARGUMENTS})
|
|
|
|
if(NOT ARG_SLOW_TEST)
|
|
add_dependencies(FlangUnitTests ${test_name}${suffix})
|
|
endif()
|
|
|
|
add_flang_unittest_offload_properties(${test_name}${suffix})
|
|
endfunction()
|
|
|
|
add_subdirectory(Optimizer)
|
|
add_subdirectory(Common)
|
|
add_subdirectory(Decimal)
|
|
add_subdirectory(Evaluate)
|
|
add_subdirectory(Runtime)
|
|
add_subdirectory(Frontend)
|