`assert` is supported on recent CUDA cards, but compiling it appears to be
very slow. By default, the `VTKM_ASSERT` macro has been disabled whenever
compiling for a CUDA device (i.e. when `__CUDA_ARCH__` is defined).
Asserts for CUDA devices can be turned back on by turning the
`VTKm_NO_ASSERT_CUDA` CMake variable off. Turning this CMake variable off
will enable assertions in CUDA kernels unless there is another reason
turning off all asserts (such as a release build).
It makes me irrationally nervous to check an empty file as the sentinel
data. Instead, add some text that can be compared agains. Also add some
explenation to the file to prevent naive developers from messing with
the file.
Currently, VTK-m is using C++11. However, it is often useful to use
features in the `std` namespace that are defined for C++14 or later. We
can provide our own versions (sometimes), but it is preferable to use
the version provided by the compiler if available.
There were already some examples of defining portable versions of C++14
and C++17 classes in a `vtkmstd` namespace, but these were sprinkled
around the source code.
There is now a top level `vtkmstd` directory and in it are header files
that provide portable versions of these future C++ classes. In each
case, preprocessor macros are used to select which version of the class
to use.
3a47058cb Use cache variables.
76ef9d15b Take advice of Robert and Kenneth on build system.
89fc012a2 Change CMakeLists.txt defaults in order to be more user-friendly.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !1771
The VTK-m testing infrastructure isn't public facing so it doesn't
need to be installed or clutter the main VTKmWrappers file.
At the same time I have refactored the code to make it clearer
to understand, and remove unused options.
Previously an installed version of VTK-m wasn't relocatable as
it had system MPI paths. Additionally the installed vtkm_diy target
would depend on MPI but not `find_package(MPI)`
We now have a couple of the examples also being built against
the installed version of VTK-m as a test. This allow us to verify
that VTK-m installs and can be found properly.
CMake 3.12 introduces a ...<max> syntax in the version given to
cmake_minimum_required to automatically set policies to NEW up
to that version. Use it to avoid listing policies explicitly.
Found via `codespell` and `grep`
more typos
includes source typo change and a typo that needs further review
follow-up typos
Follow-up typos
Revert a commit
The goal is to provide a way to disable VTK-m warning flags when used as a
thirdparty library.
VTK-m's stricter warning flags were cauing several new warnings in VTK.
The check to determine the version of VTK-m from git was duplicated in
CMakeLists.txt. Although pointless, it generally was not a big deal
(only an extra check when running CMake). Except for some reason with
the latest changes to the CMake build the second time find_package(Git)
was called on my system the GIT_EXECUTABLE variable got cleared out and
that caused the configure to fail. I have no idea why this happens (and
running CMake again seems to fix the problem), but simply removing the
extraneous find seems fix the problem.