Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / CudaOnly / CMakeLists.txt
1 macro (add_cuda_test_macro name)
2   add_test_macro("${name}" ${ARGN})
3   set_property(TEST "${name}" APPEND
4     PROPERTY LABELS "CUDA")
5 endmacro ()
6
7 add_cuda_test_macro(CudaOnly.Architecture Architecture)
8 add_cuda_test_macro(CudaOnly.ArchSpecial CudaOnlyArchSpecial)
9 add_cuda_test_macro(CudaOnly.CompileFlags CudaOnlyCompileFlags)
10 add_cuda_test_macro(CudaOnly.EnableStandard CudaOnlyEnableStandard)
11 add_cuda_test_macro(CudaOnly.ExportPTX CudaOnlyExportPTX)
12 add_cuda_test_macro(CudaOnly.SharedRuntimePlusToolkit CudaOnlySharedRuntimePlusToolkit)
13 add_cuda_test_macro(CudaOnly.Standard98 CudaOnlyStandard98)
14 add_cuda_test_macro(CudaOnly.Toolkit CudaOnlyToolkit)
15 add_cuda_test_macro(CudaOnly.ToolkitBeforeLang CudaOnlyToolkitBeforeLang)
16 add_cuda_test_macro(CudaOnly.ToolkitMultipleDirs CudaOnlyToolkitMultipleDirs)
17 add_cuda_test_macro(CudaOnly.WithDefs CudaOnlyWithDefs)
18 add_cuda_test_macro(CudaOnly.CircularLinkLine CudaOnlyCircularLinkLine)
19 add_cuda_test_macro(CudaOnly.ResolveDeviceSymbols CudaOnlyResolveDeviceSymbols)
20 add_cuda_test_macro(CudaOnly.SeparateCompilation main/CudaOnlySeparateCompilation)
21 add_cuda_test_macro(CudaOnly.SeparateCompilationPTX CudaOnlySeparateCompilationPTX)
22
23 if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
24   # Clang doesn't have flags for selecting the runtime.
25   add_cuda_test_macro(CudaOnly.SharedRuntimeViaCUDAFlags CudaOnlySharedRuntimeViaCUDAFlags)
26
27   # Only NVCC defines __CUDACC_DEBUG__ when compiling in debug mode.
28   add_cuda_test_macro(CudaOnly.GPUDebugFlag CudaOnlyGPUDebugFlag)
29 endif()
30
31 # The CUDA only ships the shared version of the toolkit libraries
32 # on windows
33 if(NOT WIN32)
34   add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit)
35 endif()
36
37 add_cuda_test_macro(CudaOnly.DeviceLTO CudaOnlyDeviceLTO)
38
39 if(MSVC)
40   # Tests for features that only work with MSVC
41   add_cuda_test_macro(CudaOnly.PDB CudaOnlyPDB)
42 endif()
43
44 add_test(NAME CudaOnly.DontResolveDeviceSymbols COMMAND
45   ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
46   --build-and-test
47   "${CMAKE_CURRENT_SOURCE_DIR}/DontResolveDeviceSymbols/"
48   "${CMAKE_CURRENT_BINARY_DIR}/DontResolveDeviceSymbols/"
49   ${build_generator_args}
50   --build-project DontResolveDeviceSymbols
51   --build-options ${build_options}
52   --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
53 )
54 set_property(TEST "CudaOnly.DontResolveDeviceSymbols" APPEND
55   PROPERTY LABELS "CUDA")
56
57 add_test(NAME CudaOnly.RuntimeControls COMMAND
58   ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
59   --build-and-test
60   "${CMAKE_CURRENT_SOURCE_DIR}/RuntimeControls/"
61   "${CMAKE_CURRENT_BINARY_DIR}/RuntimeControls/"
62   --build-two-config
63     ${build_generator_args}
64   --build-project RuntimeControls
65   --build-options ${build_options}
66   --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
67   )
68 set_property(TEST "CudaOnly.RuntimeControls" APPEND
69   PROPERTY LABELS "CUDA")