Commit Graph

233 Commits

Author SHA1 Message Date
Kenneth Moreland
8e845d6933 Merge branch 'rendering-library' into 'master'
Rendering library

Pull the majority of the implementation of the rendering
package into a library for better compile performance.

See merge request !527
2016-09-09 16:28:09 -04:00
Kenneth Moreland
68559d130a Merge branch 'autoload-base-component' into 'master'
Always load "Base" component in find_package

A big part of the VTK-m find_package configuration is a set of
components that load different parts of VTK-m's configuration. If you
load none of the components, you do not actually get enough to compile
any part of VTK-m, which is confusing. To get around this, always load
the "Base" component.

See merge request !541
2016-09-09 16:01:49 -04:00
Kenneth Moreland
e931aac26b Separate arguments for target_compile_options
The target_compile_options expects the arguments to be in a CMake list.
However, the variables used to hold CMake lists are space separated to
be just put in a command line. Thus, call separate_arguments on the
string before using it.
2016-09-08 16:34:04 -06:00
Kenneth Moreland
bd1f33dd9e Revert change in use of target_link_libraries signature
We moved to using the more modern signature of target_link_libraries,
but on some platforms this causes a configuration error. The issue is
that cuda_add_library internally uses target_link_libraries with the old
signature, and CMake does not allow us to use both signatures on the
same target.
2016-09-08 09:43:47 -06:00
Kenneth Moreland
3dae95f22a Update to newer CMake function interfaces
Per suggestions from Rob Maynard.
2016-09-07 16:48:17 -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
05fe2a0619 Allow sources to be declared in parent directory
A recent change to the rendering library has a source code in the
internal subdirectory references from the rendering directory. This
makes sense as we want all the components (whether externally visible or
not) to be in the same library. However this broke the SourceInBuild
tests as the source code was technically not referenced from the
CMakeLists.txt in the same directory.

Anticipating that this could be a common occurance, I modified the test
to also check the CMakeLists.txt in the parent directory.
2016-09-07 16:47:54 -06:00
Kenneth Moreland
111850ef08 Use TryExecute within the rendeirng library
When things in the rendering library need to execute things in parallel
(outside of another rendering library like OpenGL) it should run it on
available parallel devices. This means using TryExecute to attempt on
whatever devices may be available. It also means that some of the
sources must be compiled with CUDA's nvcc. To enable this, made a code
wrapping mechanism to compile within a .cu file.
2016-09-07 16:47:50 -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
Kenneth Moreland
7e84c747ff Always load "Base" component in find_package
A big part of the VTK-m find_package configuration is a set of
components that load different parts of VTK-m's configuration. If you
load none of the components, you do not actually get enough to compile
any part of VTK-m, which is confusing. To get around this, always load
the "Base" component.
2016-09-07 09:42:38 -06:00
Kenneth Moreland
9c5b79f867 Reduce the number of times VTK-m configuration gives messages
Often times packages are loaded multiple times simply to resolve
dependencies. This can mean the same status is given multiple times
(particularly when a component does not load). This change reduces that
a bit by making sure the messages from the VTK-m configuration only
happen once.
2016-09-07 09:25:46 -06:00
Kenneth Moreland
e500695a58 Configure OSMesa before OpenGL
The configuration for OpenGL can change depending on whether OSMesa is
used, so make sure OSMesa is always configured first so that the
"correct" OpenGL is used.
2016-09-07 09:02:17 -06:00
Robert Maynard
75d435f7ad Merge topic 'refactor-cmake'
011605d4 Refactor CMake files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !493
2016-09-02 09:52:52 -04:00
Robert Maynard
f7ecc5fd02 CUDA+MSVC doesn't need --std c++11 explicitly specified. 2016-09-01 14:30:52 -04:00
Sujin Philip
011605d489 Refactor CMake files
1. Change set_property(...) to target_* commands
2. Remove explcit adding of CMAKE_CXX_FLAGS_WARN_EXTRA as compile option
3. Add /bigobj option to VTKm_COMPILE_OPTIONS under MSVC
2016-09-01 11:14:29 -04:00
Robert Maynard
696ca48bd1 Make sure CUDA is built with c++11 support enabled. 2016-08-29 16:19:44 -04:00
Robert Maynard
c4dd3cffd5 Merge topic 'remove_CheckCXX11Features'
c34fab4f Remove CheckCXX11 Feature since we now require C++11.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !524
2016-08-26 15:49:37 -04:00
Kenneth Moreland
4fd9ba7e11 Make glfw auto-terminate during testing
The UnitTestMapperGLFW test was coded to run in an interactive mode,
which was problematic when simply running the test. If no one was there
to exit the interactive window, the test would time out. This change
adds a "batch" mode that is on when run by ctest. The batch mode runs
through all configurations and exits.
2016-08-26 08:28:35 -06:00
Robert Maynard
c34fab4f84 Remove CheckCXX11 Feature since we now require C++11. 2016-08-26 10:23:15 -04:00
Kenneth Moreland
7f8ea09f88 Fix configuration of dependent rendering libraries
The VTKmConfigureComponents.cmake file has lots of careful configuration
of many of VTK-m components and dependent libraries (like OpenGL,
OSMesa, etc.) that takes care of several corner cases. The configuration
is consolidated here so that it can be consistent across the many
directories in VTK-m as well as other projects that use VTK-m.

Recent changes to the configuration in rendering circumvented these and
directly tried to configure dependent rendering libraries. This is wrong
(and more importantly broke my OSX build).
2016-08-25 14:44:30 -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
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
Mark Kim
9475a8e551 Need to add GLFW to OpenGL interp macro to have the location of the glfw3.h
in the include path.
2016-08-12 18:29:59 -06:00
Mark Kim
7bb3e89e87 Split EGL and OSMesa into separate directories. libGL and libOSMesa do not play well together. 2016-08-08 21:57:38 -04:00
Robert Maynard
720dc149d1 properly link vtkm::interop to pthread. 2016-08-08 11:14:25 -04:00
Robert Maynard
3596120b46 Merge topic 'reduce_number_of_cuda_checks'
8a441d30 Don't run nvcc native detection multiple times, as the results are cached.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !498
2016-08-08 08:19:58 -04:00
Robert Maynard
0f545c53e3 Merge topic 'now_can_build_with_cxx11'
a6609311 Silence auto_ptr deprecation warnings with older boosts ( < 1.61 )
6d38f44d Update ListTag and DispatcherBase to leverage C++11 features.
ea0d84a8 Remove VTK-m Variadic defines and replace them with a single CXX11 define
77121d18 Add support to VTK-m to build with C++11

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !475
2016-08-05 16:03:35 -04:00
Robert Maynard
8a441d3051 Don't run nvcc native detection multiple times, as the results are cached.
This fixes a issue where when CUDA is enabled and VTKm_CUDA_Architecture is
set to native, we would run nvcc each time somebody explicitly enabled the
CUDA component ( each example ).
2016-08-05 15:41:55 -04:00
Sujin Philip
746d6fc7b2 Fix configuration of vectorization
1. Re-enable vectorization setup in cmake
2. Set vectorization flags to empty when "none" is specified.
2016-08-03 16:07:21 -04:00
Robert Maynard
77121d1871 Add support to VTK-m to build with C++11 2016-08-03 15:38:38 -04:00
T.J. Corona
4f49a8407b Update VTKmCheckCopyright.cmake to ignore build files. 2016-08-02 13:50:33 -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
4ca6ce2ad6 nvcc doesn't have troubles with boost shared_ptr optimizations 2016-07-19 13:26:23 -04:00
Dave Pugmire
be643811d6 Add GLFW unittest. 2016-06-30 15:12:53 -04: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
c5e849981f Re-disable warnings on CUDA builds for MSVC
In an earlier commit, we took out the "-w" flag for CUDA builds, which
disables all compiler warnings. The original reason for disabling
warnings was an errant warning about unused functions. It was taken out
because the visual studio compiler complains when this flag overrides
another warning flag (such as /W3).

Although the visual studio compiler was not complaining about unused
functions, we were getting lots of other warnings. These warnings did
not seem to actually come from the visual studio compiler. They probably
come from whatever CUDA uses for a device compiler. But it is unclear
how to specifically target these warnings.

So, the easiest solution is to add the "-w" flag back. To get around the
other warning, we now (hopefully temporarily) remove warning flags from
CMAKE_CXX_FLAGS to prevent the conflicting flags.
2016-06-28 17:26:09 -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
Kenneth Moreland
eb41c6d5bd Disable -w flag for CUDA on Visual Studio
Because the CUDA builds were experiencing some warnings about unused
functions, a -w flag was added to our nvcc flags. This effectively
turned off the warning (which was part of -Wall). But on Visual Studio
this added flag was causing a warning of its own because it overwrote
the /W3 flag. So turn this off for Visual Studio.

I don't think Visual Studio gives this warning anyway. If it does, we
can add a specific flat to suppress that warning.
2016-06-27 07:50:08 -06:00
Kenneth Moreland
8186600aa4 Fix issue with pdb files with nvcc on windows
When doing parallel builds with CUDA's nvcc on windows, you often get
errors about multiple programs trying to write to a pdb file at once. To
get around this, add the /FS flag on windows for the CUDA compiler.
2016-06-27 07:50:06 -06:00
Robert Maynard
b0d3591933 VTKMConfig.cmake now properly sets VTKm_PACKAGE_IN_BUILD 2016-06-23 14:28:50 -04:00
Kenneth Moreland
7ff20c9230 Fix includes for CUDA builds
The CMake CUDA build targets do not respect the
target_include_directories (yet?). Instead, add the necessary includes
to cuda_include_directories().
2016-06-22 12:53:23 -06:00
Kenneth Moreland
83103967f2 Clean up checks for TBB and CUDA components 2016-06-21 18:03:31 -06:00
Kenneth Moreland
13ee8bc190 Fix several issues with making sure all includes are set
Make everything consistent with new builds.
2016-06-21 18:03:29 -06:00
Kenneth Moreland
afcca27cbf Make FindThrust.cmake work when thrust not found
Before it was trying to load the thrust header file even when the thrust
header file was not found.
2016-06-21 18:03:27 -06: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
Robert Maynard
8871fe0b0e Add a copyright statement to the FindEGL.cmake 2016-06-17 08:14:37 -04: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
Dave Pugmire
6725e7ce5c Forgot the copyright statement. 2016-06-16 14:43:55 -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
Robert Maynard
8a9fa5d2cd Remove debug message from UseVTKmCUDA.cmake 2016-06-10 13:33:07 -04:00
Robert Maynard
a0af013c22 Auto-detection of cuda version requires usage of a working directory.
Without a working directory specified, the executable will be output
to what-ever working directory cmake-gui was launched from. In most cases when
CMake is the 'system' version, this is a directory that you don't have write
access to.
2016-06-03 13:10:44 -04:00
Kenneth Moreland
7f005562ac Make all benchmarking sources listed in build
The benchmarking header files were not listed. Not a huge deal since
these files do not need to be installed, but they should be listed
anyway. Changed the vtkm_save_benchmarks CMake macro to be able to list
headers.

Also moved everything from BenchmarkDeviceAdapter.h to
BenchmarkDeviceAdapter.cxx. Since this code shouldn't need to be
included by anything except this benchmark, there is no need to have it
in a header file. Plus, the build changes would mean that any change in
the header (where most of the source was) could cause all code in this
directory to recompile. I do not want to set that precedent.
2016-06-02 10:24:21 -06: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
Robert Maynard
90d3ad0efa Merge topic 'resolve_dejagore_maxwell_issues'
780cef61 Bump up the CUDA timeout as some of our Maxwell machines are timing out.
e5c3f9c4 Solve reduce by key bugs with cuda 7.5 + maxwell hardware.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !411
2016-05-12 16:33:06 -04:00
Robert Maynard
780cef619c Bump up the CUDA timeout as some of our Maxwell machines are timing out. 2016-05-12 15:46:42 -04:00
Robert Maynard
49ede2a547 Remove unneeded debugging message from VTKmMacros. 2016-05-12 10:12:30 -04:00
Kenneth Moreland
82949e79cc List template sources in IDE
I like to have all the source files used in VTK-m to be explicitly
declared as source files in CMake so that when CMake builds a project file
for an IDE, all the source files are shown and monitored by the IDE. This
makes working with the files much easier.
2016-05-05 13:00:12 -06:00
Robert Maynard
19a941cc6e It is now easier to use the device adapter benchmark code.
For example to now benchmark only the sortbykey algorithm

  ./bin/BenchmarkDeviceAdapter_TBB sortbykey
2016-05-03 15:53:09 -04:00
Robert Maynard
76b6179abf Add missing copyright headers. 2016-03-28 11:16:35 -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
Robert Maynard
c12955b758 Merge topic 'less_aggressive_optimization_setting'
3eec5e86 ICC: disable vectorization as both ivdep and simd generate bad code.
f021e4a5 Make the default for vectorization be none.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !368
2016-03-23 16:57:51 -04:00
Robert Maynard
f021e4a575 Make the default for vectorization be none.
A default of 'native' has the concern that people using vtk-m might by
default generate non portable binaries or libraries and will become
very hard to track down why this happens. So do enable vectorization we
default to 'none'.
2016-03-23 14:09:59 -04:00
Robert Maynard
1284854798 Make UnitTest targets have a shorter name. 2016-03-21 16:18:06 -04:00
T.J. Corona
d281051996 Fix the installation of template source files. 2016-03-18 06:24:43 -04:00
Robert Maynard
8818cfc600 Disable vectorization when building with ICC 14.0
We have found that ICC 14.0 produces bad simd code that causes
vtkm worklets to throw SIGBUS signals. This issue was resolved in
ICC 15.0
2016-03-16 13:27:04 -04:00
Robert Maynard
19dc5672bf Correct CUDA fallback to "fermi" when trying to do auto detection.
The logic would properly fall to fermi, but not set the proper NVCC flags
to actually compile targeting the fermi compute architecture.
2016-03-10 16:28:54 -05:00
Robert Maynard
559d2aab94 CUDA based worklets should now not timeout.
The first CUDA worklet test requires way more time because of the overhead to
allow the driver to convert the kernel code from virtual arch to actual arch.
2016-03-09 08:09:21 -05:00
Chuck Atkins
b47982f7e4 Check return error codes when detecting CUDA capabilities. 2016-02-23 10:07:32 -05:00
Robert Maynard
bb7ed34ed5 Teach FindBoostHeaders.cmake about boost 1.60 2016-02-22 16:00:00 -05:00
Sujin Philip
e79b8ff238 Add vectorization flags for KNL 2016-02-19 11:43:24 -05:00
Sujin Philip
0900e0c06c Fix how the vectorization flags are specified
For intel compilers, specifying multiple flags will result in warnings and
the last flag overrides previous flags.
2016-02-19 11:43:17 -05:00
Robert Maynard
8589df3df8 Correct avx options when using the intel compiler. 2016-02-18 14:58:39 -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
4fd4095b36 Extend the timeout for vtkm worklet tests to reduce timeout failures.
Dejagore and Renar are both having tests timeout, so lets extend the window.
2015-12-10 15:28:36 -05:00
Robert Maynard
f6ae5f3dec CUDA GPU architecture detection now works with MSVC generators. 2015-12-10 09:34:30 -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
Robert Maynard
2df501c7a0 Suppress failure to vectorize warnings from the Intel Compiler. 2015-12-04 09:18:54 -05:00
Robert Maynard
646b3ad7f9 Suppress notification about failure to vectorize on release builds. 2015-12-03 13:54:51 -05:00
Robert Maynard
bfb6c26a98 Simplify the design of vectorization support.
Remove the configured file variables, as that causes problems
when using an installed version of VTK-m.
2015-12-01 11:37:41 -05:00
Robert Maynard
4ea567aee9 Remove VTKm_ENABLE_VECTORIZATION, as VTKm_Vectorization handles all use cases. 2015-11-30 11:08:21 -05:00
Robert Maynard
4ceb111a68 Enable vectorization inside the Serial and TBB backends. 2015-11-25 15:59:13 -05:00
Robert Maynard
514ea09afc Teach VTK-m how to enable vectorization for gcc, clang, and icc. 2015-11-23 12:44:05 -05:00
Kenneth Moreland
8d207097b1 If VTK-m is required in find_package, require sub packages
If a project loads VTK-m with find_package(VTKm REQUIRED), then also make
it required to find any packages the default devices require.
2015-11-12 14:41:22 -07:00
Kenneth Moreland
fac5d79a52 Remove direct use of TBB_LIBRARIES and TBB_INCLUDE_DIRS
Instead, use VTKm_LIBRARIES and VTKm_INCLUDE_DIRS where the configuration
stores all necessary libraries and include directories.
2015-11-12 14:34:31 -07:00
Kenneth Moreland
c0f49d6112 Update vtkm_configure_device macro
* Support a REQUIRED flag that only gives an error if that flag is given.

* Move common configuration required for all devices (such as boost) to a
special device named Base.

* Make CUDA always capitalized to be consistent with the other CMake
variables.

* Rather than call include_directories, set a variable named
VTKm_INCLUDE_DIRS. This is consistent with how most CMake packages work.

* Make a CMake variable named VTKm_LIBRARIES containing all the
libraries the configured devices need.

* Automatically configure supported devices when loading the VTK-m
package in CMake.
2015-11-12 14:26:00 -07:00
Kenneth Moreland
4f8f76f3f7 Fix line endings.
There were a couple of files checked into the git repository with DOS
line endings. Most git implementations really expect there to be Unix
line endings and should do the appropriate conversions as necessary.
This commit should change the line endings to the appropriate Unix endings.
2015-10-20 12:32:29 -06:00
Robert Maynard
9b877ef49b Merge topic 'multiple_backend_example'
fd685210 Always install all device headers even when device isn't enabled.
b1663b24 Add an example of using multiple backends from a single translation unit.
fc0ff69d Methods with try/catch need to be host only.
4d635d64 DeviceAdapter Tags now always exist, and contain if the device is valid.
cf32b430 Teach Configure.h to store if TBB and CUDA are enabled.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !198
2015-09-17 09:49:49 -04:00
Robert Maynard
fd68521066 Always install all device headers even when device isn't enabled.
vtkm_declare_headers now is able to not test headers, by using the
TESTABLE keyword.
2015-09-17 09:28:21 -04:00
Robert Maynard
121471c5d0 Enable more warnings when building with AppleClang. 2015-09-15 16:20:24 -04:00
Robert Maynard
4cf9ab018a On Linux when using GLEW also link to the Threading library.
This is needed because some implementations GLEW do lazy linking to
PThreads.
2015-09-04 14:38:37 -04:00
Robert Maynard
78cef0c33d Suppress deprecation warnings about glut as we investigate our options.
Starting in OSX 10.9, apple has deprecated the glut.h provided header
so we need to figure out how we want to do window management on OSX. I expect
the way forward is to require the developer to install openGLUT.
2015-08-27 09:37:13 -04:00
hschroot
d943348060 CMake configuration definitions to enable OpenGL Interop
Copy all OpenGL interop related configurations from the DAX CMake files
2015-08-21 11:17:10 -07:00
Robert Maynard
32bf8a54f0 Update FindBoostHeaders to properly detect a minimum Boost version. 2015-08-17 10:06:57 -04:00
Robert Maynard
a2e718acb1 Workaround the PGI compiler stating it is gcc when looking for float128. 2015-08-10 12:33:46 -04:00
Kenneth Moreland
3410c877cb Add git SHA to information reported in SystemInformation test 2015-07-31 12:10:52 -06:00
Robert Maynard
4ee084487b Update FindBoostHeaders to include boost 1.57 and 1.58 2015-07-22 14:59:26 -04:00
Robert Maynard
026ba0daa0 Reduce the length of generated TestBuild files.
VisualStudio 2010 has issues with files with extremely long names, and CMake
will generate warnings when it detects problematic files.
2015-07-20 15:43:19 -04:00
Sujin Philip
1a9e8d1e3d Initial support for generating documentation using Doxygen 2015-07-17 15:35:59 -04:00
Robert Maynard
cc94027c4b Correct logic bug in setting the NVCC flags inside a function. 2015-07-16 10:19:34 -04:00
Robert Maynard
a4be794a33 More refactoring to simplify the msvc exceptions in VTKmMacros. 2015-07-15 15:52:54 -04:00
Robert Maynard
7bab948682 Refactor common nvcc flag code to only exist in a single place. 2015-07-15 15:45:05 -04:00
Robert Maynard
e6dd564d92 Make sure nvcc compiles with bigobj on windows.
This required as the testing infrastructure creates thousands of symbol
entries, and the default for VisualStudio is crazy small.
2015-07-15 12:42:47 -04:00
Will Usher
238d4fa759 Adding micro benchmark suite 2015-07-09 13:56:06 -06:00
Robert Maynard
ca3a91ef6e Merge branch 'add-tbb-backend' 2015-06-01 14:31:01 -04:00
Sujin Philip
08f88b1cb9 Add TBB backend. 2015-06-01 13:57:37 -04:00
Robert Maynard
100b894c13 Enable signed / unsigned and 64bit/32bit conversion warnings. 2015-05-28 09:05:16 -04:00
Brent Lessley
0a72789304 Resolved all implicit conversions between unsigned int and vtkm::Id. 2015-05-26 09:34:43 -04:00
Brent Lessley
2a89f66144 Resolved all compiler warnings for floating-point comparisons in TestingDeviceAdapter.h 2015-05-26 09:18:19 -04:00
Robert Maynard
6b8e7822be The Copyright statement now has all the periods in the correct location. 2015-05-21 10:30:11 -04:00
Robert Maynard
2af64c4097 Enable big object file creation when using visual studio.
By default visual studio limits the number of sections in an object file
to 2^16 which isn't enough when creating some of our tests. So we enable
/bigobj which increases that number to 2^32.
2015-05-06 09:25:45 -04:00
Kenneth Moreland
baf941beb1 Fix the date manipulation on the check copyright script
When a new file is added to VTK-m, the copyright statement should go at
the top of the file. The copyright contains a date. What should that date
be? I usually set the date to the current year so older files will have
an older copyright whereas newer files will have a newer one. The check
copyright script needs to be flexible on the date.

There was an error in the script that was copied over from Dax. It was
checking for the year 2011, the start of the Dax project, and replacing
that in the text. VTK-m started in 2014, so the script really needs to
check for that year instead.
2015-02-11 09:45:36 -07:00
Robert Maynard
1306d389e5 Allow vtkmMacros to be called by users of vtkm. 2015-01-27 09:11:17 -05:00
Robert Maynard
19abc0b2e9 Suppress warnings on windows. 2015-01-26 10:19:11 -05:00
Robert Maynard
7f73c4f404 Merge branch 'cuda_DeviceAdapterAlgorithm' 2015-01-20 15:29:08 -05:00
Robert Maynard
389faf5262 Mark all cuda related CMake variables as advanced. 2015-01-20 09:26:19 -05:00
Robert Maynard
a10f16d2d1 Enforce the VTKm name for all CMake variables. 2015-01-20 09:17:53 -05:00
John Biddiscombe
b1b3ba1131 Fix problem with find cuda/thrust cmake code 2015-01-19 14:25:54 -05:00
Robert Maynard
797aac5537 Worklet tests build for cuda device adapter now use the cuda device adapter.
We have to work around some bugs in the CMake cuda target logic.
2014-12-19 13:47:28 -05:00
Robert Maynard
3e8ac22fe6 Allow worklet tests to be built for the cuda device adapter. 2014-12-19 13:47:28 -05:00
Robert Maynard
d9270e408d Adding a cuda device adapter to vtkm.
Porting the dax device adapter over to vtkm. Unlike the dax version, doesn't
use the thrust::device_vector, but instead uses thrust::system calls so that
we can support multiple thrust based backends.

Also this has Texture Memory support for input array handles. Some more work
will need to be done to ArrayHandle so that everything works when using an
ArrayHandle inplace with texture memory bindings.
2014-12-19 13:47:28 -05:00
Kenneth Moreland
a0d31278d8 Fix dependency issue with VTKmCheckPyexpander.cmake
Previously, this script would create a file the same name as the desired
output, and then move it to a file with .save appended to it if the
check failed. This is problematic with parallel builds because there is
no dependency set up between the actual header file and the one being
created. Thus, it is possible for some compiles to pick up the created
file before it is moved or deleted.

Instead, just create the file with .save appended to it so that no
compile can every accidently pick it up.
2014-10-22 07:04:16 -06:00
Kenneth Moreland
d91f66acab Keep pyexpander generated files out of build directory
The previous behavior of the pyexpander check (in
VTKmCheckPyexpander.cmake) was to generate the file in the binary
directory and then remove it from there iff the check failed. This
caused two problems. The first is that if the check failed then the file
was deleted and there was no file to copy to the source as the
instructions suggested. The second is that if the check succeeded the
build would then use the files in the build directory rather than the
source directory, and if the programmer accidently modified the binary
files (because, for example, if a build error occured there), the
configure system would not catch that.

This change in behavior was that if the check failed, the file is
renamed to have a .save extension so that the file remains and can be
easily copied back to the source directory if that is appropriate. If
the check succeeds, the generated file is removed and a file with the
extension .check is touched. That .check file is used as a make target
to signal that the test has been performed.
2014-10-08 10:03:10 -06:00
Kenneth Moreland
5aca77a530 Add SystemInformation test
The SystemInformation test always passes. It prints out the contents of
various configuration parameters. The intention is to capture this
information in dashboard reports. That way if a change causes a
dashboard failure and a developer does not have access to the dashboard,
she can look at the output of this test to see the configuration of the
build and that machine.
2014-09-10 13:36:16 -06:00
Kenneth Moreland
fe4d26210c Turn off unsafe function warning for CMake-generated test code.
The CMake template for the source file that contains the main function for
tests uses functions that MSVC considers unsafe. We want to check for these
conditions but have no control over the CMake-generated test code (which
looks right anyway). This disables the warning specifically for those
source files but nothing else.
2014-08-12 14:00:24 -06:00
Kenneth Moreland
adad702652 If pyexpander is available, run it and check the source file.
Although we cannot expect every developer to have pyexpander, for those
that do the build will automatically run it and check the expanded file
in the source code. If they match, a descriptive error is given.

We don't automatically update the file because subtle problems might
occur. It is better to alert a developer to fix the problem properly.
2014-06-26 18:26:45 -06:00
Robert Maynard
262f07c9b0 Properly name the VTKm CMakeFiles. 2014-02-11 14:56:03 -05:00
Robert Maynard
ad0bc83320 Add in the basic CMake Infrastructure required for vtkm. 2014-02-10 15:00:17 -05:00