SeisSol / easi

A library for the Easy Initialization of model parameters.
https://easyinit.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
1 stars 6 forks source link

easi does not propates yaml-cpp #48

Closed Thomas-Ulrich closed 7 months ago

Thomas-Ulrich commented 7 months ago

I'm compiling: https://github.com/SeisSol/Meshing/tree/master/evaluate_material and get:

base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material$ module load seissol/master-gcc-10.2.1-o4-elas-dunav-single-cuda-jgdi7pe 
Loading seissol/master-gcc-10.2.1-o4-elas-dunav-single-cuda-jgdi7pe
  Loading requirement: gcc-runtime/10.2.1-gcc-10.2.1-btvaq7h libiconv/1.17-gcc-10.2.1-tj3mact xz/5.4.1-gcc-10.2.1-je3g3bm zlib/1.2.13-gcc-10.2.1-hgiqbwx libxml2/2.10.3-gcc-10.2.1-cvd4pfq
    cuda/11.8.0-gcc-10.2.1-cuda-dghkzft libpciaccess/0.17-gcc-10.2.1-upquxl3 ncurses/6.4-gcc-10.2.1-jd4jdwb hwloc/2.9.1-gcc-10.2.1-cuda-6jfcsgm openssl/3.1.1-gcc-10.2.1-zfspsim
    libevent/2.1.12-gcc-10.2.1-v6gkadi numactl/2.0.14-gcc-10.2.1-2kffipu bzip2/1.0.8-gcc-10.2.1-gj7wzax pigz/2.7-gcc-10.2.1-mzracis zstd/1.5.5-gcc-10.2.1-qf4aum6 tar/1.34-gcc-10.2.1-x6zlxxi
    gettext/0.21.1-gcc-10.2.1-5lsohwi krb5/1.20.1-gcc-10.2.1-ovzxc2i libedit/3.1-20210216-gcc-10.2.1-42k6nfz libxcrypt/4.4.35-gcc-10.2.1-bnqjrgt openssh/9.3p1-gcc-10.2.1-uj6h5l7
    pmix/5.0.1-gcc-10.2.1-cuda-ibuqdvw openmpi/5.0.1-gcc-10.2.1-cuda-2pxqnq2 pkgconf/1.9.5-gcc-10.2.1-pdxbism hdf5/1.12.2-gcc-10.2.1-cuda-h743wqy netcdf-c/4.7.4-gcc-10.2.1-cuda-hy3eu3a
    asagi/1.0.1-gcc-10.2.1-cuda-qvx5cn2 impalajit/main-gcc-10.2.1-ixfpvie nghttp2/1.52.0-gcc-10.2.1-otrsjvu curl/8.1.2-gcc-10.2.1-26tnsvf readline/8.2-gcc-10.2.1-s4whhye unzip/6.0-gcc-10.2.1-tpx5wh6
    lua/5.3.2-gcc-10.2.1-kzlebei yaml-cpp/0.6.2-gcc-10.2.1-tqiwsxo easi/1.2.0-gcc-10.2.1-cuda-sqvnpcd eigen/3.4.0-gcc-10.2.1-qsnn4hu boost/1.69.0-gcc-10.2.1-5vpafqp binutils/2.40-gcc-10.2.1-djz2mwn
    libffi/3.4.4-gcc-10.2.1-jqx3e5u pcre2/10.42-gcc-10.2.1-peyxgyw swig/4.1.1-gcc-10.2.1-xpioqtx llvm/17.0.4-gcc-10.2.1-cuda-t2bofou python/3.9.2-gcc-10.2.1-eev7lqb hipsycl/develop-gcc-10.2.1-cuda-qgx3pnb
    memkind/1.13.0-gcc-10.2.1-2jchphp metis/5.1.0-gcc-10.2.1-xvvmsix parmetis/4.0.3-gcc-10.2.1-cuda-ebnighk
(base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material$ module list
Currently Loaded Modulefiles:
 1) paraview/5.11.1                        14) bzip2/1.0.8-gcc-10.2.1-gj7wzax           27) netcdf-c/4.7.4-gcc-10.2.1-cuda-hy3eu3a  40) libffi/3.4.4-gcc-10.2.1-jqx3e5u                              
 2) gcc-runtime/10.2.1-gcc-10.2.1-btvaq7h  15) pigz/2.7-gcc-10.2.1-mzracis              28) asagi/1.0.1-gcc-10.2.1-cuda-qvx5cn2     41) pcre2/10.42-gcc-10.2.1-peyxgyw                               
 3) libiconv/1.17-gcc-10.2.1-tj3mact       16) zstd/1.5.5-gcc-10.2.1-qf4aum6            29) impalajit/main-gcc-10.2.1-ixfpvie       42) swig/4.1.1-gcc-10.2.1-xpioqtx                                
 4) xz/5.4.1-gcc-10.2.1-je3g3bm            17) tar/1.34-gcc-10.2.1-x6zlxxi              30) nghttp2/1.52.0-gcc-10.2.1-otrsjvu       43) llvm/17.0.4-gcc-10.2.1-cuda-t2bofou                          
 5) zlib/1.2.13-gcc-10.2.1-hgiqbwx         18) gettext/0.21.1-gcc-10.2.1-5lsohwi        31) curl/8.1.2-gcc-10.2.1-26tnsvf           44) python/3.9.2-gcc-10.2.1-eev7lqb                              
 6) libxml2/2.10.3-gcc-10.2.1-cvd4pfq      19) krb5/1.20.1-gcc-10.2.1-ovzxc2i           32) readline/8.2-gcc-10.2.1-s4whhye         45) hipsycl/develop-gcc-10.2.1-cuda-qgx3pnb                      
 7) cuda/11.8.0-gcc-10.2.1-cuda-dghkzft    20) libedit/3.1-20210216-gcc-10.2.1-42k6nfz  33) unzip/6.0-gcc-10.2.1-tpx5wh6            46) memkind/1.13.0-gcc-10.2.1-2jchphp                            
 8) libpciaccess/0.17-gcc-10.2.1-upquxl3   21) libxcrypt/4.4.35-gcc-10.2.1-bnqjrgt      34) lua/5.3.2-gcc-10.2.1-kzlebei            47) metis/5.1.0-gcc-10.2.1-xvvmsix                               
 9) ncurses/6.4-gcc-10.2.1-jd4jdwb         22) openssh/9.3p1-gcc-10.2.1-uj6h5l7         35) yaml-cpp/0.6.2-gcc-10.2.1-tqiwsxo       48) parmetis/4.0.3-gcc-10.2.1-cuda-ebnighk                       
10) hwloc/2.9.1-gcc-10.2.1-cuda-6jfcsgm    23) pmix/5.0.1-gcc-10.2.1-cuda-ibuqdvw       36) easi/1.2.0-gcc-10.2.1-cuda-sqvnpcd      49) seissol/master-gcc-10.2.1-o4-elas-dunav-single-cuda-jgdi7pe  
11) openssl/3.1.1-gcc-10.2.1-zfspsim       24) openmpi/5.0.1-gcc-10.2.1-cuda-2pxqnq2    37) eigen/3.4.0-gcc-10.2.1-qsnn4hu          
12) libevent/2.1.12-gcc-10.2.1-v6gkadi     25) pkgconf/1.9.5-gcc-10.2.1-pdxbism         38) boost/1.69.0-gcc-10.2.1-5vpafqp         
13) numactl/2.0.14-gcc-10.2.1-2kffipu      26) hdf5/1.12.2-gcc-10.2.1-cuda-h743wqy      39) binutils/2.40-gcc-10.2.1-djz2mwn        

Key:
auto-loaded  default-version  
(base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material$ mkdir build2
(base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material$ cd build2/
(base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material/build2$ cmake ..
-- The C compiler identification is Clang 17.0.4
-- The CXX compiler identification is Clang 17.0.4
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/llvm-17.0.4-t2bofou4fjhobbqytlnm425dzrq2ketb/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/llvm-17.0.4-t2bofou4fjhobbqytlnm425dzrq2ketb/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found MPI_C: /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/openmpi-5.0.1-2pxqnq2z2z5icvsx7tx4pgo5tdfm3lcq/lib/libmpi.so (found version "3.1") 
-- Found MPI_CXX: /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/openmpi-5.0.1-2pxqnq2z2z5icvsx7tx4pgo5tdfm3lcq/lib/libmpi.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1")  
-- Found HDF5: hdf5-shared (found version "1.12.2") found components: C HL 
-- Found OpenMP_C: -fopenmp=libomp  
-- Found OpenMP_CXX: -fopenmp=libomp  
-- Found OpenMP: TRUE   
-- Found PkgConfig: /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/pkgconf-1.9.5-pdxbismnbvhvipca6e2n4jmvlikmwlkp/bin/pkg-config (found version "1.9.5") 
-- Checking for module 'asagi'
--   Found asagi, version 1.0
-- Checking for module 'netcdf'
--   Found netcdf, version 4.7.4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ulrich/SeisSol/Meshing/evaluate_material/build2
(base) ulrich@heisenbug:~/SeisSol/Meshing/evaluate_material/build2$ make 
[ 20%] Building CXX object CMakeFiles/evaluate_easi.dir/src/main.cpp.o
[ 40%] Building CXX object CMakeFiles/evaluate_easi.dir/src/mesh.cpp.o
In file included from /home/ulrich/SeisSol/Meshing/evaluate_material/src/mesh.cpp:3:
/home/ulrich/SeisSol/Meshing/evaluate_material/submodules/PUML/PUML.h:54:3: warning: explicitly defaulted default constructor is implicitly deleted [-Wdefaulted-function-deleted]
   54 |   Distributor() = default;
      |   ^
/home/ulrich/SeisSol/Meshing/evaluate_material/submodules/PUML/PUML.h:116:23: note: default constructor of 'Distributor' is implicitly deleted because field 'numEntities' of const-qualified type 'const unsigned long' would not be initialized
  116 |   const unsigned long numEntities;
      |                       ^
/home/ulrich/SeisSol/Meshing/evaluate_material/submodules/PUML/PUML.h:54:19: note: replace 'default' with 'delete'
   54 |   Distributor() = default;
      |                   ^~~~~~~
      |                   delete
1 warning generated.
[ 60%] Building CXX object CMakeFiles/evaluate_easi.dir/src/parameterDB.cpp.o
In file included from /home/ulrich/SeisSol/Meshing/evaluate_material/src/parameterDB.cpp:6:
In file included from /import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/easi-1.2.0-sqvnpcdhqpfgzjrmt6yd4juehuy6f3xh/include/easi/YAMLParser.h:4:
/import/exception-dump/ulrich/myLibs/spack-packages/linux-debian11-zen2/gcc-10.2.1/easi-1.2.0-sqvnpcdhqpfgzjrmt6yd4juehuy6f3xh/include/easi/parser/YAMLAbstractParser.h:6:10: fatal error: 'yaml-cpp/yaml.h' file not found
    6 | #include <yaml-cpp/yaml.h>
      |          ^~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/evaluate_easi.dir/build.make:104: CMakeFiles/evaluate_easi.dir/src/parameterDB.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/evaluate_easi.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

(Note that previously, there was a hardocded fix in seissol-env to add the dependencies of easi to the seissol-env module. https://github.com/SeisSol/seissol-spack-aid/blob/e83e94a95369ec4660fd1fdaf910ca56b1dfbc7b/spack/packages/seissol-env/package.py#L89 But this should not be necessary )

I would think about adding to the CMakelist.txt ;${YAML_CPP_INCLUDE_DIRS} here, what do you think?

target_include_directories(easi
    PUBLIC
        $<INSTALL_INTERFACE:include>
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include;${YAML_CPP_INCLUDE_DIRS}>
    PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/src
)
Thomas-Ulrich commented 7 months ago

or maybe target_include_directories(easi PRIVATE ${YAML_CPP_INCLUDE_DIRS}) is missing?