@@ -17,49 +17,53 @@ pkg_get_variable(CMAKE_Fortran_COMPILER PETSc fcompiler)
1717pkg_get_variable(CMAKE_C_COMPILER PETSc ccompiler)
1818pkg_get_variable(CMAKE_CXX_COMPILER PETSc cxxcompiler)
1919
20+ # Get version
21+ file (STRINGS ${PROJECT_SOURCE_DIR} /VERSION DAMASK_VERSION_STRING)
22+ string (REPLACE "-" ";" DAMASK_VERSION_LIST "${DAMASK_VERSION_STRING} " )
23+ list (LENGTH DAMASK_VERSION_LIST CHUNKS)
24+ if (CHUNKS GREATER 2)
25+ list (GET DAMASK_VERSION_LIST 0 DAMASK_VERSION_MAIN)
26+ list (GET DAMASK_VERSION_LIST 1 DAMASK_VERSION_TWEAK)
27+ list (GET DAMASK_VERSION_LIST 2 PROJECT_VERSION_HASH)
28+ set (DAMASK_VERSION_CMAKE "${DAMASK_VERSION_MAIN} .${DAMASK_VERSION_TWEAK} " )
29+ else ()
30+ set (DAMASK_VERSION_CMAKE "${DAMASK_VERSION_STRING} " )
31+ endif ()
2032# Solver determines name of project
2133string (TOUPPER "${DAMASK_SOLVER} " DAMASK_SOLVER_UPPER)
2234string (TOLOWER "${DAMASK_SOLVER} " DAMASK_SOLVER_LOWER)
2335if ("${DAMASK_SOLVER_UPPER} " MATCHES "^(GRID|MESH|TEST)$" )
24- project ("damask-${DAMASK_SOLVER_LOWER} " HOMEPAGE_URL https://damask-multiphysics.org LANGUAGES Fortran C CXX)
36+ project ("damask-${DAMASK_SOLVER_LOWER} "
37+ DESCRIPTION "${DAMASK_SOLVER_LOWER} solver for DAMASK"
38+ HOMEPAGE_URL https://damask-multiphysics.org
39+ LANGUAGES Fortran C CXX VERSION "${DAMASK_VERSION_CMAKE} " )
2540else ()
2641 message (FATAL_ERROR "Invalid solver: DAMASK_SOLVER=${DAMASK_SOLVER} " )
2742endif ()
2843add_definitions ("-D${DAMASK_SOLVER_UPPER} " )
2944
3045set (CMAKE_Fortran_PREPROCESS "ON" )
3146
32- # EXPERIMENTAL: This might help to detect HDF5 and FFTW3 in the future if PETSc is not aware of them
47+ # EXPERIMENTAL: This might help to detect external packages in future if PETSc is not aware of them
3348set (ENV{PKG_CONFIG_PATH} "$ENV{PETSC_DIR} /$ENV{PETSC_ARCH} /externalpackages:$ENV{PKG_CONFIG_PATH} " )
3449pkg_check_modules(HDF5 hdf5)
35- pkg_check_modules(FFTW3 fftw3)
3650pkg_check_modules(fYAML libfyaml)
51+ pkg_check_modules(LAPACK lapack)
3752find_package (Boost)
3853if (DAMASK_SOLVER_UPPER STREQUAL "GRID" )
3954 pkg_check_modules(zlib zlib)
55+ pkg_check_modules(FFTW3 fftw3)
4056endif ()
4157
42- file (STRINGS ${PROJECT_SOURCE_DIR} /VERSION DAMASK_VERSION)
43- string (REPLACE "." ";" DAMASK_VERSION_LIST "${DAMASK_VERSION} " )
44- list (GET DAMASK_VERSION_LIST 0 DAMASK_VERSION_MAJOR)
45- list (GET DAMASK_VERSION_LIST 1 DAMASK_VERSION_MINOR)
46- list (GET DAMASK_VERSION_LIST 2 DAMASK_VERSION_PATCH)
47- string (REPLACE "-" ";" DAMASK_VERSION_PATCH_LIST "${DAMASK_VERSION_PATCH} " )
48- list (LENGTH DAMASK_VERSION_PATCH_LIST PATCH_CHUNKS)
49- if (PATCH_CHUNKS GREATER 1)
50- list (GET DAMASK_VERSION_PATCH_LIST 0 DAMASK_VERSION_PATCH)
51- list (GET DAMASK_VERSION_PATCH_LIST 2 DAMASK_VERSION_HASH)
52- endif ()
53-
54- message ("\n Building ${CMAKE_PROJECT_NAME} ${DAMASK_VERSION} \n " )
58+ message ("\n Building ${CMAKE_PROJECT_NAME} ${DAMASK_VERSION_STRING} \n " )
5559
5660add_definitions (-DPETSC)
57- add_definitions (-DDAMASK_VERSION="${DAMASK_VERSION } " )
58- add_definitions (-DDAMASK_VERSION_MAJOR="${DAMASK_VERSION_MAJOR } " )
59- add_definitions (-DDAMASK_VERSION_MINOR="${DAMASK_VERSION_MINOR } " )
60- add_definitions (-DDAMASK_VERSION_PATCH="${DAMASK_VERSION_PATCH } " )
61- if (DEFINED DAMASK_VERSION_HASH )
62- add_definitions (-DDAMASK_VERSION_HASH="${DAMASK_VERSION_HASH } " )
61+ add_definitions (-DDAMASK_VERSION="${DAMASK_VERSION_STRING } " )
62+ add_definitions (-DDAMASK_VERSION_MAJOR="${PROJECT_VERSION_MAJOR } " )
63+ add_definitions (-DDAMASK_VERSION_MINOR="${PROJECT_VERSION_MINOR } " )
64+ add_definitions (-DDAMASK_VERSION_PATCH="${PROJECT_VERSION_PATCH } " )
65+ if (DEFINED PROJECT_VERSION_HASH )
66+ add_definitions (-DDAMASK_VERSION_HASH="${PROJECT_VERSION_HASH } " )
6367endif ()
6468
6569add_definitions (-DCMAKE_SYSTEM_NAME="${CMAKE_SYSTEM_NAME} " )
@@ -169,7 +173,8 @@ endif()
169173
170174set (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} } ${PETSC_INCLUDES} ${BUILDCMD_POST} " )
171175
172- set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${PETSC_LIBRARY_DIRS} -lpetsc ${PETSC_EXTERNAL_LIB} " )
176+ set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} <LINK_FLAGS> <FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES> -L${PETSC_LIBRARY_DIRS} -lpetsc ${PETSC_EXTERNAL_LIB} " )
177+
173178if (DAMASK_SOLVER_UPPER STREQUAL "GRID" )
174179 set (CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -lz" )
175180endif ()
0 commit comments