mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-23 14:48:19 -05:00
CUDA: Populate NVIDIA compiler information on Windows
Port Windows-specific compilation and linking rules over from the `Platform/Windows-MSVC` module and adapt it for NVIDIA CUDA. On Windows nvcc and its host compiler (MSVC) do not understand or use options like `-fPIC` or `-std=`, so condition those out.
This commit is contained in:
@@ -1,14 +1,15 @@
|
||||
set(CMAKE_CUDA_VERBOSE_FLAG "-v")
|
||||
|
||||
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_PIE -Xcompiler=-fPIE)
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_PIC -Xcompiler=-fPIC)
|
||||
#CMAKE_SHARED_LIBRARY_CUDA_FLAGS is sent to the host linker so we don' need
|
||||
#to forward it through nvcc
|
||||
set(CMAKE_SHARED_LIBRARY_CUDA_FLAGS -fPIC)
|
||||
if(NOT "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_PIE -Xcompiler=-fPIE)
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_PIC -Xcompiler=-fPIC)
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY -Xcompiler=-fvisibility=)
|
||||
# CMAKE_SHARED_LIBRARY_CUDA_FLAGS is sent to the host linker so we
|
||||
# don't need to forward it through nvcc.
|
||||
set(CMAKE_SHARED_LIBRARY_CUDA_FLAGS -fPIC)
|
||||
endif()
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS -shared)
|
||||
set(CMAKE_INCLUDE_SYSTEM_FLAG_CUDA -isystem=)
|
||||
set(CMAKE_CUDA_COMPILE_OPTIONS_VISIBILITY -Xcompiler=-fvisibility=)
|
||||
|
||||
string(APPEND CMAKE_CUDA_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -g")
|
||||
@@ -16,9 +17,12 @@ string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -Os -DNDEBUG")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -O3 -DNDEBUG")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
|
||||
|
||||
set(CMAKE_CUDA98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CUDA98_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||
set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11")
|
||||
|
||||
set(CMAKE_CUDA_STANDARD_DEFAULT 98)
|
||||
if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_CUDA_STANDARD_DEFAULT "")
|
||||
else()
|
||||
set(CMAKE_CUDA_STANDARD_DEFAULT 98)
|
||||
set(CMAKE_CUDA98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CUDA98_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11")
|
||||
set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user