Commit Graph

3527 Commits

Author SHA1 Message Date
Roland Kaufmann
d15e657cac Search for directory containing build scripts
Currently only the source tree is "searched", but the template could
be expanded to look in another/more locations (or be specified
explicitly on the command-line with a --with-opm-macros= option)
2013-08-15 09:50:26 +02:00
Roland Kaufmann
f3d1f6ab11 Allow source location to be overridden
By default the configure script assumes that the source is located
relative to the script itself. By allowing this to be overridden, the
script can be shared by other projects, each passing their own location
as an extra parameter.
2013-08-15 00:03:21 +02:00
Roland Kaufmann
e14cb185ad Add a small bootstrapper to locate build system
Currently this bootstrapper only finds the macros that are located
in the cmake/ tree in this project. Projects that don't carry their
own build system can specify search locations here.
2013-08-15 00:03:17 +02:00
Roland Kaufmann
3df0f06f45 Use OPM_MACROS_ROOT to locate build scripts
By using a separate variable for this we can easily grep for where
the build system depends on its own location, and also change the
policy regarding this later.

Note that there is no opm-macros module; this is a "psuedo"-module
which links to an additional one (currently, the one we're in)
2013-08-14 21:26:28 +02:00
Roland Kaufmann
1922201a31 Show how to install CMake macros together with code
Currently this is disabled because no other project needs them (they
have their own copy in the source tree)
2013-08-14 21:19:41 +02:00
Roland Kaufmann
1e46bdaaa8 Allow adding project-specific install targets
If a project needs to install something that is very specific and not
in the general build, it can use this hook to setup additional targets.
2013-08-14 21:16:55 +02:00
Bård Skaflestad
65e0b36724 Merge pull request #318 from rolk/318_gridver
Publicly depend on version of dune-grid
2013-08-14 05:30:45 -07:00
Roland Kaufmann
1e8aecf36c Publicly depend on version of dune-grid
The interface of the class PersistentContainer changed between DUNE
2.2 and DUNE 2.3 in an incompatible way, so we need to present
different versions of the class depending on the version of DUNE linked
with. This changeset adds the version variables for dune-grid to the
list of publicly necessary #defines that must go into using
dune-cornerpoint.

Notice that this will cause the definition of DUNE_GRID_VERSION_XXX
to be added to the flags list of dune-cornerpoint. This can be seen as
either a bug or a feature. If you try to link first dune-cornerpoint to
one version and then to another version of DUNE later, there is a very
good chance that you'll end up with problems anyway.
2013-08-14 13:37:37 +02:00
Bård Skaflestad
9b313c2d2e Merge pull request #314 from rolk/314_agmg
Remove support for AGMG
2013-08-14 01:40:39 -07:00
Roland Kaufmann
e4cc0c7c8e Remove support for AGMG from the build system
AGMG is now under a closed-source license, meaning that results
obtained with this solver is not freely reproducible by others.
Its use is therefore discouraged.

As of version 2.3, the DUNE AMG parts are competitive, so there
is a free and open alternative.
2013-08-14 09:07:01 +02:00
Roland Kaufmann
ada41cc792 Remove bindings to AGMG from library
AGMG is now under a closed-source license, meaning that results
obtained with this solver is not freely reproducible by others.
Its use is therefore discouraged.

As of version 2.3, the DUNE AMG parts are competitive, so there
is a free and open alternative.
2013-08-13 23:25:04 +02:00
Bård Skaflestad
c50b62fe5a Merge pull request #308 from rolk/308_agmg
Resurrect support for AGMG library

This is an interim milestone that may serve as point from which to 
resurrect the AGMG suppert fully if the AGMG author ever decides to 
re-release the software under an open licence.
2013-08-13 14:17:38 -07:00
Roland Kaufmann
00f2092df2 Merge pull request #315 from andlaus/checks_for_quadmath_and_valgrind
add and use CMake modules for valgrind client requests and quadruple precision math
2013-08-13 12:23:47 -07:00
Andreas Lauser
ec202f2ba0 make the build system link to the "quadmath" library if it is supported
Thanks a lot to Roland Kaufmann for the support.
2013-08-13 21:02:52 +02:00
Andreas Lauser
3a94812c62 add a cmake check for the abi::__cxa_demangle() function
this was also forgotten. sorry...
2013-08-13 21:02:52 +02:00
Andreas Lauser
054c353606 add test for <type_traits> to FindCXX11Features.cmake
I fogot this one yesterday...
2013-08-13 21:02:52 +02:00
Andreas Lauser
41b7b316f7 add and use CMake modules for valgrind client requests and quadruple precision math 2013-08-13 21:00:18 +02:00
Bård Skaflestad
d13054e4e2 Merge pull request #313 from andlaus/use_std_shared_ptr
Use std shared ptr
2013-08-13 01:22:34 -07:00
Bård Skaflestad
876fa56489 Merge pull request #316 from rolk/316_material
OPM Porsol now depends on OPM Material
2013-08-12 01:54:44 -07:00
Roland Kaufmann
771fdbc3a9 OPM Porsol now depends on OPM Material
In the new build scheme, the prerequisites of each module is declared
in this file as the canonical version, and everything else includes it.
2013-08-09 22:15:19 +02:00
Andreas Lauser
bd094b2e11 replace boost::scoped_ptr by std::unique_ptr
thanks to Bård Skaflestad, Atgeirr Rasmusen and Roland Kaufmann for
the hint.
2013-08-08 15:21:38 +02:00
Andreas Lauser
cab7125da3 also test for std::unique_ptr 2013-08-08 15:21:13 +02:00
Andreas Lauser
6722ca33f5 add a few config.h macros useful for dune-common 2013-08-08 13:40:42 +02:00
Andreas Lauser
70949c6edb use std::shared_ptr instead of boost::shared_ptr
our policy is that we only use boost if necessary, i.e., if the oldest
supported compiler does not support a given feature but boost
does. since we recently switched to GCC 4.4 or newer, std::shared_ptr
is available unconditionally.
2013-08-08 13:25:58 +02:00
Andreas Lauser
b0349793fa detect the presence of std::shared_ptr
since GCC 4.4 supports it, make it mandatory as well...
2013-08-08 13:25:58 +02:00
Bård Skaflestad
ca44960c5e Merge pull request #298 from rolk/298_dunever
Make version numbers for DUNE prerequisites available
2013-08-08 04:10:25 -07:00
Bård Skaflestad
65dc3224b0 Merge pull request #312 from rolk/312_nolib
Allow several options to be used even if we don't have a library
2013-08-08 01:22:16 -07:00
Roland Kaufmann
262b0f7619 Only configure libtool for libraries that exist 2013-08-08 10:09:08 +02:00
Roland Kaufmann
6149756f3c Only build before library target if there is any 2013-08-08 10:09:08 +02:00
Roland Kaufmann
83becba87b Allow PCH option to be on even if there is no library 2013-08-08 10:08:50 +02:00
Bård Skaflestad
07dcca3917 Merge pull request #311 from rolk/311_material
Find module for opm-material
2013-08-08 00:40:26 -07:00
Roland Kaufmann
c1acffcd90 Upgrade Findopm-material to use separate prerequisite list
This will now be included both by the find module and by the project
file itself.
2013-08-08 00:11:49 +02:00
Roland Kaufmann
6e38909b49 Module mode CMake probe for opm-material 2013-08-07 23:19:06 +02:00
Bård Skaflestad
8e63169073 Merge pull request #310 from andlaus/allow-nolib
Build system: make it work for modules which do not need libraries
2013-08-07 08:12:47 -07:00
Andreas Lauser
0d14d25ef5 Build system: make it work for modules which do not need libraries 2013-08-07 16:06:05 +02:00
Bård Skaflestad
d67f0c74d4 Merge pull request #309 from rolk/309_clean
Have distclean target keep up with build improvements
2013-08-07 01:20:36 -07:00
Roland Kaufmann
0d2b7e63e7 Have distclean target keep up with build improvements
If you run `cmake --build . -- distclean` all generated files will
now be gone! This adds the files that have been introduced in later
improvements to the build system.
2013-08-07 10:08:58 +02:00
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
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
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
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