For my Linux builds I use -fvisibility=hidden -fvisibility-inlines-hidden to catch dllimport/export errors. This is stricter than MSVC. Which is why the lack of NDPLUGIN_API on class NDFileHDF5Dataset has not been fatal so far. However, I think this omission was not intentional, and adding this as a CI check should prevent repeats.
The main issue is that libADTestUtility has no API macros at all. For the time being this can be handled by only linking a static version.
Is ADTestUtility intended for external use?
If not, then eg. changing LIBRARY= to TEST_LIBRARY= will prevent it from being installed. Otherwise, it needs an *API.h and added decorations.
The last change is to omit -DH5_NO_DEPRECATED_SYMBOLS. I think this makes sense for a developer making changes to the HDF5 plugin. For others, it only complicates portability. Also, the comment in the Makefile mentions ubuntu 12.04, which is increasingly historical.
A couple of somewhat related build fixes.
For my Linux builds I use
-fvisibility=hidden -fvisibility-inlines-hidden
to catch dllimport/export errors. This is stricter than MSVC. Which is why the lack ofNDPLUGIN_API
onclass NDFileHDF5Dataset
has not been fatal so far. However, I think this omission was not intentional, and adding this as a CI check should prevent repeats.The main issue is that
libADTestUtility
has no API macros at all. For the time being this can be handled by only linking a static version.Is
ADTestUtility
intended for external use?If not, then eg. changing
LIBRARY=
toTEST_LIBRARY=
will prevent it from being installed. Otherwise, it needs an*API.h
and added decorations.The last change is to omit
-DH5_NO_DEPRECATED_SYMBOLS
. I think this makes sense for a developer making changes to the HDF5 plugin. For others, it only complicates portability. Also, the comment in the Makefile mentions ubuntu 12.04, which is increasingly historical.