From af7f73f3796356b987b41f14a2fed426913bbd4b Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 27 Dec 2023 15:07:04 +0100 Subject: [PATCH 1/2] CMake knows compiler flags --- CMakeLists.txt | 2 ++ cmake/Compiler-GNU.cmake | 3 --- cmake/Compiler-Intel.cmake | 3 --- cmake/Compiler-IntelLLVM.cmake | 3 --- cmake/Compiler-LLVMFlang.cmake | 2 -- 5 files changed, 2 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b630f7e46..d0f50affb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,8 @@ else() endif() add_definitions("-D${DAMASK_SOLVER}") +set(CMAKE_Fortran_PREPROCESS "ON") + # EXPERIMENTAL: This might help to detect HDF5 and FFTW3 in the future if PETSc is not aware of them set(ENV{PKG_CONFIG_PATH} "$ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/externalpackages:$ENV{PKG_CONFIG_PATH}") pkg_check_modules(HDF5 hdf5) diff --git a/cmake/Compiler-GNU.cmake b/cmake/Compiler-GNU.cmake index ee58f8cc7..61ec2143b 100644 --- a/cmake/Compiler-GNU.cmake +++ b/cmake/Compiler-GNU.cmake @@ -19,9 +19,6 @@ set (STANDARD_CHECK "-std=f2018 -pedantic-errors" ) #------------------------------------------------------------------------------------------------ # Fine tuning compilation options -set (COMPILE_FLAGS "${COMPILE_FLAGS} -cpp") -# preprocessor - set (COMPILE_FLAGS "${COMPILE_FLAGS} -fPIE") # position independent code diff --git a/cmake/Compiler-Intel.cmake b/cmake/Compiler-Intel.cmake index 2182459ed..59ba6d74d 100644 --- a/cmake/Compiler-Intel.cmake +++ b/cmake/Compiler-Intel.cmake @@ -22,9 +22,6 @@ set (LINKER_FLAGS "${LINKER_FLAGS} -shared-intel") #------------------------------------------------------------------------------------------------ # Fine tuning compilation options -set (COMPILE_FLAGS "${COMPILE_FLAGS} -fpp") -# preprocessor - set (COMPILE_FLAGS "${COMPILE_FLAGS} -no-ftz") # disable flush underflow to zero, will be set if -O[1,2,3] diff --git a/cmake/Compiler-IntelLLVM.cmake b/cmake/Compiler-IntelLLVM.cmake index 4cdd2588d..3749b925f 100644 --- a/cmake/Compiler-IntelLLVM.cmake +++ b/cmake/Compiler-IntelLLVM.cmake @@ -24,9 +24,6 @@ set (LINKER_FLAGS "${LINKER_FLAGS} -shared-intel -fc=ifx") #------------------------------------------------------------------------------------------------ # Fine tuning compilation options -set (COMPILE_FLAGS "${COMPILE_FLAGS} -fpp") -# preprocessor - set (COMPILE_FLAGS "${COMPILE_FLAGS} -no-ftz") # disable flush underflow to zero, will be set if -O[1,2,3] diff --git a/cmake/Compiler-LLVMFlang.cmake b/cmake/Compiler-LLVMFlang.cmake index c6b0405bc..ff0bdf6e8 100644 --- a/cmake/Compiler-LLVMFlang.cmake +++ b/cmake/Compiler-LLVMFlang.cmake @@ -7,6 +7,4 @@ endif () #------------------------------------------------------------------------------------------------ # Fine tuning compilation options -set (COMPILE_FLAGS "${COMPILE_FLAGS} -cpp") -# preprocessor From e4e0840479a7d31c47a09c6d01e04405c65ccbef Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 27 Dec 2023 16:09:40 +0100 Subject: [PATCH 2/2] simplified --- CMakeLists.txt | 9 +++------ cmake/Compiler-LLVMFlang.cmake | 2 ++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d0f50affb..a8e551373 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,27 +93,24 @@ if(CMAKE_BUILD_TYPE STREQUAL "SYNTAXONLY") endif() -list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") - include(Compiler-GNU) set(Fortran_COMPILER_VERSION_MIN 9.1) elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "Intel") - include(Compiler-Intel) set(Fortran_COMPILER_VERSION_MIN 19) elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "IntelLLVM") - include(Compiler-IntelLLVM) set(Fortran_COMPILER_VERSION_MIN 19) elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang") - include(Compiler-LLVMFlang) set(Fortran_COMPILER_VERSION_MIN 19) else() message(FATAL_ERROR "Compiler '${CMAKE_Fortran_COMPILER_ID}' not supported") endif() - if(CMAKE_Fortran_COMPILER_VERSION VERSION_LESS Fortran_COMPILER_VERSION_MIN) message(FATAL_ERROR "Version '${CMAKE_Fortran_COMPILER_VERSION}' of '${CMAKE_Fortran_COMPILER_ID}' is not supported") endif() +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +include("Compiler-${CMAKE_Fortran_COMPILER_ID}") + file(STRINGS "$ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib/petsc/conf/petscvariables" PETSC_EXTERNAL_LIB REGEX "PETSC_EXTERNAL_LIB_BASIC = .*$?") string(REPLACE "PETSC_EXTERNAL_LIB_BASIC = " "" PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB}") message("PETSC_EXTERNAL_LIB:\n${PETSC_EXTERNAL_LIB}\n") diff --git a/cmake/Compiler-LLVMFlang.cmake b/cmake/Compiler-LLVMFlang.cmake index ff0bdf6e8..b28df7027 100644 --- a/cmake/Compiler-LLVMFlang.cmake +++ b/cmake/Compiler-LLVMFlang.cmake @@ -5,6 +5,8 @@ if (OPENMP) set (OPENMP_FLAGS "-fopenmp") endif () +set (STANDARD_CHECK "-std=f2018 -pedantic" ) + #------------------------------------------------------------------------------------------------ # Fine tuning compilation options