-
-
Notifications
You must be signed in to change notification settings - Fork 272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Develop libaec fix #5182
Develop libaec fix #5182
Conversation
release_docs/RELEASE.txt
Outdated
|
||
The CMake logic for finding the libaec compression library has been | ||
modified for a system-installed version of the library. Two options | ||
must be set, HDF5_ALLOW_EXTERNAL_SUPPORT:STRING=NO and *_USE_EXTERNAL:BOOL=OFF. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there is only one *_USE_EXTERNAL:BOOL=OFF option to set? Is it libaec_USE_EXTERNAL:BOOL=OFF, or one or more others?
release_docs/INSTALL_CMake.txt
Outdated
@@ -295,10 +295,15 @@ IV. Further considerations | |||
-DSZIP_LIBRARY:FILEPATH=some_location/lib/szlib.lib | |||
-DSZIP_INCLUDE_DIR:PATH=some_location/include | |||
-DSZIP_USE_EXTERNAL:BOOL=OFF | |||
(For libaec use -Dlibaec_* options) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe (For libaec use -Dlibaec_* in place of -DSZIP_* for these options) would be clearer, if that is the actual meaning?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is the actual meaning indeed. The original SZIP package (under that name) is not only carrying code with problematic licence, it is very old as a conception. Currently, the only reliable SZIP compressor and encoder is provided by Libaec. Maybe some sites still support SZIP, but I consider that to be driven by purely anthropological interest.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This command "cmake -C ../<hdf5_src_dir>/config/cmake/cacheinit.cmake -G "Unix Makefiles" -DHDF5_ALLOW_EXTERNAL_SUPPORT:STRING="GIT" -DHDF5_ENABLE_ROS3_VFD=ON -DHDF5_ENABLE_ZLIB_SUPPORT=ON -DHDF5_ENABLE_SZIP_SUPPORT=ON -DHDF5_ENABLE_PLUGIN_SUPPORT=ON -DCMAKE_BUILD_TYPE:STRING=Release ../<hdf5_src_dir>" now downloads and builds szip from https://github.com/MathisRosenhauer/libaec.git using the code from byrnHDF:develop-libaec-fix.
Yes that is true - however as a general rule we try not to force options upon the community. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Joe Lee finds it fails on Windows: https://hdfgroup.atlassian.net/wiki/spaces/~55705827c8ac75541347acae79813b105d2b62/blog/2024/12/20/921763895/vcpkg+libaec
The remaining problem finding system installed libaec seems to occur when 1.) the include directory (containing libaec.h and szlib.h) and the lib directory (with libaec* and libsz*) are not installed in the same location, or when the lib files don't match the pattern beginning with lib (VCPkg on windows). These installs will most likely require a SZip/libaec CMake Find module (issue #5217) as setting libaec_LIBRARY and libaec_INCLUDE_DIR don't currently work when they don't share the same root directory Otherwise, testing this PR on macOS 10.13 and 15.1, Ubuntu 24.04 and Windows 11:
|
* Use the ${LIBAEC_PACKAGE_NAME} variable instead of SZIP
This change allows pre-installed libaec to be used. It does not work for libaec installs that are not in a common root directory. Those will need further work, most likely adding a libaec/SZIP CMake Find module.
Fixes #4614