Commit Graph

114 Commits

Author SHA1 Message Date
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
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