@@ -2,9 +2,9 @@ cmake_minimum_required(VERSION 3.18.0)
22include (FindPkgConfig REQUIRED)
33
44if (DEFINED ENV{PETSC_DIR})
5- message ("PETSC_DIR:\n $ENV{PETSC_DIR} \n " )
5+ message ("PETSC_DIR:\n $ENV{PETSC_DIR} \n " )
66else ()
7- message (FATAL_ERROR "PETSc location (PETSC_DIR) is not defined" )
7+ message (FATAL_ERROR "PETSc location (PETSC_DIR) is not defined" )
88endif ()
99
1010# Dummy project to determine compiler names and version
@@ -20,9 +20,9 @@ pkg_get_variable(CMAKE_C_COMPILER PETSc ccompiler)
2020string (TOUPPER "${DAMASK_SOLVER} " DAMASK_SOLVER_UPPER)
2121string (TOLOWER "${DAMASK_SOLVER} " DAMASK_SOLVER_LOWER)
2222if ("${DAMASK_SOLVER_UPPER} " MATCHES "^(GRID|MESH|TEST)$" )
23- project ("damask-${DAMASK_SOLVER_LOWER} " HOMEPAGE_URL https://damask-multiphysics.org LANGUAGES Fortran C)
23+ project ("damask-${DAMASK_SOLVER_LOWER} " HOMEPAGE_URL https://damask-multiphysics.org LANGUAGES Fortran C)
2424else ()
25- message (FATAL_ERROR "Invalid solver: DAMASK_SOLVER=${DAMASK_SOLVER} " )
25+ message (FATAL_ERROR "Invalid solver: DAMASK_SOLVER=${DAMASK_SOLVER} " )
2626endif ()
2727add_definitions ("-D${DAMASK_SOLVER_UPPER} " )
2828
@@ -34,7 +34,7 @@ pkg_check_modules(HDF5 hdf5)
3434pkg_check_modules(FFTW3 fftw3)
3535pkg_check_modules(fYAML libfyaml)
3636if (DAMASK_SOLVER_UPPER STREQUAL "GRID" )
37- pkg_check_modules(zlib zlib)
37+ pkg_check_modules(zlib zlib)
3838endif ()
3939
4040file (STRINGS ${PROJECT_SOURCE_DIR} /VERSION DAMASK_VERSION)
@@ -57,71 +57,71 @@ add_definitions(-DDAMASK_VERSION_MAJOR="${DAMASK_VERSION_MAJOR}")
5757add_definitions (-DDAMASK_VERSION_MINOR="${DAMASK_VERSION_MINOR} " )
5858add_definitions (-DDAMASK_VERSION_PATCH="${DAMASK_VERSION_PATCH} " )
5959if (DEFINED DAMASK_VERSION_HASH)
60- add_definitions (-DDAMASK_VERSION_HASH="${DAMASK_VERSION_HASH} " )
60+ add_definitions (-DDAMASK_VERSION_HASH="${DAMASK_VERSION_HASH} " )
6161endif ()
6262
6363add_definitions (-DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME} " )
6464add_definitions (-DCMAKE_SYSTEM_PROCESSOR="${CMAKE_SYSTEM_PROCESSOR} " )
6565
6666if (PETSC_VERSION VERSION_EQUAL 3.17.0)
67- add_definitions ("-DCHKERRQ=PetscCall" )
67+ add_definitions ("-DCHKERRQ=PetscCall" )
6868endif ()
6969
7070if (CMAKE_BUILD_TYPE STREQUAL "" )
71- set (CMAKE_BUILD_TYPE "RELEASE" )
71+ set (CMAKE_BUILD_TYPE "RELEASE" )
7272endif ()
7373string (TOUPPER "${CMAKE_BUILD_TYPE} " CMAKE_BUILD_TYPE )
7474
7575# Predefined sets for OPTIMIZATION/OPENMP based on BUILD_TYPE
7676if (CMAKE_BUILD_TYPE STREQUAL "DEBUG" OR CMAKE_BUILD_TYPE STREQUAL "SYNTAXONLY" )
77- set (DEBUG_FLAGS "${DEBUG_FLAGS} -DDEBUG" )
78- set (PARALLEL "OFF" )
79- set (OPTI "DEBUG" )
77+ set (DEBUG_FLAGS "${DEBUG_FLAGS} -DDEBUG" )
78+ set (PARALLEL "OFF" )
79+ set (OPTI "DEBUG" )
8080elseif (CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
81- set (PARALLEL "ON" )
82- set (OPTI "DEFENSIVE" )
81+ set (PARALLEL "ON" )
82+ set (OPTI "DEFENSIVE" )
8383elseif (CMAKE_BUILD_TYPE STREQUAL "DEBUGRELEASE" )
84- set (DEBUG_FLAGS "${DEBUG_FLAGS} -DDEBUG" )
85- set (PARALLEL "ON" )
86- set (OPTI "DEFENSIVE" )
84+ set (DEBUG_FLAGS "${DEBUG_FLAGS} -DDEBUG" )
85+ set (PARALLEL "ON" )
86+ set (OPTI "DEFENSIVE" )
8787elseif (CMAKE_BUILD_TYPE STREQUAL "PERFORMANCE" )
88- set (PARALLEL "ON" )
89- set (OPTI "AGGRESSIVE" )
88+ set (PARALLEL "ON" )
89+ set (OPTI "AGGRESSIVE" )
9090else ()
91- message (FATAL_ERROR "Invalid build type: CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} " )
91+ message (FATAL_ERROR "Invalid build type: CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} " )
9292endif ()
9393
9494# $OPTIMIZATION takes precedence over $BUILD_TYPE defaults
9595if (OPTIMIZATION STREQUAL "" OR NOT DEFINED OPTIMIZATION)
96- set (OPTIMIZATION "${OPTI} " )
96+ set (OPTIMIZATION "${OPTI} " )
9797else ()
98- set (OPTIMIZATION "${OPTIMIZATION} " )
98+ set (OPTIMIZATION "${OPTIMIZATION} " )
9999endif ()
100100
101101# $OPENMP takes precedence over $BUILD_TYPE defaults
102102if (OPENMP STREQUAL "" OR NOT DEFINED OPENMP)
103- set (OPENMP "${PARALLEL} " )
103+ set (OPENMP "${PARALLEL} " )
104104else ()
105- set (OPENMP "${OPENMP} " )
105+ set (OPENMP "${OPENMP} " )
106106endif ()
107107
108108# syntax check only(mainly for pre-receive hook)
109109if (CMAKE_BUILD_TYPE STREQUAL "SYNTAXONLY" )
110- set (BUILDCMD_POST "${BUILDCMD_POST} -fsyntax-only" )
110+ set (BUILDCMD_POST "${BUILDCMD_POST} -fsyntax-only" )
111111endif ()
112112
113113
114114if (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" )
115- set (Fortran_COMPILER_VERSION_MIN 11.1)
115+ set (Fortran_COMPILER_VERSION_MIN 11.1)
116116elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "IntelLLVM" )
117- set (Fortran_COMPILER_VERSION_MIN 19)
117+ set (Fortran_COMPILER_VERSION_MIN 19)
118118elseif (CMAKE_Fortran_COMPILER_ID STREQUAL "LLVMFlang" )
119- set (Fortran_COMPILER_VERSION_MIN 20)
119+ set (Fortran_COMPILER_VERSION_MIN 20)
120120else ()
121- message (FATAL_ERROR "Compiler '${CMAKE_Fortran_COMPILER_ID} ' not supported" )
121+ message (FATAL_ERROR "Compiler '${CMAKE_Fortran_COMPILER_ID} ' not supported" )
122122endif ()
123123if (CMAKE_Fortran_COMPILER_VERSION VERSION_LESS Fortran_COMPILER_VERSION_MIN)
124- message (FATAL_ERROR "Version '${CMAKE_Fortran_COMPILER_VERSION} ' of '${CMAKE_Fortran_COMPILER_ID} ' is not supported" )
124+ message (FATAL_ERROR "Version '${CMAKE_Fortran_COMPILER_VERSION} ' of '${CMAKE_Fortran_COMPILER_ID} ' is not supported" )
125125endif ()
126126
127127list (APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR} /cmake)
@@ -141,25 +141,25 @@ set(CMAKE_Fortran_LINK_EXECUTABLE "${BUILDCMD_PRE} ${CMAKE_Fortran_COM
141141set (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} } ${PETSC_INCLUDES} " ) # zlib installed via PETSc
142142
143143if (CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
144- set (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} } ${DEBUG_FLAGS} " )
145- set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} ${DEBUG_FLAGS} " )
144+ set (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} } ${DEBUG_FLAGS} " )
145+ set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} ${DEBUG_FLAGS} " )
146146endif ()
147147
148148set (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} } ${PETSC_INCLUDES} ${BUILDCMD_POST} " )
149149
150150set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${PETSC_LIBRARY_DIRS} -lpetsc ${PETSC_EXTERNAL_LIB} " )
151151if (DAMASK_SOLVER_UPPER STREQUAL "GRID" )
152- set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -lz" )
152+ set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -lz" )
153153endif ()
154154
155155if (fYAML_FOUND STREQUAL "1" )
156- set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -L${fYAML_LIBRARY_DIRS} " )
157- foreach (fYAML_LIBRARY ${fYAML_LIBRARIES} )
158- set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -L${fYAML_LIBRARY_DIRS} -l${fYAML_LIBRARY} " )
159- endforeach ()
160- add_definitions (-DFYAML)
161- pkg_get_variable(fYAML_INCLUDE_DIR libfyaml includedir) # fYAML_INCLUDE_DIRS and fYAML_CFLAGS are not working
162- set (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} } -I${fYAML_INCLUDE_DIR} " )
156+ set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -L${fYAML_LIBRARY_DIRS} " )
157+ foreach (fYAML_LIBRARY ${fYAML_LIBRARIES} )
158+ set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -L${fYAML_LIBRARY_DIRS} -l${fYAML_LIBRARY} " )
159+ endforeach ()
160+ add_definitions (-DFYAML)
161+ pkg_get_variable(fYAML_INCLUDE_DIR libfyaml includedir) # fYAML_INCLUDE_DIRS and fYAML_CFLAGS are not working
162+ set (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} } -I${fYAML_INCLUDE_DIR} " )
163163endif ()
164164
165165set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} ${BUILDCMD_POST} " )
0 commit comments