From a73a4a8fe739e7417605e8924902f28bad40f304 Mon Sep 17 00:00:00 2001 From: T8T9 <62922815+T8T9@users.noreply.github.com> Date: Tue, 16 Jun 2020 14:12:49 +0800 Subject: [PATCH] don't support cmake 3.12, 3.13, 3.14 (#25021) --- CMakeLists.txt | 7 +++++++ cmake/cuda.cmake | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91639493fb..8f62a3c932 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,13 @@ include(init) # TODO(Shibo Tao): remove find_package(CUDA) completely. find_package(CUDA QUIET) option(WITH_GPU "Compile PaddlePaddle with NVIDIA GPU" ${CUDA_FOUND}) + +# cmake 3.12, 3.13, 3.14 will append gcc link options to nvcc, and nvcc doesn't recognize them. +if(WITH_GPU AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.12) AND (${CMAKE_VERSION} VERSION_LESS 3.15)) + message(FATAL_ERROR "cmake ${CMAKE_VERSION} is not supported when WITH_GPU=ON because of bug https://tinyurl.com/ydbb9m7n. " + "You can use cmake 3.16 (recommended), 3.10, 3.11, 3.15 or 3.17. Please refer to the install document: https://cmake.org/install/") +endif() + if(WITH_GPU AND NOT APPLE) enable_language(CUDA) message(STATUS "CUDA compiler: ${CMAKE_CUDA_COMPILER}, version: " diff --git a/cmake/cuda.cmake b/cmake/cuda.cmake index ac6dab86fd..6dcdb0f853 100644 --- a/cmake/cuda.cmake +++ b/cmake/cuda.cmake @@ -205,7 +205,7 @@ set(CUDA_PROPAGATE_HOST_FLAGS OFF) # So, don't set these flags here. if (NOT WIN32) # windows msvc2015 support c++11 natively. # -std=c++11 -fPIC not recoginize by msvc, -Xcompiler will be added by cmake. - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -std=c++11") + set(CMAKE_CUDA_STANDARD 11) endif(NOT WIN32) # in cuda9, suppress cuda warning on eigen