@@ -239,18 +239,30 @@ macro(dgl_config_cuda out_variable)
239
239
src/geometry/cuda/*.cu
240
240
)
241
241
242
+ # NVCC flags
243
+ # Manually set everything
244
+ set (CUDA_PROPAGATE_HOST_FLAGS OFF )
245
+
246
+ # 0. Add host flags
247
+ message (STATUS "${CMAKE_CXX_FLAGS} " )
248
+ string (REGEX REPLACE "[ \t\n\r ]" "," CXX_HOST_FLAGS "${CMAKE_CXX_FLAGS} " )
249
+ list (APPEND CUDA_NVCC_FLAGS "-Xcompiler ,${CXX_HOST_FLAGS} " )
250
+
251
+ # 1. Add arch flags
242
252
dgl_select_nvcc_arch_flags(NVCC_FLAGS_ARCH)
243
- string (REPLACE ";" " " NVCC_FLAGS_ARCH "${NVCC_FLAGS_ARCH} " )
244
- set (NVCC_FLAGS_EXTRA ${NVCC_FLAGS_ARCH} )
245
- # for lambda support in moderngpu
246
- set (NVCC_FLAGS_EXTRA "${NVCC_FLAGS_EXTRA} --expt-extended-lambda" )
247
- # suppress deprecated warning in moderngpu
248
- set (NVCC_FLAGS_EXTRA "${NVCC_FLAGS_EXTRA} -Wno-deprecated-declarations" )
249
- # for compile with c++14
250
- set (NVCC_FLAGS_EXTRA "${NVCC_FLAGS_EXTRA} --expt-extended-lambda --std=c++14" )
251
- message (STATUS "NVCC extra flags: ${NVCC_FLAGS_EXTRA} " )
252
- set (CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} ${NVCC_FLAGS_EXTRA} " )
253
- list (APPEND CMAKE_CUDA_FLAGS "${NVCC_FLAGS_EXTRA} " )
253
+ list (APPEND CUDA_NVCC_FLAGS ${NVCC_FLAGS_ARCH} )
254
+
255
+ # 2. flags in third_party/moderngpu
256
+ list (APPEND CUDA_NVCC_FLAGS "--expt-extended-lambda;-Wno-deprecated-declarations" )
257
+
258
+
259
+ # 3. CUDA 11 requires c++14 by default
260
+ include (CheckCXXCompilerFlag)
261
+ check_cxx_compiler_flag("-std=c++14" SUPPORT_CXX14)
262
+ string (REPLACE "-std=c++11" "" CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} " )
263
+ list (APPEND CUDA_NVCC_FLAGS "--std=c++14" )
264
+
265
+ message (STATUS "CUDA flags: ${CUDA_NVCC_FLAGS} " )
254
266
255
267
list (APPEND DGL_LINKER_LIBS
256
268
${CUDA_CUDART_LIBRARY}
0 commit comments