Fix compile with IntelLLVM and cmake 3.20
authorRoland Schulz <roland.schulz@intel.com>
Wed, 5 May 2021 04:51:19 +0000 (21:51 -0700)
committerRoland Schulz <roland.schulz@intel.com>
Wed, 5 May 2021 04:54:59 +0000 (21:54 -0700)
cmake/FindLibStdCpp.cmake
cmake/gmxCFlags.cmake
cmake/gmxManageSharedLibraries.cmake

index f3566fe0ca871d00e7a85868430fd101bce95e98..25c1038a6a330c0ef1af8680f63f45015d0c3a8e 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2019,2020, by the GROMACS development team, led by
+# Copyright (c) 2019,2020,2021, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -65,7 +65,7 @@ if (DEFINED GMX_GPLUSGPLUS_PATH)
     set(EXTRA_MESSAGE ", ignoring the value of GMX_GPLUSPLUS_PATH")
 endif()
 string(TOUPPER "${CMAKE_BUILD_TYPE}" _cmake_build_type)
-if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
    if ("${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_cmake_build_type}}" MATCHES "--gcc-toolchain")
        message(STATUS "The --gcc-toolchain option is already present in the CMAKE_CXX_FLAGS "
            "(or perhaps those specific to the CMAKE_BUILD_TYPE), and the GROMACS build "
@@ -87,7 +87,7 @@ if(NEED_TO_FIND_GPLUSPLUS)
     # Find a gcc (perhaps already specified by the user in
     # GMX_GPLUSPLUS_PATH) and prepare to reproducibly use its libstdc++.
     find_program(GMX_GPLUSPLUS_PATH g++)
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
         set(EXTRA_MESSAGE
             " Clang supports using libc++ with -DCMAKE_CXX_FLAGS=--stdlib=libc++, and if so there will be no need to find g++.")
     endif()
@@ -120,7 +120,7 @@ if(NEED_TO_FIND_GPLUSPLUS)
     endif()
 
     # Now make some sanity checks on the compiler using libstdc++.
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
         get_filename_component(GMX_GPLUSPLUS_PATH "${GMX_GPLUSPLUS_PATH}" REALPATH)
         get_filename_component(GMX_GPLUSPLUS_PATH "${GMX_GPLUSPLUS_PATH}" DIRECTORY) #strip g++
         get_filename_component(GMX_GPLUSPLUS_PATH "${GMX_GPLUSPLUS_PATH}" DIRECTORY) #strip bin
@@ -137,7 +137,7 @@ if(NEED_TO_FIND_GPLUSPLUS)
     # Set up to use the libstdc++ from that g++. Note that we checked
     # the existing contents of CMAKE_CXX_FLAGS* variables earlier, so
     # we will not override any user settings here.
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=${GMX_GPLUSPLUS_PATH}")
     else() #Intel
         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -gcc-name=${GMX_GPLUSPLUS_PATH}")
index 97d095eec6833e1df6386cc61015cee6c3a9dafb..dbbc4f1ca78758b26e73071cd87ed73ccf6786b3 100644 (file)
@@ -257,7 +257,7 @@ macro (gmx_c_flags)
     endif()
 
     # icc
-    if (CMAKE_C_COMPILER_ID MATCHES "Intel")
+    if (CMAKE_C_COMPILER_ID STREQUAL "Intel")
         if (NOT WIN32)
             if(NOT GMX_OPENMP)
 # 3180: unrecognized OpenMP #pragma
@@ -304,7 +304,7 @@ GMX_TEST_CFLAG(CFLAGS_WARN "/W3;/wd161;/wd177;/wd411;/wd593;/wd981;/wd1418;/wd14
         endif()
     endif()
 
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Intel")
+    if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
         if (NOT WIN32) 
             if(NOT GMX_OPENMP)
                 GMX_TEST_CXXFLAG(CXXFLAGS_PRAGMA "-wd3180" GMXC_CXXFLAGS)
@@ -414,7 +414,7 @@ GMX_TEST_CFLAG(CFLAGS_WARN "/W3;/wd161;/wd177;/wd411;/wd593;/wd981;/wd1418;/wd14
         GMX_TEST_CXXFLAG(CXXFLAGS_LANG "/permissive-" GMXC_CXXFLAGS)
     endif()
 
-    if (CMAKE_C_COMPILER_ID MATCHES "Clang")
+    if (CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "IntelLLVM")
         if(NOT GMX_OPENMP)
             GMX_TEST_CFLAG(CFLAGS_PRAGMA "-Wno-unknown-pragmas" GMXC_CFLAGS)
         endif()
@@ -425,7 +425,7 @@ GMX_TEST_CFLAG(CFLAGS_WARN "/W3;/wd161;/wd177;/wd411;/wd593;/wd981;/wd1418;/wd14
         GMX_TEST_CFLAG(CFLAGS_WARN_NO_MISSING_FIELD_INITIALIZERS "-Wno-missing-field-initializers" GMXC_CFLAGS)
     endif()
 
-    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "IntelLLVM")
         if (GMX_COMPILER_WARNINGS)
             # If used, -Wall should precede other options that silence warnings it enables
             GMX_TEST_CXXFLAG(CXXFLAGS_WARN "-Wall" GMXC_CXXFLAGS)
index 53c0ec512416fd7611e9f36b5de8a5c34625144e..8b3f3a92350a2c0ad926ceccf0e179120e81a3b8 100644 (file)
@@ -1,7 +1,7 @@
 #
 # This file is part of the GROMACS molecular simulation package.
 #
-# Copyright (c) 2012,2013,2014,2015,2018,2020, by the GROMACS development team, led by
+# Copyright (c) 2012,2013,2014,2015,2018,2020,2021, by the GROMACS development team, led by
 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
 # and including many others, as listed in the AUTHORS file in the
 # top-level source directory and at http://www.gromacs.org.
@@ -146,7 +146,7 @@ IF( WIN32)
           gmx_manage_prefer_static_libs_flags("${build_type}")
       endforeach()
   ENDIF()
-  IF( CMAKE_C_COMPILER_ID MATCHES "Intel" )
+  IF( CMAKE_C_COMPILER_ID STREQUAL "Intel" )
     if(BUILD_SHARED_LIBS) #not sure why incremental building with shared libs doesn't work
         STRING(REPLACE "/INCREMENTAL:YES" "" CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS})
         set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} PARENT_SCOPE)