From eeb4452b238f72566b0fbc1c2ff6dcc1edd28601 Mon Sep 17 00:00:00 2001 From: Evgeny Mankov Date: Wed, 28 Aug 2019 20:40:10 +0300 Subject: [PATCH] [HIPIFY][cmake] Minor refactoring 1. Fix setting std c++ (11|14) 2. Get rid of WIN32, use MSVC instead 3. Use VERSION_GREATER_EQUAL and VERSION_MAJOR instead of logical expressions --- hipify-clang/CMakeLists.txt | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/hipify-clang/CMakeLists.txt b/hipify-clang/CMakeLists.txt index 7ba92cd93d..e06b33d103 100644 --- a/hipify-clang/CMakeLists.txt +++ b/hipify-clang/CMakeLists.txt @@ -65,24 +65,31 @@ target_link_libraries(hipify-clang PRIVATE LLVMOption LLVMCore) -if(WIN32) - target_link_libraries(hipify-clang PRIVATE version) -endif() - -if ((LLVM_PACKAGE_VERSION VERSION_EQUAL "7") OR (LLVM_PACKAGE_VERSION VERSION_GREATER "7")) +if (LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "7") target_link_libraries(hipify-clang PRIVATE clangToolingInclusions) endif() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++14") -if(MSVC) +if (MSVC) + target_link_libraries(hipify-clang PRIVATE version) target_compile_options(hipify-clang PRIVATE "/Od /GR- /EHs- /EHc-") set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} /SUBSYSTEM:WINDOWS") + set(StdCpp "/std:c++") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -fno-rtti -fvisibility-inlines-hidden") + set(StdCpp "-std=c++") endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHIPIFY_CLANG_RES=\\\"${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}\\\"") +if (LLVM_PACKAGE_VERSION VERSION_GREATER_EQUAL "10.0") + string(APPEND StdCpp "14") +# MSVC starting from 1900 (VS 2015) supports only the following c++ std values: c++14|c++17|c++latest +elseif (MSVC) + set(StdCpp "") +else() + string(APPEND StdCpp "11") +endif() + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} ${StdCpp} -DHIPIFY_CLANG_RES=\\\"${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}\\\"") install(TARGETS hipify-clang DESTINATION bin) @@ -111,15 +118,15 @@ if (HIPIFY_CLANG_TESTS) (CUDA_VERSION VERSION_GREATER "9.2" AND LLVM_PACKAGE_VERSION VERSION_LESS "8.0") OR (CUDA_VERSION VERSION_GREATER "10.0" AND LLVM_PACKAGE_VERSION VERSION_LESS "9.0")) message(SEND_ERROR "CUDA ${CUDA_VERSION} is not supported by clang ${LLVM_PACKAGE_VERSION}.") - if (CUDA_VERSION VERSION_LESS "7.0") + if (CUDA_VERSION_MAJOR VERSION_LESS "7") message(STATUS "Please install CUDA 7.0 or higher.") - elseif ((CUDA_VERSION VERSION_EQUAL "7.0") OR (CUDA_VERSION VERSION_EQUAL "7.5")) + elseif (CUDA_VERSION_MAJOR VERSION_LESS "8") message(STATUS "Please install clang 3.8 or higher.") - elseif (CUDA_VERSION VERSION_EQUAL "8.0") + elseif (CUDA_VERSION_MAJOR VERSION_LESS "9") message(STATUS "Please install clang 4.0 or higher.") elseif (CUDA_VERSION VERSION_EQUAL "9.0") message(STATUS "Please install clang 6.0 or higher.") - elseif ((CUDA_VERSION VERSION_EQUAL "9.1") OR (CUDA_VERSION VERSION_EQUAL "9.2")) + elseif (CUDA_VERSION_MAJOR VERSION_LESS "10") message(STATUS "Please install clang 7.0 or higher.") elseif (CUDA_VERSION VERSION_EQUAL "10.0") message(STATUS "Please install clang 8.0 or higher.")