Commit Graph

3713 Commits

Author SHA1 Message Date
Roland Kaufmann
51546a5c5f Function has a different name in the parallel vs. serial version 2013-08-07 01:13:08 +02:00
Roland Kaufmann
de83e28880 Use parallel version if and only if MPI is installed 2013-08-07 01:12:26 +02:00
Roland Kaufmann
142b5ed3f0 Enable use of parallel version of MUMPS
If we have enabled MPI, then we must call MPI_Init and MPI_Finalize
in the program anyway so we may as well use the parallel version of
MUMPS.
2013-08-07 00:32:52 +02:00
Roland Kaufmann
702582cdec Use system-provided MUMPS library for AGMG
This require us to compile in a small glue module which maps the
name of the internal routine to the system routine.
2013-08-07 00:28:33 +02:00
Roland Kaufmann
39833dc591 Don't add AGMG in an ad-hoc way
Use the standard prerequisite list instead.
2013-08-07 00:11:40 +02:00
Roland Kaufmann
9b8e53c0b7 Make opm-core pick up AGMG through the standard list 2013-08-07 00:10:47 +02:00
Roland Kaufmann
50d4f5aa25 Allow packages to add source code to the project
By returning a ${package}_SOURCES variable with the names of the code,
it will be propagated to ${project}_SOURCES and subsequently compiled
into the library.

AGMG (Algebraic Multigrid) uses this functionality.
2013-08-07 00:08:43 +02:00
Bård Skaflestad
f0c718fcaf Merge remote-tracking branch 'upstream/master' 2013-08-06 23:41:34 +02:00
Bård Skaflestad
273d70bebb Merge pull request #307 from rolk/307_clang
Recognize Clang to be a GCC-compatible compiler
2013-08-06 14:25:16 -07:00
Roland Kaufmann
aa4b7979a7 Recognize Clang to be a GCC-compatible compiler
Clang aims to be compatible with GCC when it comes to command-line
parameters. Where we enable functionality based on the presence of
a GCC-compiler, we can use the same functionality with Clang.

This patch introduces a new variable CXX_COMPAT_GCC which is true if
the compiler handles the same options as GCC, and this variable is
subsequently used in tests instead of CMAKE_COMPILER_IS_GNUCXX (which
remains if we need to test if we really have GCC, e.g. for version)
2013-08-06 23:06:09 +02:00
Bård Skaflestad
ee4514836c Merge remote-tracking branch 'upstream/master' 2013-08-06 22:48:39 +02:00
Bård Skaflestad
1168d19b43 Merge pull request #306 from rolk/306_ninja
Enable support for Ninja build generator
2013-08-06 13:48:05 -07:00
Roland Kaufmann
ec45e78a77 Enable support for Ninja build generator
Use the Ninja build generator if '--enable-ninja' is passed on the
command line to ./configure (or of course if -GNinja is passed
directly to CMake).
2013-08-06 22:13:44 +02:00
Bård Skaflestad
af07e2cb76 Merge remote-tracking branch 'upstream/master' 2013-08-06 21:56:00 +02:00
Bård Skaflestad
4557625b04 Merge pull request #305 from rolk/305_openmp
Provide a define for having OpenMP
2013-08-06 12:54:51 -07:00
Roland Kaufmann
2aced6ea25 Fix bug in determining if directory is found
The parenthesis is to make it less ambiguous how the boolean expression
should be evaluated.
2013-08-06 00:04:08 +02:00
Roland Kaufmann
aa01cf3014 Make available version numbers for these modules 2013-08-06 00:04:08 +02:00
Roland Kaufmann
ba16f55b7f Probe DUNE module version number from installation
Figure out where the closest dune.module is, and parse it for
information. The defines are added to config.h, so that our code
may behave differently for various versions available.

It actually works for opm-core 1.0 as well, but don't tell anyone;
we rather want people to use opm/core/version.h instead.

If a module has been backported and installed to a directory which
also contains the version number, e.g. /usr/include/dune-2.3, to
avoid clashing with an existing version in /usr/include, then this
part is now stripped from the include directory and added back to
the lib directory where we are looking for dune.module
2013-08-06 00:04:07 +02:00
Roland Kaufmann
f37e8cc402 Provide a define for having OpenMP 2013-08-05 21:54:31 +02:00
Roland Kaufmann
22a70f1438 Give template for adding version requirement 2013-08-05 21:09:09 +02:00
Roland Kaufmann
1490cd7389 Provide hook to configure getting other's version
This hook together with the bundled convenience macro makes it
possible to add the version of another module to config.h using
code like this:

macro (config_hook)
  opm_need_version_of ("dune-common")
endmacro (config_hook)
2013-08-05 21:09:09 +02:00
Roland Kaufmann
1e9d368012 Create a set of config variables for implementation
The config variables in _CONFIG_IMPL_VARS are only written to config.h
and not the .pc or -config.cmake files. They can thus only be used by
the implementation files and not the headers. Use this set to avoid
exposing the variables to other projects, when it is likely that a
probe used by that other project may turn up a different result.
2013-08-05 20:16:30 +02:00
Bård Skaflestad
f9e4ba6d4a Merge remote-tracking branch 'upstream/master' 2013-08-02 23:48:54 +02:00
Bård Skaflestad
4a4f7c379f Merge pull request #303 from rolk/303_libless
Add support to the build system for building header-only modulesi
2013-08-02 14:47:38 -07:00
Bård Skaflestad
f0d6a2e1c5 Merge pull request #302 from rolk/302_attic
Put old "non-unit-tests" in the attic instead
2013-08-02 14:34:21 -07:00
Bård Skaflestad
dcc0d6ff3b Merge pull request #301 from rolk/301_verteq
Add find module for opm-verteq to build system
2013-08-02 14:22:42 -07:00
Roland Kaufmann
26b910317a Only make target if there is any source files
If there is no source files, we set a blank target to signal to the
other components of the build system that they shouldn't be looking
for a library.
2013-08-02 21:55:57 +02:00
Roland Kaufmann
dd0d7425d1 Only include library if there is one 2013-08-02 21:55:51 +02:00
Roland Kaufmann
3ded5f5253 Don't install debug syms for a library that isn't there 2013-08-02 21:55:44 +02:00
Roland Kaufmann
2f0c6ea8a1 Issue warning about the status of files in the attic 2013-08-02 20:33:27 +02:00
Roland Kaufmann
fa5344ec3e Move old files into the attic
The attic are the place where files which we don't use right now, but
which we acknowledge some amount of valuable time has been spent on and
which may be usable some day in the future, so we don't have the
conscience to right out delete them.

These files are not expected to compile, and certainly not to run and
produce sensible results, anymore. However, with some work they can
possibly be converted into proper unit tests or examples.
2013-08-02 20:31:06 +02:00
Roland Kaufmann
8efd1c0aa9 Support compiling files that are in the attic
Since these files are not actively maintained, we don't assume that
the project actually has any, nor are they part of the default build.
2013-08-02 20:31:06 +02:00
Roland Kaufmann
0a7351a730 Use new style of prerequisite declaration
The prerequisites are now declared in their own file, so it can be
included by the main system. There is thus only one canonical place
where the list of prerequisites exist.
2013-08-02 20:08:15 +02:00
Bård Skaflestad
0dadf45dc9 Merge remote-tracking branch 'upstream/master' 2013-08-02 19:33:28 +02:00
Bård Skaflestad
53dab38e31 Merge pull request #297 from rolk/297_version
Make version number available to client code
2013-08-02 10:32:50 -07:00
Bård Skaflestad
0d1724ba9d Merge remote-tracking branch 'upstream/master' 2013-08-02 18:54:20 +02:00
Bård Skaflestad
dc859e30ac Merge pull request #300 from rolk/300_precomp
Further classify source files into languages

Needed, for instance, to properly assign derived properties to a subset
of the sources.  
  
This feature is used in the PCH module (UsePrecompHeaders.cmake)
2013-08-02 09:53:28 -07:00
Roland Kaufmann
88de0e6799 Provide CMake find module to locate opm-verteq 2013-08-02 14:58:52 +02:00
Roland Kaufmann
944935b0a3 Further classify source files into languages
Other modules (notably the precompiled header one) may set properties
directly on the source file; we need to separate them into categories
for which language they belong to.
2013-08-02 14:52:25 +02:00
Roland Kaufmann
e3638f770f Safe-guard against version mismatch
The version declared for the build system (in dune.module) is checked
against what is in the source (e.g. opm/core/version.h) and if these
don't match, then issue an author warning.

This will help us keep the two version numbers in sync., since it
becomes very obvious when we don't. The benefit for this is to not have
the build system start mucking with the code just to dump some static
information in there.
2013-08-02 10:24:49 +02:00
Roland Kaufmann
99eca2a247 Name #defines to be compatible with DUNE macros 2013-08-02 09:03:49 +02:00
Bård Skaflestad
4f11987bb7 Merge remote-tracking branch 'upstream/master' 2013-08-01 18:37:21 +02:00
Bård Skaflestad
900a21adb3 Merge pull request #296 from rolk/296_runpath
Embed original dependency paths in installed library
2013-08-01 09:36:54 -07:00
Andreas Lauser
667f056a73 Merge pull request #295 from rolk/295_cxxreq
Only fail if C++11 support is noted as REQUIRED
2013-08-01 06:33:05 -07:00
Roland Kaufmann
db90eff1c6 OPM Core uses C++11 features as of commit 562bcf2 2013-08-01 15:13:56 +02:00
Roland Kaufmann
e5fc56ee83 Exempt distribution packages from having RUNPATH
Files that are distributed as packages should always assume that all
the other libraries it depends on is as packages too, in the system
directories, so there is no need to have a RUNPATH embedded in them.
2013-08-01 14:32:59 +02:00
Roland Kaufmann
b46441085a Use RUNPATH in installed library by default
When checking out from source code, the paths that were used to
configure the project should be carried on to the installed binary,
so the same libraries are used without much effort.

By using RUNPATH instead of (just) RPATH, it can be overridden with
LD_LIBRARY_PATH if the user so desires.
2013-08-01 14:29:04 +02:00
Roland Kaufmann
e9874b75a4 Revert "Demote consequence of not having C++11 support"
This reverts commit d6c2e52d63. The C++11
find module now checks for the necessary level.
2013-08-01 13:44:27 +02:00
Roland Kaufmann
0ed0ac61e9 Only display an error message if C++11 support is noted as REQUIRED 2013-08-01 13:44:27 +02:00
Bård Skaflestad
7215936bce Merge remote-tracking branch 'upstream/master' 2013-08-01 12:41:04 +02:00