Closed martinzak-zaber closed 2 months ago
Thanks, @martinzak-zaber!
I added the new ZML as 3rdpartypublic/Zaber/zaber-motion-3.4.4
, keeping the previous zaber-motion
(3.4.3). (We do this so that the 3rdpartypublic revision doesn't have to be in exact lock step with this repo.)
I pushed a commit to your branch (this PR) that updates the build files accordingly.
Regarding C++17 (for future reference), we have a precedent on Windows (PyDevice) that currently builds with C++17. On Linux (Automake), I think the following (in Zaber/Makefile.am
) should work and suppress the warnings about the dynamic exception specifications (but did you find otherwise?).
AM_CXXFLAGS = $(MMDEVAPI_CXXFLAGS) $(ZML_CPPFLAGS) -std=c++17 -Wno-dynamic-exception-spec
@marktsuchida We have been able to build on Windows as well. On Linux we got hard error that dynamic exceptions are not supported in c++17 along with "-Wno-dynamic-exception-spec" being an unknown option. Maybe we had a wrong GCC version but I could not find any documentation on "no-dynamic-exception-spec" anyway so I gave up.
@martinzak-zaber You're right, sorry about that. I must have misremembered the situation back when I tried that flag; it turns out that only Clang has -W[no-]dynamic-exception-spec
.
-std=c++17
in AM_CXXFLAGS
next time you update.@martinzak-zaber You're right, sorry about that. I must have misremembered the situation back when I tried that flag; it turns out that only Clang has
-W[no-]dynamic-exception-spec
.489 should fix this so that you just need
-std=c++17
inAM_CXXFLAGS
next time you update.
Much appreciated. Thank you!
@martinzak-zaber This code currently does not build on LInux. Shall I just completely disable the Zaber build on Linux (which would be a shame)? We do not have the 3.4.4 motion library linux .so files in our 3rdparty repo. I can not check the .tar.gz you posted earlier since it disappeared.
Let me know how to proceed. For the time being, I will disable the Zaber build on linux (as it does not work, and blocks the build of everything else).
@nicost The Zaber headers are in 3rdpartypublic and the configure.ac should disable the device adapter when they are not present (and the correct version). If this is not the case, can you create a new issue with details? I'll look into a fix.
We are adding autofocus support for our Nucleus™️ microscope.
There are also a few general improvements:
override
to all the API methodsWe are also updating to a newer version of our library - 3.4.4. Can we please have SVN updated with our binaries? Please note that the tag.gz contains soft-links. Archive: https://drive.google.com/file/d/1IisP6pyjYEEDqVsKLyruIEPc5TLhDuW7/view?usp=sharing
Note: We have tried upgrading our module to C++17 but could not get it working without removing dynamic exceptions from some of the base classes.
Thank you. Please let us know if you have any concerns or questions.