From c806885cb5309f90a85d184bd7f27ceb8c2b0087 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Wed, 13 Apr 2022 05:55:34 +0200 Subject: [PATCH] include libfyaml headers from non-standard locations the CMake manual promises more than it holds. Also adding some diagnostics+fixes for zlib, we still assume that it exists (true on most systems, HDF5 also requires it normally) see also https://stackoverflow.com/questions/21593 --- CMakeLists.txt | 5 +++++ src/C_routines.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6994afc77..6b341dbbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,6 +32,7 @@ set(ENV{PKG_CONFIG_PATH} "$ENV{PETSC_DIR}/$ENV{PETSC_ARCH}/externalpackages:$ENV pkg_check_modules(HDF5 hdf5) pkg_check_modules(FFTW3 fftw3) pkg_check_modules(fYAML libfyaml) +pkg_check_modules(zlib zlib) file(STRINGS ${PROJECT_SOURCE_DIR}/VERSION DAMASK_VERSION) @@ -118,10 +119,14 @@ endif() set(CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE}} ${PETSC_INCLUDES} ${BUILDCMD_POST}") set(CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -o -L${PETSC_LIBRARY_DIRS} -lpetsc ${PETSC_EXTERNAL_LIB} -lz") + if(fYAML_FOUND STREQUAL "1") set(CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} -L${fYAML_LIBRARY_DIRS} -l${fYAML_LIBRARIES}") add_definitions(-DFYAML) + pkg_get_variable(fYAML_INCLUDE_DIR libfyaml includedir) # fYAML_INCLUDE_DIRS and fYAML_CFLAGS are not working + set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE} "${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE}} -I${fYAML_INCLUDE_DIR}") endif() + set(CMAKE_Fortran_LINK_EXECUTABLE "${CMAKE_Fortran_LINK_EXECUTABLE} ${BUILDCMD_POST}") message("Fortran Compiler Flags:\n${CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE}}\n") diff --git a/src/C_routines.c b/src/C_routines.c index c4ebb4d6b..3a1db91a0 100644 --- a/src/C_routines.c +++ b/src/C_routines.c @@ -7,7 +7,7 @@ #include #include #include -#include "zlib.h" +#include #ifdef FYAML #include