easier to read
This commit is contained in:
parent
3cf2ea1749
commit
f6684a0692
|
@ -1,6 +1,12 @@
|
||||||
cmake_minimum_required (VERSION 3.10.0)
|
cmake_minimum_required (VERSION 3.10.0)
|
||||||
include (FindPkgConfig REQUIRED)
|
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
|
# Dummy project to determine compiler names and version
|
||||||
project (Prerequisites LANGUAGES)
|
project (Prerequisites LANGUAGES)
|
||||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/lib/pkgconfig")
|
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_Fortran_COMPILER PETSc fcompiler)
|
||||||
pkg_get_variable (CMAKE_C_COMPILER PETSc ccompiler)
|
pkg_get_variable (CMAKE_C_COMPILER PETSc ccompiler)
|
||||||
|
|
||||||
|
# Solver determines name of project
|
||||||
#---------------------------------------------------------------------------------------
|
|
||||||
# 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
|
|
||||||
string(TOLOWER "${DAMASK_SOLVER}" DAMASK_SOLVER)
|
string(TOLOWER "${DAMASK_SOLVER}" DAMASK_SOLVER)
|
||||||
if (DAMASK_SOLVER STREQUAL "grid")
|
if (DAMASK_SOLVER STREQUAL "grid")
|
||||||
project (damask-grid HOMEPAGE_URL https://damask.mpie.de LANGUAGES Fortran C)
|
project (damask-grid HOMEPAGE_URL https://damask.mpie.de LANGUAGES Fortran C)
|
||||||
|
@ -46,11 +27,11 @@ else ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
file (STRINGS ${PROJECT_SOURCE_DIR}/VERSION DAMASK_VERSION)
|
file (STRINGS ${PROJECT_SOURCE_DIR}/VERSION DAMASK_VERSION)
|
||||||
add_definitions (-DDAMASKVERSION="${DAMASK_VERSION}")
|
|
||||||
|
message ("\nBuilding ${CMAKE_PROJECT_NAME} ${DAMASK_VERSION}\n")
|
||||||
|
|
||||||
add_definitions (-DPETSc)
|
add_definitions (-DPETSc)
|
||||||
|
add_definitions (-DDAMASKVERSION="${DAMASK_VERSION}")
|
||||||
message ("\nBuilding ${CMAKE_PROJECT_NAME}\n")
|
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE STREQUAL "")
|
if (CMAKE_BUILD_TYPE STREQUAL "")
|
||||||
set (CMAKE_BUILD_TYPE "RELEASE")
|
set (CMAKE_BUILD_TYPE "RELEASE")
|
||||||
|
@ -98,6 +79,18 @@ else ()
|
||||||
message (FATAL_ERROR "Compiler type (CMAKE_Fortran_COMPILER_ID) not recognized")
|
message (FATAL_ERROR "Compiler type (CMAKE_Fortran_COMPILER_ID) not recognized")
|
||||||
endif ()
|
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_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}")
|
set (CMAKE_Fortran_LINK_EXECUTABLE "${BUILDCMD_PRE} ${CMAKE_Fortran_COMPILER} ${OPENMP_FLAGS} ${OPTIMIZATION_FLAGS} ${LINKER_FLAGS}")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue