Commit Graph

189 Commits

Author SHA1 Message Date
Markus Blatt
e1e9e677a3 [buildsystem] Make dune-cornerpoint a suggestion. 2014-03-13 15:27:45 +01:00
Kristian Flikka
d4a7bcd8e4 Only look for BOOST´s unit test framework module if not already found. Sync version with rest of system 2014-03-11 20:09:11 +01:00
Bård Skaflestad
1ce36d7c06 Elucidate description string for opm-parser.
The 'opm-parser' module is (currently) designed to parse ECL-type
simulation models.  Reflect that fact in its description.
2014-03-11 20:09:10 +01:00
Bård Skaflestad
f482e89e48 Defer searching for opm-parser
The "opm-parser" module is expected to become dependent upon the ERT
library.  Defer searching for the parser module until we've
established whether or not ERT is availble.

Suggested by: @andlaus
2014-03-11 20:09:09 +01:00
Bård Skaflestad
e63a396579 Restore C++-11 checks
While reformatting the parser-prereqs file I accidentally replaced
the feature search 'CXX11Features' with 'CXX10Features'.  This
commit fixes that blunder.
2014-02-28 22:10:41 +01:00
Bård Skaflestad
9329d652fd Fix mis-merge.
In propagating the requirements for opm-benchmarks to the other
modules I accidentally removed the 'opm-parser' prerequisite (see
commit 86439d6 for details).  This commit restores that prerequisite.
2014-02-28 20:05:55 +01:00
Bård Skaflestad
dfe457624e Depend on Boost.Iostreams
The benchmark library uses Boost::iostreams to do decompression. Since
we only scan for the Boost dependency once, this submodule is added to
all of the projects in order to have a coherent dependency on Boost.
2014-02-28 19:30:06 +01:00
Bård Skaflestad
8314ea3595 Reformat prerequisite file according to convention
This commit makes a few adjustments to the white-space of file
'opm-parser-prereqs.cmake' to honour the conventions of the other
*-prereqs.cmake files within the OPM project's module suites.

No functional changes.
2014-02-28 19:30:06 +01:00
Bård Skaflestad
41032a8ee4 Uniformly raise Boost version requirement to 1.44
Commit 70505ff raised opm-core's "Boost" requirement to version 1.44
in order to reflect the requirements of the opm-parser module.  This
commit propagates that requirement to all other known modules.
2014-02-28 19:30:06 +01:00
Roland Kaufmann
b9c4adff9e Depend on Boost::iostreams
The benchmark library uses Boost::iostreams to do decompression. Since
we only scan for the Boost dependency once, this submodule is added to
all of the projects in order to have a coherent dependency on Boost.
2014-02-28 19:30:06 +01:00
Roland Kaufmann
cd9012152d Provide dependency information for opm-benchmarks 2014-02-28 19:30:06 +01:00
Markus Blatt
769b9e8419 Do not use find_package in config mode for opm-parser.
Currently opm-parser does not create opm-parser-config.cmake files. Therefore
building with duncontrol fails as it sets opm-parser_DIR. With this patch
we force CMake to always use module mode for finding which fixes this.
2014-02-28 17:55:36 +01:00
Markus Blatt
2fbe70e8a8 Removed printf debugging messages 2014-02-28 17:55:35 +01:00
Markus Blatt
e99e947927 Support more arbitrary sibling/subdir build directories for opm-parser. 2014-02-28 17:55:34 +01:00
Markus Blatt
991e909af9 Whitespace change that replaces introduced tab with spaces. 2014-02-28 17:55:33 +01:00
Markus Blatt
7cc3a13c2c Makes arbitrary build subdirectories possible.
Instead of guessing the suffix or subdir of the build directory,
we now simply compare PROJECT_{BINARY,SOURCE]_DIR to detect it.
By this e.g. opm-core/opm-parallel is a possible build directory, too.
2014-02-28 17:55:32 +01:00
Markus Blatt
ea9f088126 Corrects required version and make Eigen3 download work.
At least on Debian requiring version 3.1 of Eigen3 is not sufficient
according to issue #25 the minimum version is 3.1.2. This patch fixes
the required version. In addition it skips the REQUIRED option passed
to find_package(Eigen3) to make the git download work.

Fixes #25.
2014-02-28 17:53:51 +01:00
Roland Kaufmann
0635670ac8 Declare a need to know if BOOST is available
Note that the variable HAVE_DUNE_BOOST is not set by FindBoost,
but by OpmAliases.
2014-02-28 17:52:27 +01:00
Roland Kaufmann
ab926cd82c Declare a need to know if UMFPACK is available
Note that the variable HAVE_UMFPACK is not set by FindSuiteSparse,
but by OpmAliases.
2014-02-28 17:52:26 +01:00
Roland Kaufmann
8cbfaa3c14 Create aliases for probed variables
Headers from other libraries (notably DUNE) require definitions of
other variables than our probe process set (e.g. HAVE_UMFPACK instead
of HAVE_SUITESPARSE_UMFPACK_H). This module sets those aliases for
compatibility.
2014-02-28 17:52:25 +01:00
Andreas Lauser
d9228403d4 OpmFind.cmake: also check for CAPITALIZED found variables
thanks to @rolk for catching this
2014-02-28 17:52:24 +01:00
Andreas Lauser
113162263d OpmFind.cmake: prevent multiple calls to the same module in the same run
this prevents to check for the same module more than once in the same
cmake run and should thus speed things up a bit as well as make the
output a bit cleaner. For this I assumed that the ${name}_FOUND cmake
variable does not get cached, which it seems like it does not...
2014-02-28 17:52:23 +01:00
Andreas Lauser
5601eece73 cmake: make sure all calls to message() exhibit a type 2014-02-28 17:52:22 +01:00
Roland Kaufmann
9f1934570b Only add linker option if it is not really there
This code is run unconditionally each time we do a reconfigure; if the
option is added at each time, they will accumulate (needlessly) on the
command-line, making it harder to inspect the log.
2014-02-28 17:52:19 +01:00
Roland Kaufmann
3112e465a0 Provide CMake find module for opm-autodiff
If the module root is not explicitly specified, the loading of its
configuration is delegated to a find module, which does a heuristic
search in known/surrounding directories. Most OPM modules use the
common logic in OpmPackage; this patch configures the search
specifically for opm-autodiff.
2014-02-28 17:52:18 +01:00
Joakim Hove
fb3824e0da Raised the opm-core boost dependency to 1.44 to reflect parser requirement 2014-02-28 17:52:14 +01:00
Joakim Hove
b834cfb899 Removed explicit cJSON dependency from opm-core 2014-02-28 17:52:13 +01:00
Joakim Hove
c3c3817d80 Added required dependencies on opm-parser and CJSON 2014-02-28 17:50:20 +01:00
Joakim Hove
0138fc43ef Merged upstream/master 2014-01-29 15:25:21 +01:00
Markus Blatt
35f0f5f5be [cmake,bugfix] Corrects required version and make Eigen3 download work.
At least on Debian requiring version 3.1 of Eigen3 is not sufficient
according to issue #25 the minimum version is 3.1.2. This patch fixes
the required version. In addition it skips the REQUIRED option passed
to find_package(Eigen3) to make the git download work.

Fixes #25.
2014-01-15 13:15:13 +01:00
Joakim Hove
4ea99a96d9 Merge remote-tracking branch 'upstream/master' into opm-parser-integrate 2013-11-25 16:00:12 +01:00
Roland Kaufmann
847d8fe924 Only add parent directories for actual variants
Otherwise we'll inadvertedly add the root directory and will probably
find the system implementation underneath there.
2013-11-25 11:38:24 +01:00
Roland Kaufmann
47eb8a0549 Only add build sub-directory if it is actually used
Otherwise the search will cascade down one level too many.
2013-11-25 11:38:23 +01:00
Roland Kaufmann
ce569c75d4 Search in build/ sub-dir if only suite root is given
If the package suite was given (e.g. DUNE_ROOT=/blum), then the code
set up the root for each individual package automatically (e.g.
DUNE_COMMON_ROOT=/blum/dune-common), but the path which was then
activated did not get the local build sub-directory (e.g. if we are
building opm-autodiff in /frub/opm-autodiff/build, then the local
build directory is "build/"), and thus this was not appended to the
library search path. The result was that the source was found (because
the root pointed to a valid source tree), but the library was not
(because it is "hidden" in the subdirectory).
2013-11-25 11:38:22 +01:00
Joakim Hove
2405462a38 Changed the check_cxx_source_compiles() in Findopm-parser to look for Deck.hpp; Parser.hpp had uneccasary complicated interaction with cJSON 2013-11-25 11:38:12 +01:00
Andreas Lauser
c1d8d953c1 fix test for HAVE_QUAD on some instances of ubuntu 13.10
I haven't figured out why this happens, but on one of my computers
running kubuntu 13.10 g++ says the following if one tries to use
quadruple precision math:

/home/erne/src/ewoms/ewoms/common/quad.hh: In static member function ‘static quad std::numeric_limits<__float128>::min()’:
/home/erne/src/ewoms/ewoms/common/quad.hh:52:14: error: unable to find numeric literal operator ‘operator"" Q’
     { return FLT128_MIN; }

since this happens only on this machine and only with the c++ (but
not the C) compiler, i suppose that this is either an upgrade issue
with kubuntu or an issue with the ubuntu gcc stack. Strangely enough,
my other kubuntu machine does not have a problem with that...

In any case also testing for assignability of constants and using the
C++ compiler for the quadmath test won't hurt...
2013-11-25 11:38:11 +01:00
Joakim Hove
1764c1fffa Updated to require opm-parser. Identical to opm-core PR:433 2013-11-18 14:49:38 +01:00
Joakim Hove
40b6aadc98 Updated modules to find Opm-parser 2013-11-05 09:55:43 +01:00
Joakim Hove
a99277efdf Updated modules for Findcjson and Findopm-parser 2013-11-05 09:55:42 +01:00
Joakim Hove
eab166feea Added opm-parser-prereqs.cmake 2013-11-05 09:55:41 +01:00
Joakim Hove
aefaaf6e91 Added CMake find modules opm-parser and cjson 2013-11-05 09:55:41 +01:00
Roland Kaufmann
7e024a2cce Allow to search for multiple libraries in package
Some packages are split up in several library files, where each of them
doesn't have their own CMake find-module. So we cannot put this list in
the prerequisites. Unlike the headers, where we just add the directory,
all the libraries must be explicitly named on the link line. Thus, we
should allow to specify more than one name in the lib parameter.

The first name specified is designated as the "primary" library and is
assigned to the _LIBRARY variable; the others occur in _LIBRARIES as if
they were prerequisites.

Note that the build system cannot replicate this setup itself; it always
assumes that we are building (at most) one library from the source
files.
2013-11-05 09:55:39 +01:00
Roland Kaufmann
615b88b345 Install header-only pkgconfig file to generic lib/
The previous version assumed that we had libraries, and thus always
installs the .pc file in the multi-arch library directory. However,
we now have modules which does not have a library, but whose header
files still need to be located. Since the lib/ directory is usually
in the pkgconfig search path, it is natural to put them there.
2013-10-21 15:25:22 +02:00
Roland Kaufmann
9338810b6e Allow static linking for SuiteSparse to be forced
If -DSUITESPARSE_USE_STATIC=ON, then the build system will only look for
static versions of the libraries that are part of SuiteSparse, even if
dynamic/shared versions are present on the system. Thus, the default of
preferring dynamic libraries can be overridden.

SuiteSparse is rarely built ourselves, but still uncommon enough to not
be present on computing clusters.

This patch allows us to install the libraries on a workstation, for
instance from package suitesparse-devel and link to it statically
without having to maintain our own build tree.
2013-10-11 14:40:57 +02:00
Roland Kaufmann
ff3ba2dbb9 Use dSYM bundles as debugging containers (on MacOS X)
gdb on MacOS X does not seem to be very fond of "flat" dSYM files, but
it can read the bundle variant fine. Thus we change that to enable
debugging across several tools.
2013-10-06 18:04:57 +02:00
Bård Skaflestad
e578f47d8a Catch up to opm-material reorganisation.
Specifically, file <opm/material/constants.hh> was renamed to
<opm/material/Constants.hpp> and this renaming must be reflected in
the CMake probes for opm-material.
2013-10-06 18:04:56 +02:00
Andreas Lauser
0dfb58bc52 Findewoms.cmake: fix typo
it's 'start.hh', not 'start.h'...
2013-10-06 18:04:55 +02:00
Andreas Lauser
cf38685acd remove the dune-istl from the list of opm-material prerequisites
the only reason dune-istl was required was that the spline class used
ISTL's tridiagonal matrix. Since the spline class moved into the core
(along with a more capable tridiagonal matrix), ISTL is no longer
required by opm-material.
2013-09-24 15:39:50 +02:00
Andreas Lauser
4e3d76a090 add opm-core to the ewoms prerequisites 2013-09-24 15:39:49 +02:00
Roland Kaufmann
9b2cf047e5 Search for dune.module in private installations
When doing a private install of DUNE libraries, the dune.module file
is put in the lib/ directory, regardless of architecture.

This patch searches the lib/ directory as a catch-all after having
searched the platform-specific directories. This should minimize the
chance of hitting an accidentally unrelated dune.module.
2013-09-24 15:39:48 +02:00