Commit Graph

188 Commits

Author SHA1 Message Date
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
Robert Maynard
037ebc4a9a Install the VTKmConfig.cmake file. 2016-07-25 10:31:08 -04:00
Kenneth Moreland
f90b42ac84 Add status messages when using find_package(VTKm)
When finding the VTKm package, it is important to load components that
support the devices you want to use. However, there is no indication of
what does and does not get loaded. In some circumstances, it simply says
that VTKm_FOUND is not true but not why. Add some status messages of
whether each component gets loaded or not.
2016-06-30 15:25:26 -06:00
Kenneth Moreland
d10f40dbaa Add extra documentation to VTKmConfig.cmake
Add a note about the VTKm_COMPILE_OPTIONS. Also make an easy to read
list of available components.
2016-06-29 13:19:42 -06:00
Kenneth Moreland
404a007eec Fix typo that was causing a CMake warning
There was missing whitespace when setting a variable.
2016-06-27 08:30:03 -06:00
Kenneth Moreland
ca0bafa479 Fix issue with native CUDA hardware detection
To detect what CUDA hardware is native, a simple CUDA program is
compiled. However, CMake was not necessarily pointing to the correct
source file, so the compile was failing.

This change makes sure that VTKm_CMAKE_MODULE_PATH is properly set and
uses that variable to find the source file.
2016-06-27 07:50:10 -06:00
Robert Maynard
16f3f8ca9f VTKm_LOAD_COMPONENTS_COMMANDS now works with CMake version older than 3.3 2016-06-23 15:11:43 -04:00
Kenneth Moreland
1d0eac6301 Update some configuration to new components 2016-06-21 18:03:25 -06:00
Kenneth Moreland
a8384d6b7a Unify configuration for VTK-m build and packages
Have VTK-m eat its own dog food when it comes to its configuration. Load
the same configuration for building VTK-m as would be loaded (more or
less) when using find_package(VTKm) in an external project.

This includes adding lots more components to the packages so that all the
setup (e.g. OpenGL, TBB, etc.) can be set up correctly. It is also a
significant change to how these components are declared. The component
configuration is simplified a bit and unified in a single file.
2016-06-21 18:03:23 -06:00
Kenneth Moreland
5d67b918dc Use CMakePackageConfigHelpers to make config files
This is a little tricky since they don't seem to have considered that
you will have files in both the source and build directory or that the
file locations will not match exactly with the install locations.
2016-06-21 18:03:21 -06:00
Kenneth Moreland
c3ac545d91 Use CMakePackageConfigHelpers to create VTKmConfigVersion.cmake
This should help us be forward compatible with CMake.
2016-06-21 18:03:19 -06:00
Kenneth Moreland
952929a7d0 Merge branch 'msvc-rendering' into 'master'
Fix several issues concerning using rendering library with Visual Studio

Write a comment or drag your files here...

See merge request !457
2016-06-16 19:40:50 -04:00
Kenneth Moreland
0581a83aa2 Directly call python when executing expander.py
On Unix-based systems, you can directly execute a script and the system
will automatically run it through its associated interpreter. However,
on Windows this does not work. You just get an error about the script,
which is just a text file, being an invalid executable.

This was an issue when running pyexpander. Now, Python is called
directly for pyexpander.
2016-06-16 10:36:20 -06:00
Dave Pugmire
af1daf2f66 Add support for offscreen rendering with EGL. Added new class CanvasEGL, and a test. 2016-06-15 09:48:45 -04:00
Kenneth Moreland
4ae3a20dfc Add test to check that all source files are part of the build system
The test is a simple CMake script that finds all files in the build
directory with certain extensions (.h, .cxx, etc.) and makes sure that
the filename is listed somewhere in the CMakeLists.txt file of the same
directory. If the filename is listed in the CMakeLists.txt file, then
there is a good chance it is being addressed by the build.

This should help catch when header files are not being installed. It also
should help verify that test builds are being done on all files. It will
also highlight dead source files.
2016-06-02 10:23:37 -06:00
Dave Pugmire
a8c7f92d58 Move mesa package to right place.
Also, add in code for rectlinear mesh.
2016-03-28 08:51:36 -04:00
Dave Pugmire
294b73e00e Make the rendering part of the build optional.
Add the mesa libs to the link line.
2016-03-28 08:51:36 -04:00
Dave Pugmire
f84401243a Initial checkin for rendering infrastructure.
This largely follows things from EAVL. This is going to change going forward.
Most of the stuff is inside Window.h right now for convenience.
2016-03-28 08:51:35 -04:00
Chuck Atkins
635f8c7987 Add a CTestCustom file to to filter out warnings that cant be eliminated 2016-03-17 13:14:30 -04:00
Robert Maynard
bb90493920 Resolves Issue 52, we now install all vtkm files correctly. 2016-02-22 14:20:35 -05:00
Robert Maynard
ee368d0d68 Do not add c++ compiler optimizations to all compilers, but on a target basis.
As reported in Issue #54 the add_compile_options pollutes the global compile
flags. Instead we provided cmake flags for people to use.
2016-01-25 14:38:06 -05:00
Robert Maynard
204804af50 Teach VTK-m how to specify the CUDA GPU architecture to build for.
Like the ability to specify the vectorization level, users of CMake can
now specify what GPU architectures they want to build for. Most users
should just use the default 'native'.
2015-12-09 13:17:00 -05:00