mirror of
https://github.com/reactos/CMake.git
synced 2025-02-08 12:58:46 +00:00
CUDA: Link to standard system libraries when linking as CUDA
On Windows with MSVC-like host compilers we must honor the standard libraries chosen by the `Platform/Windows-MSVC` module. Otherwise C code linked into the CUDA binary that expects to have these libraries available may not link.
This commit is contained in:
parent
8d75d8dc72
commit
1c60231ca5
@ -93,6 +93,12 @@ if(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
|
||||
|
||||
endif()
|
||||
|
||||
if(CMAKE_CUDA_STANDARD_LIBRARIES_INIT)
|
||||
set(CMAKE_CUDA_STANDARD_LIBRARIES "${CMAKE_CUDA_STANDARD_LIBRARIES_INIT}"
|
||||
CACHE STRING "Libraries linked by default with all CUDA applications.")
|
||||
mark_as_advanced(CMAKE_CUDA_STANDARD_LIBRARIES)
|
||||
endif()
|
||||
|
||||
include(CMakeCommonLanguageInclude)
|
||||
|
||||
# now define the following rules:
|
||||
|
@ -40,3 +40,5 @@ string(APPEND CMAKE_CUDA_FLAGS_DEBUG_INIT " -Xcompiler=-MDd,-Zi,-RTC1")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_RELEASE_INIT " -Xcompiler=-MD")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_RELWITHDEBINFO_INIT " -Xcompiler=-MD")
|
||||
string(APPEND CMAKE_CUDA_FLAGS_MINSIZEREL_INIT " -Xcompiler=-MD")
|
||||
|
||||
set(CMAKE_CUDA_STANDARD_LIBRARIES_INIT "${CMAKE_C_STANDARD_LIBRARIES_INIT}")
|
||||
|
@ -1,6 +1,14 @@
|
||||
extern int use_cuda(void);
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
/* Use an API that requires CMake's "standard" C libraries. */
|
||||
GetOpenFileName(NULL);
|
||||
#endif
|
||||
return use_cuda();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user