External regression tests failing due to missing header files

Hi all,

I am trying to use OpenMC with DAGMC. I have mostly installed it correctly I think. After cloning the OpenMC and DAGMC repositories, creating a conda environment with dependencies (including moab, as I was unable to get DAGMC working when installing moab from source), I used this script to install them.

One of the DAGMC tests, dagmc/external is aborting due to not being able to find DagMC.hpp:

/home/yardasol/mambaforge/envs/openmc-dagmc-env/lib/python3.11/shutil.py:720: FileNotFoundError
---------------------------------------------------------------------------------------------- Captured stdout setup ----------------------------------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yardasol/projects/openmc/tests/regression_tests/dagmc/external/build
[ 50%] Building CXX object CMakeFiles/main.dir/main.cpp.o
---------------------------------------------------------------------------------------------- Captured stderr setup ----------------------------------------------------------------------------------------------
CMake Warning at CMakeLists.txt:4 (add_executable):
  Cannot generate a safe runtime search path for target main because files in
  some directories may conflict with libraries in implicit directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-env/lib
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-env/lib
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.


In file included from /home/yardasol/projects/openmc/tests/regression_tests/dagmc/external/main.cpp:3:
/home/yardasol/projects/openmc/app/include/openmc/dagmc.h:24:10: fatal error: DagMC.hpp: No such file or directory
   24 | #include "DagMC.hpp"
      |          ^~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/main.dir/build.make:76: CMakeFiles/main.dir/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/main.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

The other external_moab test is aborting in a similar way.

This is strange because all the other DAGMC tests are passing. I did notice when running CMake, that I got the following warnings:

CMake Warning at CMakeLists.txt:447 (add_library):
  Cannot generate a safe runtime search path for target libopenmc because
  files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.


CMake Warning at CMakeLists.txt:552 (add_executable):
  Cannot generate a safe runtime search path for target openmc because files
  in some directories may conflict with libraries in implicit directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.


CMake Warning at tests/cpp_unit_tests/CMakeLists.txt:9 (add_executable):
  Cannot generate a safe runtime search path for target test_distribution
  because files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.


CMake Warning at tests/cpp_unit_tests/CMakeLists.txt:9 (add_executable):
  Cannot generate a safe runtime search path for target test_file_utils
  because files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.


CMake Warning at tests/cpp_unit_tests/CMakeLists.txt:9 (add_executable):
  Cannot generate a safe runtime search path for target test_tally because
  files in some directories may conflict with libraries in implicit
  directories:

    runtime library [libpng16.so.16] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib
    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
      /home/yardasol/mambaforge/envs/openmc-dagmc-env/lib

  Some of these libraries may not be found correctly.

but I do not think these are related (a point of note, these warning are occurring because the program could not find the PNG library when trying to run these tests, which is why it is installed from apt in the install script.)

@pshriwise any idea what could be going on? My guess is some kind of configuration or path error, but I’m not sure where to look.

OS: Ubuntu 22.02 LTS

Thanks for posting, I wonder if this question might be worth raising on the DAGMC discussion forum where it might get the attention of more DAGMC experts.

@oyardas2 Tests like that one that rely on running cmake to build against the OpenMC shared library may only work if you have installed (i.e., make install) the library. You may also need to set the OpenMC_ROOT environment variable to get it to find your OpenMC installation.