Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / Module / CheckIPOSupported-CUDA / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.8)
2 project(CheckIPOSupported-CUDA LANGUAGES CUDA)
3
4 cmake_policy(SET CMP0069 NEW)
5
6 include(CheckIPOSupported)
7 check_ipo_supported(RESULT ipo_supported OUTPUT ipo_output)
8 if(ipo_supported)
9   set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
10 endif()
11
12 if(NOT ipo_supported AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA"
13    AND CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 11.2)
14   message(FATAL_ERROR "CheckIPOSupported failed to correctly identify NVIDIA CUDA IPO support")
15 endif()
16
17 set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
18
19 add_library(foo STATIC foo.cu)
20 set_target_properties(foo PROPERTIES
21       WINDOWS_EXPORT_ALL_SYMBOLS ON
22       POSITION_INDEPENDENT_CODE ON)
23
24 add_library(bar SHARED bar.cu)
25 set_target_properties(bar PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
26 target_link_libraries(bar PRIVATE foo)
27
28 add_executable(CheckIPOSupported-CUDA main.cu)
29 target_link_libraries(CheckIPOSupported-CUDA PUBLIC bar)
30
31 enable_testing()
32 add_test(NAME CheckIPOSupported-CUDA COMMAND CheckIPOSupported-CUDA)