Commit Graph

209 Commits

Author SHA1 Message Date
NAThompson
3a47058cba Use cache variables. 2019-08-13 17:51:56 -04:00
NAThompson
76ef9d15b2 Take advice of Robert and Kenneth on build system. 2019-08-13 17:38:22 -04:00
NAThompson
89fc012a23 Change CMakeLists.txt defaults in order to be more user-friendly. 2019-08-13 11:33:10 -04:00
Robert Maynard
ea50e82aac Move VTK-m CMake testing wrappers to the testing folder
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.
2019-07-09 13:32:23 -04:00
Robert Maynard
74d713c774 Install compilation tests are enabled when examples are disabled
Previously VTK-m only activated the install/compilation tests when
examples had been enabled. This decreased the amount of coverage
on dashboards.
2019-06-24 14:48:01 -04:00
Robert Maynard
fb6235e0e9 VTK-m and DIY now properly export MPI requirements.
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)`
2019-06-24 14:48:01 -04:00
nadavi
fbcea82e78 conslidate the license statement 2019-04-17 10:57:13 -06:00
Robert Maynard
001d1b0f47 VTK-m can now build and test against temporary installed vtkm.
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.
2019-04-03 18:08:56 -04:00
Robert Maynard
0ce7e82d43 VTK-m now enables all new CMake policies in 3.14
This means that we opt-in to policy changes introduced in 3.14
2019-03-26 11:50:06 -04:00
Robert Maynard
4b47a4d92c Remove VTKmCheckSourceInBuild 2019-02-04 12:09:35 -05:00
Robert Maynard
9580b1921e Introduces SourceInInstall which verifies that VTK-m install its headers
Fixes #342
2019-01-29 16:48:35 -05:00
Robert Maynard
f1e1a524e9 Require CMake 3.8 to build VTK-m. 2019-01-09 16:01:22 -05:00
Haocheng LIU
b5e618c980 DynamicAnalysis: Blacklist third party modules and libraries
For use with sanitizer builds.
2018-11-30 13:46:01 -05:00
Ben Boeckel
867aa9438b cmake: place VTKmTargets.cmake beside VTKmConfig.cmake 2018-11-28 17:24:25 -05:00
Allison Vacanti
bd337854ec Initial implementation of general logging.
Addresses #291.
2018-10-02 11:37:55 -04:00
Robert Maynard
41d492e84f The root CMakeLists.txt variable existence logic is all in the same spot 2018-08-21 12:01:22 -04:00
Robert Maynard
9861cdecb1 Use CMake to automatically set policies to NEW.
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.
2018-06-19 16:12:48 -04:00
luz.paz
940c891886 Misc. typos
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
2018-06-14 16:49:11 -04:00
Allison Vacanti
4e07825ad6 Hide BUILD_TESTING cmake option.
We use VTKm_ENABLE_TESTING to disable/enable tests.
2018-06-11 12:01:35 -04:00
Allison Vacanti
183bcf109a Add initial version of an OpenMP backend. 2018-05-31 16:47:48 -04:00
Robert Maynard
7e3df68fb4 State that MSVC Generators require CMake 3.11+
We require CMake 3.11 with the MSVC generator as the $<COMPILE_LANGUAGE:>
generator expression is not supported on older versions.
2018-05-18 12:50:38 -04:00
Sujin Philip
52758f7f3a Properly set up cuda architecture flags 2018-05-14 14:23:28 -04:00
Sujin Philip
d501a41576 Add VTKm_ENABLE_DEVELOPER_FLAGS cmake option
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.
2018-05-10 12:47:20 -04:00
Utkarsh Ayachit
4610e8b167 increate timeout for CopyrightStatement test. 2018-04-12 16:40:19 -04:00
Robert Maynard
5dfdc8304b Cuda will also print error/warning pragma values now.
Previously we only printed out the error numbers on MSVC.
2018-04-12 10:06:57 -04:00
Kenneth Moreland
c6dcbc1fe1 Check for git version only once
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.
2018-04-09 13:00:26 -04:00
Robert Maynard
f2f8796d1b Properly install all required cmake files needed by vtk-m 2018-04-09 11:08:58 -04:00
Robert Maynard
d205f9530e Update the documentation on when we need CMake 3.9+ 2018-02-23 15:38:44 -05:00
Robert Maynard
e630ac5aa4 Merge branch 'master' into vtk-m-cmake_refactor 2018-02-23 14:52:00 -05:00
luz.paz
80b11afa24 Misc. typos
Found via `codespell -q 3` via downstream VTK
2018-01-30 06:51:47 -05:00
Ben Boeckel
2b72110d14 cmake: support suppressing CPack usage 2018-01-18 08:40:40 -05:00
Ben Boeckel
dd1f096255 cmake: allow overriding of the build-tree CMake location 2018-01-18 08:40:40 -05:00
Ben Boeckel
74bd01b4cc cmake: install documentation to a "share" location 2018-01-18 08:40:40 -05:00
Ben Boeckel
9ce4bfe5af cmake: allow embedded vtk-m to not use cache variables
Projects might want to force these without giving users the indication
that their choices actually matter.
2018-01-17 10:23:15 -05:00
Robert Maynard
1d9a9dd1c6 Simplify VTK-m detection of the size of different types.
Most of the code was unneeded as the primitive types have a minimum required
size that we can rely on.
2018-01-17 09:57:51 -05:00
Robert Maynard
4f131d8223 Make VTK-m CMake output no extra information when configuring 2018-01-16 17:23:42 -05:00
Robert Maynard
0ea06bfdb7 Properly version dynamic libraries and build them in the correct location 2018-01-16 17:23:12 -05:00
Robert Maynard
89ce1a34a0 Respect the settings of VTKm_Vectorization when building VTK-m 2018-01-16 15:42:37 -05:00
Robert Maynard
0660c67fef Merge branch 'master' into vtk-m-cmake_refactor 2018-01-16 15:42:28 -05:00
Ben Boeckel
c5d630a77e cmake: add a vtkm_option macro
Projects might want to force these without giving users the indication
that their choices actually matter.
2018-01-16 15:21:17 -05:00
Ben Boeckel
022f12b2ec cmake: find Pyexpander quietly
It's an internal detail and if it doesn't exist, it is handled properly.
2018-01-16 15:21:17 -05:00
Robert Maynard
cb05cbc1a7 Properly find MPI and setup DIY when CMake >= 3.10 2018-01-08 14:00:58 -05:00
Robert Maynard
3f02d97ae4 Re-enable verification of generated files with pyexpander 2018-01-08 14:00:58 -05:00
Robert Maynard
5e1f7c60ad VTKm_INSTALL_ONLY_LIBRARIES allows installation of only vtk-m libs 2018-01-08 14:00:58 -05:00
Robert Maynard
d07ab6bc4a Refactor benchmarking to be outside the vtkm folder structure
The benchmarking isn't installed as part of vtk-m and therefore shouldn't
be under vtkm/
2018-01-08 14:00:57 -05:00
Robert Maynard
afc19ab0fc Setup symbol visibility controls for VTK-m 2018-01-08 14:00:57 -05:00
Robert Maynard
37a2359c70 Refactor the rendering context flags to not be a combo box.
This way in the future it is easier to make currently mutually exclusive
compile options be all enabled at the same time.
2018-01-08 14:00:57 -05:00
Utkarsh Ayachit
92cf8bf6d4 cmake: update cmake rules to use vtkm/thirdparty/diy. 2018-01-03 14:37:23 -05:00
Robert Maynard
52329ba3f6 Make sure all VTKm cmake files are prefixed with VTKm 2017-12-28 14:25:44 -05:00
Robert Maynard
24e57556e6 Merge branch 'master' into vtk-m-cmake_refactor
Includes updating to cleanup benchmark code and handle the new MPI option
2017-12-28 14:23:21 -05:00
Utkarsh Ayachit
d52b275e59 Making vtkm-cont depend on diy. 2017-12-15 15:15:23 -05:00
Utkarsh Ayachit
9dfc6f814e Add MPI as a dependency.
Adding option to enable MPI. When enabled, we do `find_package(MPI)` in
the Base component itself.
2017-12-15 10:53:30 -05:00
Matthew Letter
d7eb1d32db first pass at adding vertorization flags back into the build #5
Ported cpu vectorization flags over to new CMake file called CPUVectorization.cmake and refactored some of the logic to use an interface lib.
2017-11-16 16:50:07 -07:00
Allison Vacanti
5f1db422cd Add option to use default symbol visiblity for VTK-m libraries.
VTK doesn't hide symbols for static builds, which results in linker
errors for VTK targets that link with VTK-m. This option allows VTK-m
to match VTK's behavior.
2017-11-08 16:29:47 -05:00
Matthew Letter
0c574d7d60 Added pyexpander back into the build closes #6 2017-10-31 16:30:09 -06:00
Matthew Letter
fdfcc91fe1 Added doxyfile and vtkmBuildDocumentation.cmake closes #8
added doxyfile and vtkmBuildDocumentation.cmake back into the build process and tested that they built out the html docs.
2017-10-31 16:10:14 -06:00
Robert Maynard
ed8f4111ef Update all the code to work with CMake 3.3
Obviously this does mean that CUDA is not supported with 3.3.
2017-10-27 15:30:14 -04:00
Robert Maynard
3ded554831 Extend the CMake rewrite to include vtkm_rendering 2017-10-27 15:29:58 -04:00
Robert Maynard
56c7362258 A thought on what CMake 3.9 would mean to VTK-m. 2017-10-27 15:29:51 -04:00
Allison Vacanti
7fd7336a5d Don't version include directory under build tree.
This is causing issues when building ParaView with VTK-m and VTK
kits enabled.
2017-10-23 15:16:49 -04:00
Allison Vacanti
c0a7315906 Clean up install/VTK issues in VTKmConfig.cmake. 2017-10-03 11:28:15 -04:00
Allison Vacanti
85062a3ab3 Add version info to installed cmake config files.
Files like VTKmConfig.cmake are now under:

prefix/lib/cmake/vtkm-1.0/, rather than
prefix/lib

to allow multiple vtkm versions to share an installation prefix.
2017-10-02 12:33:30 -04:00
Allison Vacanti
75f88b4c46 Add versioning to VTKM installed include/share dirs. 2017-10-02 11:39:10 -04:00
Kenneth Moreland
c3a3184d51 Update copyright for Sandia
Sandia National Laboratories recently changed management from the
Sandia Corporation to the National Technology & Engineering Solutions
of Sandia, LLC (NTESS). The copyright statements need to be updated
accordingly.
2017-09-20 15:33:44 -06:00
Robert Maynard
5ec6d8fd13 Merge topic 'for-vtk'
2f2909f7 Add support for containing project to override default install locations
0dbf776b Use VTKm_BINARY_DIR relative path to find headers to install
a481671c Configure files to VTKm_BINARY_DIR-based paths
16720937 Avoid redefining CMake default variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !889
2017-08-31 11:52:05 -04:00
Shawn Waldon
2f2909f796 Add support for containing project to override default install locations 2017-08-28 11:38:31 -04:00
Shawn Waldon
1672093787 Avoid redefining CMake default variables
When used as a submodule, redefining LIBRARY_OUTPUT_PATH and
EXECUTABLE_OUTPUT_PATH fails since the CMake default variables from the
containing project already exist.
2017-08-28 11:38:31 -04:00
Allison Vacanti
9a341d6607 Add VTKM_NO_ASSERT option to disable VTKM_ASSERT in Debug Mode.
This was requested by ParaView for performance reasons.
2017-08-28 08:53:09 -04:00
Robert Maynard
ad3e0f320e VTK-m now provides a default and a list of types for CMAKE_BUILD_TYPE.
CMake has several default build types, but if nothing is specified when
configuring your project it defaults to an empty string and no optimization
flags are used.

It will now default to using a debug build if the source directory is a git
clone, or a release build if not. Additionally when using ccmake or cmake-gui
this will provide a nice list of possible options for CMAKE_BUILD_TYPE.
2017-08-10 10:47:14 -04:00
David C. Lonie
bd042ec567 Add CudaAllocator to encapsulate runtime managed memory logic.
Unified memory is now used when we detect that the hardware supports it.
2017-07-31 09:08:27 -04:00
Robert Maynard
6b4054c37a Consistently use VTKm_ENABLE instead of having VTKm_BUILD and VTKm_ENABLE 2017-05-24 09:26:15 -04:00
Li-Ta Lo - 194699
b470175f98 new unified memory effort with the new Thrust device 2017-03-09 14:51:45 -07:00
Robert Maynard
407f9822c2 Merge branch 'use_usage_requirements' into 'master'
Use usage requirements

See merge request !673
2017-01-27 17:36:16 -05:00
Robert Maynard
422045ca93 The vtkm target now uses usage requirements to pass along include dirs. 2017-01-27 10:03:52 -05:00
Kenneth Moreland
3ffd16a8a6 Add ability to get VTK-m version from git
In addition to keeping the version number accurate, this will help us
differentiate between-the-numbers commits.
2017-01-26 10:02:04 -07:00
Christopher Sewell
82c40a6374 First support for unified memory 2017-01-18 11:43:49 -07:00
Robert Maynard
4f43089fe3 Redesign our export headers to handle template exports. 2017-01-16 09:17:38 -05:00
Robert Maynard
ab98ae8992 Remove boost CMake logic as VTK-m doesn't require boost now. 2016-10-21 08:41:22 -04:00
Kenneth Moreland
2d7d03b1fd Merge topic 'fix-installed-files'
6c511c86 Install supporting Find*.cmake files
fffefe22 Change VTKmDetectCUDAVersion install extension

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !572
2016-10-10 11:31:38 -04:00
Kenneth Moreland
039efd6b7e Fix some issues with OpenGL configuration
Change the OpenGL configuration to require GLEW as most of the OpenGL
code actually requires GLEW (or will as soon as the VBO branch gets
merged in).

Also removed some stray find_package commands and rearranged the
configuration to use the vtkm_configure_component_* commands instead.
2016-10-03 17:34:15 -06:00
Kenneth Moreland
6c511c862c Install supporting Find*.cmake files
The vtkm/CMake directory has several Find*.cmake configuration files
that were used both by the base VTK-m configuration as well as
configuration of projects that use VTK-m. However, several of these
files (particularly the newer ones) were not installed. This change
fixes that.
2016-10-03 15:31:05 -06:00
Kenneth Moreland
fffefe22a3 Change VTKmDetectCUDAVersion install extension
The VTKmDetectCUDAVersion.cxx source file used during configuration to
detect the native version of CUDA hardware was renamed to
VTKmDetectCUDAVersion.cu. However, the old filename was still trying to
be installed, which caused the install target to fail.
2016-10-03 15:25:22 -06:00
Kenneth Moreland
13534a06b9 Drop cxx_constexpr from target compile features
It turns out, this is not supported on MSVC 2013. Presumably
cxx_auto_type is sufficient to force C++11 on all supported compilers.
2016-10-03 10:28:44 -06:00
Kenneth Moreland
9f0bd78860 Add C++11 flags to sub-projects
Recently VTK-m was changed to require C++11. The internal builds set
properties to require C++11, but these never make it to the
configuration for projects that use the VTK-m package (i.e. not declared
in VTKmConfig.cmake).

This change adds a new CMake target, vtkm, which is an interface. It
does not point to an actual library, but it allows code that links it in
to have the appropriate compile flags.
2016-09-29 14:06:07 -04:00
Robert Maynard
71b20353cd Merge topic 'require_cmake_3_3'
314d91a5 Explicitly require CMake 3.3 and a C++11 Compiler

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !544
2016-09-22 16:03:33 -04:00
Kenneth Moreland
c1de0e0746 Change VTKm_BUILD_RENDERING to VTKm_ENABLE_RENDERING
This makes the name more consistent with the names of the other VTK-m
CMake options.

Also changed the default to be ON. I do not see a big downside to
compiling the rendering library most of the time.
2016-09-21 14:38:00 -06:00
Robert Maynard
314d91a5f3 Explicitly require CMake 3.3 and a C++11 Compiler
We need to bump our minimum CMake version to get support for C++11
flags on certain compilers.
2016-09-21 16:24:54 -04:00
Kenneth Moreland
640e92c750 Add VTKm_ENABLE_OSMESA option 2016-09-09 14:50:31 -06:00
Kenneth Moreland
434f54195a Fix issue where exports failed when no libraries
Currently, the only library created is for the rendering package. If
VTKm_BUILD_RENDERING is off, then no libraries are created. If no
libraries are created, then there is nothing that declares a VTKmTargets
export. If there is nothing that creates a VTKmTargets export, the
export command fails.

Aaarg!!!! I can't even find a way to query whether an export is valid
(in the same way you can query whether a target exists). I added a
global variable that recorded whether vtkm_library added a library
(where things are added to the VTKmTargets export). The export command
is called if any libraries were created, a stub is created and installed
otherwise.
2016-09-07 16:48:15 -06:00
Kenneth Moreland
74aeeaa66b Add target exports to installed files
This makes it much easier for dependent CMake projects to find the VTK-m
libraries.
2016-09-07 16:48:13 -06:00
Kenneth Moreland
7e0ec48cab Enable building shared libraries 2016-09-07 16:48:09 -06:00
Kenneth Moreland
ea8602d882 Create configuration for rendering library
I have noticed at least on my windows machine that source code that uses
the rendering package is taking a long time to compile. The rendering
library does not rely much on templates and more on virtual methods.
Thus, it is a good candidate for moving to a library so that it need be
compiled only once.

This sets up the configure scripts to create the library. There is also
a simple port of one class to the library. More will follow.
2016-09-07 16:47:35 -06:00
Robert Maynard
1379502179 Merge topic 'vtkm_configure_component_CUDA_typo'
45f2ee19 Correct typo in error message of vtkm_configure_component_CUDA

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !533
2016-09-01 09:28:33 -04:00
Robert Maynard
45f2ee1907 Correct typo in error message of vtkm_configure_component_CUDA 2016-09-01 08:55:12 -04:00
Kenneth Moreland
e4ca73fc05 Honor CMake policy CMP0058
CMake policy CMP0058, introduced in CMake 3.3, requires that all
intermediate files created during the build process will be declared as
an output or byproduct of a target. See "cmake --help-policy CMP0058"
for details.

Per this policy, CMake was giving a warning about some files generated
during configuration (e.g. with configure_file) because they were files
in the build directory with no apparent target command. This is not an
issue since the configure will ensure that the file is always there
before the build starts. Thus, we declare that we will adhere to the new
policy to avoid the warning.
2016-08-29 13:42:55 -06:00
Dave Pugmire
6f30b786f5 Add GLFW unit test.
Simplify the test code with a class templated on mapper, canvas and view.
2016-08-24 16:22:48 -04:00
Kenneth Moreland
ab528b8ec9 Configure examples after writing VTKmConfig.cmake
The examples configuration now behave like external projects and use
find_package to configure themselves. As such that file should be built
before we try to configure the examples.
2016-08-23 16:04:58 -06:00
Kenneth Moreland
866c617cbf Fix config issues with headers and libraries
There were a couple of places where the configure scripts did not add
either includes to VTKm_INCLUDE_DIRS or libraries to VTKm_LIBRARIES.

The biggest offender was when the examples used find_package to load the
VTK-m configuration it needed. find_package cleared out the includes and
libraries, but it did not clear out the VTKm_<COMPONENT>_FOUND
variables. Normally, these variables would not be set before
find_package is called, but in this case the examples were called after
some partial configuration. I got around this issue by clearing out all
the *_FOUND variables in VTKmConfig.cmake.
2016-08-23 14:07:38 -06:00
Robert Maynard
77121d1871 Add support to VTK-m to build with C++11 2016-08-03 15:38:38 -04:00
Robert Maynard
e52f7628a7 VTKm config module now properly support the QUIET flag.
The QUIET flag will also be properly propagated to all modules
that VTKm finds.
2016-07-28 10:46:59 -04:00