STIR needs CXX, ISMRMRD needs C
https://github.com/SyneRBI/SIRF-SuperBuild/pull/973
(1 file)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
In the SIRF CMake run, I see
CMake Warning:
Ignoring extra path from command line:
"/usr/lib/x86_64-linux-gnu/libcrypto.so"
CMake Warning:
Ignoring extra path from command line:
"/usr/lib/x86_64-linux-gnu/libm.so"
This indicates that there's something wrong with how we pass HDF5_LIBRARIES. Not sure if that matters though, see below.
Then I see
HDF5: Using hdf5 compiler wrapper to determine C configuration
which probably comes from ISMRMRD (which only needs C), and a few lines further, the debug print correctly says
-- HDF5_LIBRARIES: /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libcrypto.so;/usr/lib/x86_64-linux-gnu/libcurl.so;/usr/lib/x86_64-linux-gnu/libpthread.a;/usr/lib/x86_64-linux-gnu/libsz.so;/home/runner/install/lib/libz.a;/usr/lib/x86_64-linux-gnu/libdl.a;/usr/lib/x86_64-linux-gnu/libm.so
and a few more lines further
- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found suitable version "1.74.0", minimum required is "1.74.0")
-- ITK support in STIR enabled.
-- HDF5 support in STIR enabled.
-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
and correct reporting of libhdf5_cpp.so. However, the actual SIRF linking only uses libhdf5.so with the surrounding libraries
/home/runner/install/lib/libismrmrd.so.1.13.7 /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so /usr/lib/x86_64-linux-gnu/libcrypto.so
My current diagnosis is therefore that this is a problem caused by ISMRMRD using the C component and STIR using the CXX component. CMake might be evaluating the HDF5::HDF5 target (used in STIR lib dependencies) with the one created when looking for the C version only.
STIR really should depend on the hdf5::hdf5_cpp target, but that can't be done due to a CMake bug https://gitlab.kitware.com/cmake/cmake/-/issues/27379.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
All native builds are building again!
One unrelated run-time error due to SyneRBI/SIRF#1363.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@casperdcl approved this pull request.
lgtm
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@casperdcl commented on this pull request.
In SuperBuild/External_HDF5.cmake:
> if (HDF5_ROOT)
set(HDF5_CMAKE_ARGS ${HDF5_CMAKE_ARGS} -DHDF5_ROOT:PATH=${HDF5_ROOT})
endif()
+ if (HDF5_DIR)
+ set(HDF5_CMAKE_ARGS ${HDF5_CMAKE_ARGS} -DHDF5_DIR:PATH=${HDF5_DIR})
+ endif()
unsure about the interaction betwixt *_ROOT and *_DIR but willing to try anything to slay the HDF5 beast at this point
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
@KrisThielemans commented on this pull request.
In SuperBuild/External_HDF5.cmake:
> if (HDF5_ROOT)
set(HDF5_CMAKE_ARGS ${HDF5_CMAKE_ARGS} -DHDF5_ROOT:PATH=${HDF5_ROOT})
endif()
+ if (HDF5_DIR)
+ set(HDF5_CMAKE_ARGS ${HDF5_CMAKE_ARGS} -DHDF5_DIR:PATH=${HDF5_DIR})
+ endif()
HDF5_DIR is used to find the hdf5-config,cmake. HDF5_ROOT will be used if HDF5_DIR isn't set and h5cc doesn't work, and then first used to find a config from there, and if that fails, use find_library etc (although that is more or less guaranteed to fail, as that doesn't know about dependent libraries).
easy!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
Merged #973 into master.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()