From a9e14970309c628ca2eaafa886d67c2b96c121f0 Mon Sep 17 00:00:00 2001 From: Radovan Bast Date: Thu, 4 Jun 2015 17:57:18 +0200 Subject: [PATCH] FCFLAGS overrules other flags --- compilers/GNU.Fortran.cmake | 10 ++++++---- compilers/Intel.Fortran.cmake | 10 ++++++---- compilers/PGI.Fortran.cmake | 10 ++++++---- compilers/XL.Fortran.cmake | 10 ++++++---- modules/fc.cmake | 19 ++++++++++++++----- 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/compilers/GNU.Fortran.cmake b/compilers/GNU.Fortran.cmake index 9602b22..cab129e 100644 --- a/compilers/GNU.Fortran.cmake +++ b/compilers/GNU.Fortran.cmake @@ -1,5 +1,7 @@ -if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") - set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -funroll-all-loops -w") - set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -fbacktrace") +if(NOT DEFINED ENV{FCFLAGS}) + if(CMAKE_Fortran_COMPILER_ID MATCHES GNU) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") + set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -funroll-all-loops -w") + set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -fbacktrace") + endif() endif() diff --git a/compilers/Intel.Fortran.cmake b/compilers/Intel.Fortran.cmake index 9d753c0..6b4ce35 100644 --- a/compilers/Intel.Fortran.cmake +++ b/compilers/Intel.Fortran.cmake @@ -1,5 +1,7 @@ -if(CMAKE_Fortran_COMPILER_ID MATCHES Intel) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w -assume byterecl") - set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ip") - set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -traceback") +if(NOT DEFINED ENV{FCFLAGS}) + if(CMAKE_Fortran_COMPILER_ID MATCHES Intel) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -w -assume byterecl") + set(CMAKE_Fortran_FLAGS_RELEASE "-O3 -ip") + set(CMAKE_Fortran_FLAGS_DEBUG "-O0 -g -traceback") + endif() endif() diff --git a/compilers/PGI.Fortran.cmake b/compilers/PGI.Fortran.cmake index 9648f5f..2c73600 100644 --- a/compilers/PGI.Fortran.cmake +++ b/compilers/PGI.Fortran.cmake @@ -1,5 +1,7 @@ -if(CMAKE_Fortran_COMPILER_ID MATCHES PGI) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") - set(CMAKE_Fortran_FLAGS_RELEASE "-O3") - set(CMAKE_Fortran_FLAGS_DEBUG "-g") +if(NOT DEFINED ENV{FCFLAGS}) + if(CMAKE_Fortran_COMPILER_ID MATCHES PGI) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") + set(CMAKE_Fortran_FLAGS_RELEASE "-O3") + set(CMAKE_Fortran_FLAGS_DEBUG "-g") + endif() endif() diff --git a/compilers/XL.Fortran.cmake b/compilers/XL.Fortran.cmake index cfa260f..23f9a4b 100644 --- a/compilers/XL.Fortran.cmake +++ b/compilers/XL.Fortran.cmake @@ -1,5 +1,7 @@ -if(CMAKE_Fortran_COMPILER_ID MATCHES XL) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qzerosize -qextname -qsuppress=cmpmsg") - set(CMAKE_Fortran_FLAGS_RELEASE "-O3") - set(CMAKE_Fortran_FLAGS_DEBUG "-g") +if(NOT DEFINED ENV{FCFLAGS}) + if(CMAKE_Fortran_COMPILER_ID MATCHES XL) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -qzerosize -qextname -qsuppress=cmpmsg") + set(CMAKE_Fortran_FLAGS_RELEASE "-O3") + set(CMAKE_Fortran_FLAGS_DEBUG "-g") + endif() endif() diff --git a/modules/fc.cmake b/modules/fc.cmake index 70c20e0..9280838 100644 --- a/modules/fc.cmake +++ b/modules/fc.cmake @@ -1,13 +1,22 @@ #.rst: # # Adds Fortran support. -# Appends EXTRA_Fortran_FLAGS to CMAKE_Fortran_FLAGS. -# If environment variable FCFLAGS is set, then these flags are used -# and no other flags are appended. +# Appends EXTRA_FCFLAGS to CMAKE_Fortran_FLAGS. +# If environment variable FCFLAGS is set, then the FCFLAGS are used +# and no other flags are used or appended. # # Defines:: # # CMAKE_Fortran_MODULE_DIRECTORY (${PROJECT_BINARY_DIR}/include/fortran) +# +# Example autocmake.cfg entry:: +# +# [fc] +# source: https://github.com/scisoft/autocmake/raw/master/modules/fc.cmake +# docopt: --fc= Fortran compiler [default: gfortran]. +# --extra-fc-flags= Extra Fortran compiler flags [default: '']. +# export: 'FC=%s' % arguments['--fc']`` +# define: '-DEXTRA_FCFLAGS=%s' % arguments['--extra-fc-flags'] enable_language(Fortran) @@ -21,8 +30,8 @@ if(NOT CMAKE_Fortran_COMPILER_WORKS) message(FATAL_ERROR "CMAKE_Fortran_COMPILER_WORKS is false!") endif() -if(DEFINED EXTRA_Fortran_FLAGS) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${EXTRA_Fortran_FLAGS}") +if(DEFINED EXTRA_FCFLAGS) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${EXTRA_FCFLAGS}") endif() if(DEFINED ENV{FCFLAGS})