The option USE_EIGEN is generally the opposite of USE_CUDA. This PR removes the option USE_EIGEN and uses USE_CUDA in place where USE_EIGEN was used. This helps avoid the ambiguous cases where either both or none of the two was active.
A Windows shared library build requires the special cmake flag CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS to be defined. However this was previously left to the user. This PR makes the flag the default for shared library builds on Windows. There should be no downside to making this the default.
The CPU build adds the compiler option -march=native. This is helpful for very optimized compiler code. However it makes binaries less portable. Therefore this PR changes the behavior that -march=native will only be set if the user did not already specify another -march=xxx option. This allows users to externally override the -march setting. There should be no downside to users that do not override -march.
This PR adds three different build improvements:
USE_EIGEN
is generally the opposite ofUSE_CUDA
. This PR removes the optionUSE_EIGEN
and usesUSE_CUDA
in place whereUSE_EIGEN
was used. This helps avoid the ambiguous cases where either both or none of the two was active.CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
to be defined. However this was previously left to the user. This PR makes the flag the default for shared library builds on Windows. There should be no downside to making this the default.-march=native
. This is helpful for very optimized compiler code. However it makes binaries less portable. Therefore this PR changes the behavior that-march=native
will only be set if the user did not already specify another-march=xxx
option. This allows users to externally override the-march
setting. There should be no downside to users that do not override-march
.