|
|
|
|
|
|
|
|
|
|
|
if ("NVCXX" STREQUAL "${CMAKE_CUDA_COMPILER_ID}") |
|
|
|
if (NOT "${CMAKE_CXX_COMPILER}" STREQUAL "") |
|
unset(CMAKE_CXX_COMPILER CACHE) |
|
message(FATAL_ERROR "You are using NVC++ as your CUDA C++ compiler, but have" |
|
" specified a different ISO C++ compiler; NVC++ acts as both, so please" |
|
" unset the CMAKE_CXX_COMPILER variable." |
|
) |
|
endif() |
|
|
|
|
|
|
|
|
|
if (NOT "${CMAKE_CUDA_HOST_COMPILER}" STREQUAL "") |
|
unset(CMAKE_CUDA_HOST_COMPILER CACHE) |
|
message(FATAL_ERROR "You are using NVC++ as your CUDA C++ compiler, but have" |
|
" specified a different host ISO C++ compiler; NVC++ acts as both, so" |
|
" please unset the CMAKE_CUDA_HOST_COMPILER variable." |
|
) |
|
endif() |
|
|
|
set(CMAKE_CXX_COMPILER "${CMAKE_CUDA_COMPILER}") |
|
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -stdpar") |
|
set(CMAKE_CUDA_HOST_LINK_LAUNCHER "${CMAKE_CUDA_COMPILER}") |
|
set(CMAKE_CUDA_LINK_EXECUTABLE |
|
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>") |
|
|
|
|
|
|
|
if (EXISTS /etc/debian_version) |
|
if (NOT CMAKE_CXX_LIBRARY_ARCHITECTURE) |
|
file(GLOB files_in_lib RELATIVE /lib /lib/*-linux-gnu* ) |
|
foreach (file ${files_in_lib}) |
|
if ("${file}" MATCHES "${CMAKE_LIBRARY_ARCHITECTURE_REGEX}") |
|
set(CMAKE_CXX_LIBRARY_ARCHITECTURE ${file}) |
|
break() |
|
endif() |
|
endforeach() |
|
endif() |
|
if (NOT CMAKE_LIBRARY_ARCHITECTURE) |
|
set(CMAKE_LIBRARY_ARCHITECTURE ${CMAKE_CXX_LIBRARY_ARCHITECTURE}) |
|
endif() |
|
endif() |
|
endif() |
|
|
|
|
|
|
|
|
|
if ((NOT "NVCXX" STREQUAL "${CMAKE_CUDA_COMPILER_ID}")) |
|
if (NOT ("${CMAKE_CUDA_HOST_COMPILER}" STREQUAL "" OR |
|
"${CMAKE_CUDA_HOST_COMPILER}" STREQUAL "${CMAKE_CXX_COMPILER}")) |
|
set(tmp "${CMAKE_CUDA_HOST_COMPILER}") |
|
unset(CMAKE_CUDA_HOST_COMPILER CACHE) |
|
message(FATAL_ERROR |
|
"For convenience, Thrust's test harness uses CMAKE_CXX_COMPILER for the " |
|
"CUDA host compiler. Refusing to overwrite specified " |
|
"CMAKE_CUDA_HOST_COMPILER -- please reconfigure without setting this " |
|
"variable. Currently:\n" |
|
"CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}\n" |
|
"CMAKE_CUDA_HOST_COMPILER=${tmp}" |
|
) |
|
endif () |
|
set(CMAKE_CUDA_HOST_COMPILER "${CMAKE_CXX_COMPILER}") |
|
endif () |
|
|
|
|
|
|
|
if ("NVCXX" STREQUAL "${CMAKE_CUDA_COMPILER_ID}") |
|
|
|
cmake_minimum_required(VERSION 3.17) |
|
|
|
set(CMAKE_CUDA_STANDARD_DEFAULT 03) |
|
|
|
set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "-std=c++03") |
|
set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "-std=c++03") |
|
set(CMAKE_CUDA03_STANDARD__HAS_FULL_SUPPORT TRUE) |
|
set_property(GLOBAL PROPERTY CMAKE_CUDA03_KNOWN_FEATURES) |
|
|
|
set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11") |
|
set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11") |
|
set(CMAKE_CUDA11_STANDARD__HAS_FULL_SUPPORT TRUE) |
|
set_property(GLOBAL PROPERTY CMAKE_CUDA11_KNOWN_FEATURES) |
|
|
|
set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "-std=c++14") |
|
set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14") |
|
set(CMAKE_CUDA14_STANDARD__HAS_FULL_SUPPORT TRUE) |
|
set_property(GLOBAL PROPERTY CMAKE_CUDA14_KNOWN_FEATURES) |
|
|
|
set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "-std=c++17") |
|
set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17") |
|
set(CMAKE_CUDA17_STANDARD__HAS_FULL_SUPPORT TRUE) |
|
set_property(GLOBAL PROPERTY CMAKE_CUDA17_KNOWN_FEATURES) |
|
|
|
include(Internal/FeatureTesting) |
|
include(Compiler/CMakeCommonCompilerMacros) |
|
cmake_record_cuda_compile_features() |
|
|
|
set(CMAKE_CUDA_COMPILE_FEATURES |
|
${CMAKE_CUDA03_COMPILE_FEATURES} |
|
${CMAKE_CUDA11_COMPILE_FEATURES} |
|
${CMAKE_CUDA14_COMPILE_FEATURES} |
|
${CMAKE_CUDA17_COMPILE_FEATURES} |
|
${CMAKE_CUDA20_COMPILE_FEATURES} |
|
) |
|
endif() |
|
|