Probe for library without using STL

If dune-grid has been compiled with _GLIBCXX_DEBUG, linking the test
program will fail since probing doesn't get the flags that are specified
for the main project, and thus configuration halts. Instead, we use a
smaller test program which doesn't need proper STL linkage to compile
and link.
Try singular name if plural not defined

In CMake "canon" (i.e. tutorial on Kitware's website) it is stated that
the _DIR suffix should be used for the directory of the library alone,
whereas _DIRS are entire list of paths necessary to compile (i.e.
dependencies are included).

Eigen3 only uses the singular form (since it doesn't have any
dependencies); it should really be copied to the plural form, but it may
be advantageous to have the find-module included unchanged, so we put in
an extra effort to find it here.
Include possibility that uppercase is used
Remove AutoTools files that searches for libraries

These are now superceded by CMake equivalents, and will over time
diverge from the main tree as they are no longer maintained.
Library to pick up configuration from pkg-config files

Pkg-config files are written as part of the CMake configuration, and
these can be imported into AutoTools-driven projects to get the correct
compiler and linker options that has been probed.
Compatibility module for dunecontrol-driven clients

If a client generated with duneproject/built with dunecontrol has a
dependency to opm-porsol, the macros defined in this file is expected
to exist and will be called to search for the opm-porsol library.

All that is done here is to use the pkg-config helper module and
import the configuration that was written by the CMake system (which
even may have been called earlier in the same dunecontrol "session")
Disable link-time, whole program optimization

When using LTO, the linker calls back to the compiler to figure out
where a certain symbol is defined. However, in many versions there
is apparently a bug that is triggered if a template in inlined in
both a used library and in the main program, but with different
versions of the compiler. The Boost exception class is particular
prone for this.

Thus, we disable the -lto from the development builds by default;
if anyone wants to test of the behaviour of their own compiler, they
must now explicitly turn on this flag.
Include flag for enabling link-time optimizations

When LTO is disabled by default, we need a flag to re-enable it.
Recognize lib dirs that may be used later

This let you specify a bunch of directory names on the command line
to *all* packages, without getting annoying warnings that they are
defined but not used.
Add CMake backwards compatibility for version < 2.8.3

Add features that aren't available in early versions of the 2.8.x
release series, enabling use of 2.8.0 if needed (e.g. Ubuntu 10.04)
List prerequisites for modules in a separate file

This file can be included both in the project itself, and also in the
find module for the library, so that the list of dependencies can be
maintained in only one place.
Notify callbacks when a timestep has completed

Client code can do additional processing for the output of each
timestep.
Get prerequisites from a separate "header" file

Note that the variable containing the dependencies must be expanded
inside quotes; otherwise the list will spill into the argument list!
Common code for building OPM library modules

Most of the OPM libraries follow the same template; this include file
contains all the common code.
Move configure script to cmake/Scripts/ directory

We want all changes to happen there; retain a small script that
simply forwards the action to the main script in that directory.
Remove the project parameter for the customization hook

The hooks are meant to be project specific, and should therefore
either know their own name or at least have access to a variable with
that name in it.
Don't include prerequisites here; do it more explicitly

Developers that are working to familiarize themselves with OPM will
probably start out in CMakeLists.txt to figure out where the project
declare its dependencies, thus the list should be referred to from
there instead of inside one of the sub-modules.
Include file list from top-level instead of module-level

Increase the visibility of the source file name include by no longer
putting it in a module, but rather by including it in CMakeLists.txt
Add function to detect linker version

The linker that is used (ld vs. gold for instance) is often hidden
when using the compiler as a front-end (to include the correct
runtime libraries).

These functions enables us to probe the linker version and reports
its finding in the log.
Print linker version to log