From cb3a0a5249c1c87bb186a6e170407b1f601a314c Mon Sep 17 00:00:00 2001 From: Radovan Bast Date: Sun, 19 Jul 2015 15:37:53 +0200 Subject: [PATCH] make it possible to toggle fortran support --- modules/fc.cmake | 45 ++++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/modules/fc.cmake b/modules/fc.cmake index c4b005f..ac6c190 100644 --- a/modules/fc.cmake +++ b/modules/fc.cmake @@ -8,6 +8,7 @@ # Variables used:: # # EXTRA_FCFLAGS +# ENABLE_FC_SUPPORT # # Variables defined:: # @@ -17,6 +18,10 @@ # # CMAKE_Fortran_FLAGS # +# Variables set:: +# +# ENABLE_FC_SUPPORT +# # Environment variables used:: # # FCFLAGS @@ -27,26 +32,32 @@ # 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: '']. +# --fc-support= Toggle Fortran language support (ON/OFF) [default: ON]. # export: 'FC=%s' % arguments['--fc'] # define: '-DEXTRA_FCFLAGS="%s"' % arguments['--extra-fc-flags'] +# '-DENABLE_FC_SUPPORT="%s"' % arguments['--fc-support'] -enable_language(Fortran) +option(ENABLE_FC_SUPPORT "Enable Fortran language support" ON) -set(CMAKE_Fortran_MODULE_DIRECTORY ${PROJECT_BINARY_DIR}/include/fortran) +if(ENABLE_FC_SUPPORT) + enable_language(Fortran) -if(NOT DEFINED CMAKE_Fortran_COMPILER_ID) - message(FATAL_ERROR "CMAKE_Fortran_COMPILER_ID variable is not defined!") -endif() - -if(NOT CMAKE_Fortran_COMPILER_WORKS) - message(FATAL_ERROR "CMAKE_Fortran_COMPILER_WORKS is false!") -endif() - -if(DEFINED EXTRA_FCFLAGS) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${EXTRA_FCFLAGS}") -endif() - -if(DEFINED ENV{FCFLAGS}) - message(STATUS "FCFLAGS is set to '$ENV{FCFLAGS}'.") - set(CMAKE_Fortran_FLAGS "$ENV{FCFLAGS}") + set(CMAKE_Fortran_MODULE_DIRECTORY ${PROJECT_BINARY_DIR}/include/fortran) + + if(NOT DEFINED CMAKE_Fortran_COMPILER_ID) + message(FATAL_ERROR "CMAKE_Fortran_COMPILER_ID variable is not defined!") + endif() + + if(NOT CMAKE_Fortran_COMPILER_WORKS) + message(FATAL_ERROR "CMAKE_Fortran_COMPILER_WORKS is false!") + endif() + + if(DEFINED EXTRA_FCFLAGS) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${EXTRA_FCFLAGS}") + endif() + + if(DEFINED ENV{FCFLAGS}) + message(STATUS "FCFLAGS is set to '$ENV{FCFLAGS}'.") + set(CMAKE_Fortran_FLAGS "$ENV{FCFLAGS}") + endif() endif()