[Cmake-commits] CMake branch, next, updated. v3.1.2-1027-g8918fa8

Brad King brad.king at kitware.com
Thu Feb 5 11:20:49 EST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  8918fa8bac9d8a9ce83f7f970a55c184da23d25e (commit)
       via  1814cf744ce69ab97ce4a8fe8183b4d4f7f75cf4 (commit)
       via  54e900abfbbddde560a853355b448e1b86681741 (commit)
       via  393a45e2e1fa2f0d9657d4a686257d828cd918e4 (commit)
      from  e3c8a3a0ff84d1b4eaf2b9089eeb67d51f6c4cbd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8918fa8bac9d8a9ce83f7f970a55c184da23d25e
commit 8918fa8bac9d8a9ce83f7f970a55c184da23d25e
Merge: e3c8a3a 1814cf7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 5 11:20:41 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Feb 5 11:20:41 2015 -0500

    Merge topic 'add-CheckFortranCompilerFlag' into next
    
    1814cf74 Help: Add notes for topic 'add-CheckFortranCompilerFlag'
    54e900ab CheckFortranCompilerFlag: Add test case
    393a45e2 CheckFortranCompilerFlag: Add module to check Fortran flag existence


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1814cf744ce69ab97ce4a8fe8183b4d4f7f75cf4
commit 1814cf744ce69ab97ce4a8fe8183b4d4f7f75cf4
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 5 11:18:41 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 5 11:18:41 2015 -0500

    Help: Add notes for topic 'add-CheckFortranCompilerFlag'

diff --git a/Help/release/dev/add-CheckFortranCompilerFlag.rst b/Help/release/dev/add-CheckFortranCompilerFlag.rst
new file mode 100644
index 0000000..718b53e
--- /dev/null
+++ b/Help/release/dev/add-CheckFortranCompilerFlag.rst
@@ -0,0 +1,6 @@
+add-CheckFortranCompilerFlag
+----------------------------
+
+* The :module:`CheckFortranCompilerFlag` module was introduced
+  to check ``Fortran`` compiler flags, much like the
+  :module:`CheckCCompilerFlag` module already does for ``C``.

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=54e900abfbbddde560a853355b448e1b86681741
commit 54e900abfbbddde560a853355b448e1b86681741
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 5 11:18:13 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 5 11:18:13 2015 -0500

    CheckFortranCompilerFlag: Add test case
    
    Extend the FortranOnly test with a case covering this module.

diff --git a/Tests/FortranOnly/CMakeLists.txt b/Tests/FortranOnly/CMakeLists.txt
index 1b2651d..9bf0303 100644
--- a/Tests/FortranOnly/CMakeLists.txt
+++ b/Tests/FortranOnly/CMakeLists.txt
@@ -65,6 +65,13 @@ if(NOT CMAKE_Fortran_COMPILER_ID STREQUAL XL)
     message(SEND_ERROR "CHECK_Fortran_SOURCE_COMPILES for HAVE_PRINT failed:\n"
       "${err}")
   endif()
+
+  unset(Fortran_BOGUS_FLAG CACHE)
+  include(CheckFortranCompilerFlag)
+  CHECK_Fortran_COMPILER_FLAG(-_this_is_not_a_flag_ Fortran_BOGUS_FLAG)
+  if (Fortran_BOGUS_FLAG)
+    message (SEND_ERROR "CHECK_Fortran_COMPILER_FLAG() succeeded, but should have failed")
+  endif ()
 endif()
 
 # Test generation of preprocessed sources.

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=393a45e2e1fa2f0d9657d4a686257d828cd918e4
commit 393a45e2e1fa2f0d9657d4a686257d828cd918e4
Author:     Nicolas Bock <nicolasbock at gmail.com>
AuthorDate: Mon Feb 2 17:07:04 2015 -0700
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 5 11:16:59 2015 -0500

    CheckFortranCompilerFlag: Add module to check Fortran flag existence
    
    Copy the CheckCCompilerFlag module and replace 'C' with 'Fortran'.
    Also update the common patterns module to match some Fortran compiler
    messages.

diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst
index db56010..76058f9 100644
--- a/Help/manual/cmake-modules.7.rst
+++ b/Help/manual/cmake-modules.7.rst
@@ -22,6 +22,7 @@ All Modules
    /module/CheckCXXSourceCompiles
    /module/CheckCXXSourceRuns
    /module/CheckCXXSymbolExists
+   /module/CheckFortranCompilerFlag
    /module/CheckFortranFunctionExists
    /module/CheckFortranSourceCompiles
    /module/CheckFunctionExists
diff --git a/Help/module/CheckFortranCompilerFlag.rst b/Help/module/CheckFortranCompilerFlag.rst
new file mode 100644
index 0000000..58bf6ec
--- /dev/null
+++ b/Help/module/CheckFortranCompilerFlag.rst
@@ -0,0 +1 @@
+.. cmake-module:: ../../Modules/CheckFortranCompilerFlag.cmake
diff --git a/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake b/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
index 19b2bbc..3141d60 100644
--- a/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
+++ b/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake
@@ -21,9 +21,9 @@
 
 macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
    set(${_VAR}
-     FAIL_REGEX "unrecognized .*option"                     # GNU
+     FAIL_REGEX "[Uu]nrecogni[sz]ed .*option"               # GNU, NAG
      FAIL_REGEX "unknown .*option"                          # Clang
-     FAIL_REGEX "ignoring unknown option"                   # MSVC
+     FAIL_REGEX "ignoring unknown option"                   # MSVC, Intel
      FAIL_REGEX "warning D9002"                             # MSVC, any lang
      FAIL_REGEX "option.*not supported"                     # Intel
      FAIL_REGEX "invalid argument .*option"                 # Intel
@@ -35,6 +35,7 @@ macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
      FAIL_REGEX "command option .* contains an incorrect subargument" # XL
      FAIL_REGEX "not supported in this configuration. ignored"       # AIX
      FAIL_REGEX "File with unknown suffix passed to linker" # PGI
+     FAIL_REGEX "[Uu]nknown switch"                         # PGI
      FAIL_REGEX "WARNING: unknown flag:"                    # Open64
      FAIL_REGEX "Incorrect command line option:"            # Borland
      FAIL_REGEX "Warning: illegal option"                   # SunStudio 12
diff --git a/Modules/CheckFortranCompilerFlag.cmake b/Modules/CheckFortranCompilerFlag.cmake
new file mode 100644
index 0000000..53fd8d6
--- /dev/null
+++ b/Modules/CheckFortranCompilerFlag.cmake
@@ -0,0 +1,66 @@
+#.rst:
+# CheckFortranCompilerFlag
+# ------------------------
+#
+# Check whether the Fortran compiler supports a given flag.
+#
+# CHECK_Fortran_COMPILER_FLAG(<flag> <var>)
+#
+# ::
+#
+#   <flag> - the compiler flag
+#   <var>  - variable to store the result
+#            Will be created as an internal cache variable.
+#
+# This internally calls the check_fortran_source_compiles macro and
+# sets CMAKE_REQUIRED_DEFINITIONS to <flag>.  See help for
+# CheckFortranSourceCompiles for a listing of variables that can
+# otherwise modify the build.  The result only tells that the compiler
+# does not give an error message when it encounters the flag.  If the
+# flag has any effect or even a specific one is beyond the scope of
+# this module.
+
+#=============================================================================
+# Copyright 2015 Nicolas Bock <nicolasbock at gmail.com>
+# Copyright 2006-2011 Kitware, Inc.
+# Copyright 2006 Alexander Neundorf <neundorf at kde.org>
+# Copyright 2011 Matthias Kretz <kretz at kde.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+include(CheckFortranSourceCompiles)
+include(CMakeCheckCompilerFlagCommonPatterns)
+
+macro (CHECK_Fortran_COMPILER_FLAG _FLAG _RESULT)
+  set(SAFE_CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS}")
+  set(CMAKE_REQUIRED_DEFINITIONS "${_FLAG}")
+
+  # Normalize locale during test compilation.
+  set(_CheckFortranCompilerFlag_LOCALE_VARS LC_ALL LC_MESSAGES LANG)
+  foreach(v ${_CheckFortranCompilerFlag_LOCALE_VARS})
+    set(_CheckFortranCompilerFlag_SAVED_${v} "$ENV{${v}}")
+    set(ENV{${v}} C)
+  endforeach()
+  CHECK_COMPILER_FLAG_COMMON_PATTERNS(_CheckFortranCompilerFlag_COMMON_PATTERNS)
+  CHECK_Fortran_SOURCE_COMPILES("       program test\n       stop\n       end program" ${_RESULT}
+    # Some compilers do not fail with a bad flag
+    FAIL_REGEX "command line option .* is valid for .* but not for Fortran" # GNU
+    ${_CheckFortranCompilerFlag_COMMON_PATTERNS}
+    )
+  foreach(v ${_CheckFortranCompilerFlag_LOCALE_VARS})
+    set(ENV{${v}} ${_CheckFortranCompilerFlag_SAVED_${v}})
+    unset(_CheckFortranCompilerFlag_SAVED_${v})
+  endforeach()
+  unset(_CheckFortranCompilerFlag_LOCALE_VARS)
+  unset(_CheckFortranCompilerFlag_COMMON_PATTERNS)
+
+  set (CMAKE_REQUIRED_DEFINITIONS "${SAFE_CMAKE_REQUIRED_DEFINITIONS}")
+endmacro ()

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-modules.7.rst                    |    1 +
 Help/module/CheckFortranCompilerFlag.rst           |    1 +
 Help/release/dev/add-CheckFortranCompilerFlag.rst  |    6 ++
 Modules/CMakeCheckCompilerFlagCommonPatterns.cmake |    5 +-
 Modules/CheckFortranCompilerFlag.cmake             |   66 ++++++++++++++++++++
 Tests/FortranOnly/CMakeLists.txt                   |    7 +++
 6 files changed, 84 insertions(+), 2 deletions(-)
 create mode 100644 Help/module/CheckFortranCompilerFlag.rst
 create mode 100644 Help/release/dev/add-CheckFortranCompilerFlag.rst
 create mode 100644 Modules/CheckFortranCompilerFlag.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list