Commit Graph

162 Commits

Author SHA1 Message Date
Bård Skaflestad
ed3552cfb5 Merge pull request #319 from rolk/319_confvar
Trim unnecessary config.h defines from prerequisite list
2013-08-17 05:37:35 -07: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
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
8e4225fbb9 Add defines that are used in compilation modules
This define is used in a opm/*.c* file, but only there, and should
therefore be in config.h, but not added to the list that only clients
must also provide.
2013-08-14 20:49:52 +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
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
22a70f1438 Give template for adding version requirement 2013-08-05 21:09:09 +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
58d9e09d02 Added note about where to make likely modifications
People will head for CMakeLists.txt when making modifications (such
as adding a new file). This note directs them to where they should
rather look.
2013-07-30 14:20:34 +02:00
Roland Kaufmann
5ae4d44e54 Read project properties from dune.module
We cannot generate dune.module because that file is read by dunecontrol
before the build starts. It therefore make sense to let it be the
original and let the build system read it instead of duplicating the
information in CMakeLists.txt

This module is a adaption of Andreas Lauser's OpmParseDuneModule
in opm-material, modified to handle the more sparse info provided by
the other modules as well.
2013-07-30 14:11:26 +02:00
Roland Kaufmann
3f4695794d Eliminate _MODULE_DIR variable
It is only used in one place, where it can easily be replaced by its
expansion. The reason for removing it is that it depends on the name
of the project, and I intend to read this using a routine it the very
directory it is including, hence the need for a different approach.
2013-07-30 13:26:16 +02:00
Roland Kaufmann
9853407ded Refer to other project-specific files at top-level
Having the include statements here will hopefully lead to others
quickly finding the list of prerequisite files needed to build.
2013-07-05 00:58:29 +02:00
Roland Kaufmann
501e5ad0e9 Project-specific hooks no longer needs an extra arg.
This change is already implemented in its own commit, but the
CMakeLists.txt change is in its own commit to make it easier to
distribute the changes to other projects without merge conflicts.
2013-06-29 22:10:48 +02:00
Roland Kaufmann
df6c17a9c4 Use common library code and define customization in macros
Only the code that is special for this particular project is retained
in the main file; all the common code is imported from the cmake/
directory.
2013-06-25 23:55:58 +02:00
Bård Skaflestad
2b4298f366 Merge pull request #261 from rolk/261_parse
Sideport of OPM/opm-material@48f6d4d to opm-core
2013-06-20 04:55:27 -07:00
Bård Skaflestad
e3577085c2 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)
2013-06-20 13:30:57 +02:00
Roland Kaufmann
4cd16438ea 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.
2013-06-15 22:11:14 +02:00
Roland Kaufmann
1ae1405c21 Notify callbacks when a timestep has completed
Client code can do additional processing for the output of each
timestep.
2013-05-14 11:36:13 +02:00
Roland Kaufmann
2386325e57 Allow user to override our non-standard defaults
CMake loads option defaults from the platform file and then usually
proceeds to write these to the cache, so it is not possible to see
if an option was specified by the user, or was the default.

By setting CMAKE_NOT_USING_CONFIG_FLAGS, we regain control over the
options and can then set this to what we think is suitable, provided
that the user hasn't specified something for us.
2013-04-05 00:14:26 +02:00
Atgeirr Flø Rasmussen
22c46acbf0 Fix tinyxml exclusion. 2013-03-22 08:00:00 +01:00
Atgeirr Flø Rasmussen
9a2f2c48fd Fixed conditional compilation issues with UMFPACK.
This should fix the issue reported in #208 introduced in #203.
2013-03-19 10:30:27 +01:00
Roland Kaufmann
4fb05162cb Only use MPI if explicitly enabled
Running with MPI on a regular workstation will probably not increase
performance, so this should be disabled as default.
2013-03-15 11:38:45 +01:00
Roland Kaufmann
8dcca4cf9b Use camel-case in SuperLU's name
Originally, I added FindSuperLU with uppercase since the variables it
returned had that case. Now the scripts should be patched so that it
searched for uppercase amongst the variables as well, so the module
name can retain its original case (and for compatibility with DUNE)
2013-03-15 01:24:06 +01:00
Roland Kaufmann
54c89146d7 Enable CMake < 2.8.5 clients to report Git version 2013-03-13 01:02:03 +01:00
Roland Kaufmann
52a6b00752 Add direct dependency on dune-common
We need to link to the library provided by dune-common, but dune-istl
does not pull this one in transitively.
2013-03-13 00:02:54 +01:00
Atgeirr Flø Rasmussen
fc2d6ee81f Merge pull request #181 from rolk/182_openmp
Probe explicitly for OpenMP
2013-03-07 05:47:25 -08:00
Roland Kaufmann
406874bf6b Probe explicitly for OpenMP
opm-core contains code which has #pragma omp. Earlier, OpenMP was
detected as part of the probe for ERT. However, that probe got
smarter, and as a result doesn't probe for more than it needs. Thus,
we need to check for OpenMP explicitly in opm-core. (It is disabled
by default)
2013-03-07 13:51:57 +01:00
Roland Kaufmann
3ae89d0754 Print compiler version number when configuring 2013-03-07 11:23:51 +01:00
Roland Kaufmann
252d853147 Disable use of OpenMP by default
If support for OpenMP should be added, it must be specified by
setting an option. If not, then warnings for unknown pragmas are
disabled, so that the code can have #pragma omp witout getting
messages during build.
2013-03-07 00:17:46 +01:00
Roland Kaufmann
4942763ddd Use temp file for config vars to avoid rebuild
When generating the config.h configuration file, write to a temporary
first and then rename afterward to avoid touching the file and thus
triggering a complete rebuild (of everything that includes config.h)
unnecessarily.
2013-03-04 14:00:06 +01:00
Roland Kaufmann
234be65229 Specify source files explicitly rather than with glob
Files which constitutes compilation units are now specified explicitly
in the file CMakeLists_files.cmake rather than identified through a
glob. If this file is updated, a reconfigure should be triggered.

This also enables us to specify exactly which headers that should be
distributed as part of the installation package, and which programs
that should be used for unit testing.
2013-03-04 12:25:20 +01:00
Atgeirr Flø Rasmussen
0bfe185d43 Merge pull request #164 from atgeirr/remove-gnumakefile
Remove confusing GNUmakefile and document cmake building process.
2013-03-04 01:20:24 -08:00
Roland Kaufmann
dc3d94e985 Activate Fortran interface on demand
Not only if we need to compile Fortran code, but also if we need to call
some functions from a Fortran library from C code.
2013-03-04 09:46:32 +01:00
Atgeirr Flø Rasmussen
c5ccf7e093 Remove GNUmakefile, document cmake building.
The README now suggests using nice and make -j for multicore machines.
2013-02-25 17:45:22 +01:00
Roland Kaufmann
d818034537 Distinguish between AGMG and opm-core specific
The AGMG parts may be reusable in other projects
2013-02-22 10:59:06 +01:00
Roland Kaufmann
586ce1d35e Reorder dependency list
Should still be queried in topological order
2013-02-22 10:54:27 +01:00
Roland Kaufmann
f472f2e8ef Replace hardcoded opm-core name with variable 2013-02-22 10:53:10 +01:00
Roland Kaufmann
61289a0e0b Make project file easier to customize
Note where opm-core specific parts are, and put dependency listing to
the top where it is more noticable.
2013-02-22 10:08:50 +01:00
Roland Kaufmann
528a8e42f6 Specify source directory at the highest level
Some projects also have side directories for utilities etc.
2013-02-22 09:58:19 +01:00
Roland Kaufmann
c16864e7a5 Allow more variety in unit test program file names
They can now be called test_*.cpp or *_test.cpp
2013-02-22 09:58:19 +01:00
Roland Kaufmann
dfc9f70ee0 Consider directory itself to be part of datafiles
Previously the directory name was just entered as part of a glob; the
new version uses the satellite name as a directory and also makes sure
that this directory is available to run tests in, even if there are no
datafiles (the directory itself is now considered a datafile)
2013-02-22 09:58:18 +01:00
Roland Kaufmann
192e4595a5 Rename docu_dir -> doxy_dir to reflect its purpose 2013-02-22 09:58:18 +01:00
Roland Kaufmann
5810819b95 Allow some template files to keep their Autotools dirs
By using the abs_top_{build,src}dir variables, template files can
co-exist between Autotools and CMake build systems.
2013-02-21 10:24:21 +01:00
Roland Kaufmann
01fc743d41 Only write message if operation actually performed
Wording of the message was so that one could believe that a libtool
archive had been written even though it had not.
2013-02-20 23:55:26 +01:00
Bård Skaflestad
42e1fc6d10 Merge pull request #155 from rolk/153_datafiles
Make `make test` work on release builds
2013-02-20 05:20:57 -08:00
Roland Kaufmann
7b046ce5a8 Quote output correctly 2013-02-19 22:58:35 +01:00
Roland Kaufmann
9328cb896e Protect against underlinking of UMFPACK library
If libumfpack.so does not declare an explicit dependency on libamd.so,
the linker option -Wl,--as-needed will cause an undefined reference
since we don't use libamd.so ourself. If the configuration determines
that this may be the case, a linker option that forces linking the the
AMD library is added for the SuiteSparse library, and the general
configuration then gets out of the way if this is set.
2013-02-19 13:15:00 +01:00
Atgeirr Flø Rasmussen
0af4c3bbca Merge pull request #146 from rolk/0146_testing_dep
Remove dependency on Boost.Test from main library
2013-02-15 01:31:15 -08:00
Roland Kaufmann
b2520ab9cb Print CMake and OS version info to configuration log
Instead of asking the user which distribution it is, this will now be
visible from the log (which is included when uploading CTest runs)
2013-02-15 10:13:14 +01:00