From f6684a0692dd6fdc98296e2f129d30e1082c293a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 19 May 2021 18:53:25 +0200 Subject: [PATCH] easier to read --- CMakeLists.txt | 51 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3efae3f70..6491eafb6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,12 @@ cmake_minimum_required (VERSION 3.10.0) include (FindPkgConfig REQUIRED) +set(PETSC_DIR $ENV{PETSC_DIR}) +if (PETSC_DIR STREQUAL "") + message (FATAL_ERROR "PETSc location (PETSC_DIR) is not defined") +endif () +message ("PETSC_DIR:\n${PETSC_DIR}\n") + # Dummy project to determine compiler names and version project (Prerequisites LANGUAGES) set(ENV{PKG_CONFIG_PATH} "$ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib/pkgconfig") @@ -8,32 +14,7 @@ pkg_check_modules (PETSC REQUIRED PETSc>=3.12.0 PETSc<3.16.0) pkg_get_variable (CMAKE_Fortran_COMPILER PETSc fcompiler) pkg_get_variable (CMAKE_C_COMPILER PETSc ccompiler) - -#--------------------------------------------------------------------------------------- -# Find PETSc from system environment -set(PETSC_DIR $ENV{PETSC_DIR}) -if (PETSC_DIR STREQUAL "") - message (FATAL_ERROR "PETSc location (PETSC_DIR) is not defined") -endif () - -file (STRINGS "${PETSC_DIR}/lib/petsc/conf/petscvariables" PETSC_EXTERNAL_LIB REGEX "PETSC_WITH_EXTERNAL_LIB = .*$?") -string (REGEX MATCHALL "-[lLW]([^\" ]+)" PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB}") -list (REMOVE_DUPLICATES PETSC_EXTERNAL_LIB) -string (REPLACE ";" " " PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB}") - -file (STRINGS "${PETSC_DIR}/lib/petsc/conf/petscvariables" PETSC_INCLUDES REGEX "PETSC_FC_INCLUDES = .*$?") -string (REGEX MATCHALL "-I([^\" ]+)" PETSC_INCLUDES "${PETSC_INCLUDES}") -list (REMOVE_DUPLICATES PETSC_INCLUDES) -string (REPLACE ";" " " PETSC_INCLUDES "${PETSC_INCLUDES}") - -message ("PETSC_DIR:\n${PETSC_DIR}\n") -message ("PETSC_INCLUDES:\n${PETSC_INCLUDES}\n") -message ("PETSC_EXTERNAL_LIB:\n${PETSC_EXTERNAL_LIB}\n") - -#--------------------------------------------------------------------------------------- -# Now start to care about DAMASK - -# DAMASK solver defines project to build +# Solver determines name of project string(TOLOWER "${DAMASK_SOLVER}" DAMASK_SOLVER) if (DAMASK_SOLVER STREQUAL "grid") project (damask-grid HOMEPAGE_URL https://damask.mpie.de LANGUAGES Fortran C) @@ -46,11 +27,11 @@ else () endif () file (STRINGS ${PROJECT_SOURCE_DIR}/VERSION DAMASK_VERSION) -add_definitions (-DDAMASKVERSION="${DAMASK_VERSION}") + +message ("\nBuilding ${CMAKE_PROJECT_NAME} ${DAMASK_VERSION}\n") add_definitions (-DPETSc) - -message ("\nBuilding ${CMAKE_PROJECT_NAME}\n") +add_definitions (-DDAMASKVERSION="${DAMASK_VERSION}") if (CMAKE_BUILD_TYPE STREQUAL "") set (CMAKE_BUILD_TYPE "RELEASE") @@ -98,6 +79,18 @@ else () message (FATAL_ERROR "Compiler type (CMAKE_Fortran_COMPILER_ID) not recognized") endif () +file (STRINGS "${PETSC_DIR}/lib/petsc/conf/petscvariables" PETSC_EXTERNAL_LIB REGEX "PETSC_WITH_EXTERNAL_LIB = .*$?") +string (REGEX MATCHALL "-[lLW]([^\" ]+)" PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB}") +list (REMOVE_DUPLICATES PETSC_EXTERNAL_LIB) +string (REPLACE ";" " " PETSC_EXTERNAL_LIB "${PETSC_EXTERNAL_LIB}") +message ("PETSC_EXTERNAL_LIB:\n${PETSC_EXTERNAL_LIB}\n") + +file (STRINGS "${PETSC_DIR}/lib/petsc/conf/petscvariables" PETSC_INCLUDES REGEX "PETSC_FC_INCLUDES = .*$?") +string (REGEX MATCHALL "-I([^\" ]+)" PETSC_INCLUDES "${PETSC_INCLUDES}") +list (REMOVE_DUPLICATES PETSC_INCLUDES) +string (REPLACE ";" " " PETSC_INCLUDES "${PETSC_INCLUDES}") +message ("PETSC_INCLUDES:\n${PETSC_INCLUDES}\n") + set (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${BUILDCMD_PRE} ${OPENMP_FLAGS} ${STANDARD_CHECK} ${OPTIMIZATION_FLAGS} ${COMPILE_FLAGS} ${PRECISION_FLAGS}") set (CMAKE_Fortran_LINK_EXECUTABLE "${BUILDCMD_PRE} ${CMAKE_Fortran_COMPILER} ${OPENMP_FLAGS} ${OPTIMIZATION_FLAGS} ${LINKER_FLAGS}")