* CMake: Validate the version of the system OpenEXR
Let CMake validate that the version of the OpenEXR library we found
satisfies what was specified when calling `find_package(OpenEXR)`, for
example if a minimum or exact version were required.
* CMake: Restrict system OpenEXR versions to 2.3+
Versions prior to 2.3 are not compatible with C++17, due to for example
using the `register` storage class specifier or dynamic exception
specifications via the `throw` keyword.
Fixes regression introduced in cb2e8ae397
for systems with OpenEXR <2.3.
Fixes#117.
Since we have a CMake target, we can do scoped include directories.
Remove duplicate compile flags, and also add compile definitions which
enables PBRT to compile on Windows for Pascal-architecture cards.
Compared to commit a685e0205e, this also
* changes the dependency to be directly on the library rather than some
of its object file;
* adds a missing dependency on several generated header files;
* avoids passing `/D _CRT_SECURE_NO_WARNINGS` to nvcc;
* removes compiler flags that are part of the regular CUDA flags.
Since we have a CMake target, we can do scoped include directories.
Remove duplicate compile flags, and also add compile definitions which
enables PBRT to compile on Windows for Pascal-architecture cards.
Fixes#27