From fe19f9f4373631d8edb9c8ead5dacf4bc1fdd77f Mon Sep 17 00:00:00 2001 From: "Michael Hirsch, Ph.D" Date: Sun, 19 Apr 2020 13:24:23 -0400 Subject: [PATCH] cmake: compiler feature checks before flags --- cmake/compilers.cmake | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/cmake/compilers.cmake b/cmake/compilers.cmake index 876b4ec..647efcd 100644 --- a/cmake/compilers.cmake +++ b/cmake/compilers.cmake @@ -1,5 +1,22 @@ set(CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo;Debug" CACHE STRING "Build type selections" FORCE) + +include(CheckCSourceCompiles) +include(CheckCSourceRuns) +include(CheckFortranSourceCompiles) + +include(${CMAKE_CURRENT_LIST_DIR}/f08block.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f08contig.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f18errorstop.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f18random.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f18assumed_rank.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f08kind.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f18prop.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f08command.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/f03ieee.cmake) + +# compiler feature checks BEFORE setting flags to avoid intermittant failures in general + if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel) if(WIN32) add_compile_options(/arch:native) @@ -29,17 +46,3 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL NAG) # https://www.nag.co.uk/nagware/np/r70_doc/manual/compiler_2_4.html#OPTIONS string(APPEND CMAKE_Fortran_FLAGS " -f2018 -C -colour -gline -nan -info -u") endif() - -include(CheckCSourceCompiles) -include(CheckCSourceRuns) -include(CheckFortranSourceCompiles) - -include(${CMAKE_CURRENT_LIST_DIR}/f08block.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f08contig.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f18errorstop.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f18random.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f18assumed_rank.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f08kind.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f18prop.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f08command.cmake) -include(${CMAKE_CURRENT_LIST_DIR}/f03ieee.cmake)