Compare commits
133 Commits
release/20
...
testing/20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67a8d5b553 | ||
|
|
e3ff47dd9f | ||
|
|
15aba45d53 | ||
|
|
da654bde90 | ||
|
|
19aaeff10a | ||
|
|
f3be13c5af | ||
|
|
579a648ebc | ||
|
|
08b659fe11 | ||
|
|
531fb27ba1 | ||
|
|
0024fd9052 | ||
|
|
65b4a7cc96 | ||
|
|
62c2b15c29 | ||
|
|
5df5c59c27 | ||
|
|
98728e91f7 | ||
|
|
5c731bf2ce | ||
|
|
bea6eb9240 | ||
|
|
5500dcfe8b | ||
|
|
8502fdd324 | ||
|
|
073e0c809c | ||
|
|
9e88a3d4e7 | ||
|
|
d997b26bf9 | ||
|
|
b9dde75a4d | ||
|
|
19ca0e291b | ||
|
|
2c00b418b5 | ||
|
|
b7302a5ace | ||
|
|
89b84ccde4 | ||
|
|
d361bd8766 | ||
|
|
9602be7ca0 | ||
|
|
f147dd9589 | ||
|
|
eaf09f34c3 | ||
|
|
ed50891e5f | ||
|
|
cdbcb74e5e | ||
|
|
6d2194edc2 | ||
|
|
fbec9b1e0d | ||
|
|
2b342ce3f0 | ||
|
|
2aedb2407f | ||
|
|
fa3a6a1b13 | ||
|
|
cd4c0f54fb | ||
|
|
a7402e5720 | ||
|
|
6332d56c2c | ||
|
|
e6c4d4f0d0 | ||
|
|
530791ede3 | ||
|
|
f8ef8dbe07 | ||
|
|
cb46a93dca | ||
|
|
ec96d6e9c9 | ||
|
|
e86d9b8b73 | ||
|
|
0a7a9f65a3 | ||
|
|
7d7dd7e582 | ||
|
|
cf06e2c00b | ||
|
|
8aa6894a88 | ||
|
|
1be92935b0 | ||
|
|
d1a3e4a872 | ||
|
|
0dc982c005 | ||
|
|
5c62c6e96f | ||
|
|
d38658858d | ||
|
|
176d0b188e | ||
|
|
41c3eb7ff0 | ||
|
|
8d8e612356 | ||
|
|
40bb3159ea | ||
|
|
be3f1ed59b | ||
|
|
2313ab4029 | ||
|
|
554b5ff1b6 | ||
|
|
98959d4a08 | ||
|
|
f9311b96f3 | ||
|
|
26974f28ef | ||
|
|
e0105c6ccf | ||
|
|
7462cc4b96 | ||
|
|
726496c0b6 | ||
|
|
f979d1942f | ||
|
|
59319936e0 | ||
|
|
afc5903dfa | ||
|
|
481d416c22 | ||
|
|
1788ecc1f0 | ||
|
|
52c05e6525 | ||
|
|
7222b210c7 | ||
|
|
dcdb444050 | ||
|
|
7843964163 | ||
|
|
8984579e77 | ||
|
|
1854c37b5b | ||
|
|
57fa257642 | ||
|
|
46144e814a | ||
|
|
3d096a54ec | ||
|
|
70bec15988 | ||
|
|
f17880579c | ||
|
|
7b4bd58a82 | ||
|
|
aac2166cb8 | ||
|
|
14efa7ed38 | ||
|
|
6f6801a5f2 | ||
|
|
fa47d6a623 | ||
|
|
29e12bfa79 | ||
|
|
d406e9f344 | ||
|
|
15583bdec6 | ||
|
|
c15c3b6b9f | ||
|
|
bfeef48fbd | ||
|
|
5a706c635e | ||
|
|
bf656cd28f | ||
|
|
15f4d7e808 | ||
|
|
264f621021 | ||
|
|
35bd292fdf | ||
|
|
5100db5694 | ||
|
|
fa3bba5510 | ||
|
|
bbc8d23473 | ||
|
|
2ee1224917 | ||
|
|
2ddb6ac8c2 | ||
|
|
825b96c1a3 | ||
|
|
8b3a4a6e23 | ||
|
|
6608bc87e4 | ||
|
|
ec63c6b7fd | ||
|
|
4398342048 | ||
|
|
c62f91154a | ||
|
|
00debb5e08 | ||
|
|
2724aae005 | ||
|
|
f48a647fc8 | ||
|
|
f6fb9d09c4 | ||
|
|
bb1040df70 | ||
|
|
05e1bd64a9 | ||
|
|
5344392b99 | ||
|
|
ebe3457064 | ||
|
|
1c5a17b6e8 | ||
|
|
596bafb2e7 | ||
|
|
dbad03c62f | ||
|
|
2ce0810f68 | ||
|
|
69da5816d6 | ||
|
|
b4fd17e9a7 | ||
|
|
bf31f7b4e9 | ||
|
|
c7cf7d8144 | ||
|
|
34ed49d765 | ||
|
|
b75f24afc2 | ||
|
|
4696486879 | ||
|
|
e0a146708c | ||
|
|
1352e89d4e | ||
|
|
b46d3df2f7 | ||
|
|
4d31c7efdc |
@@ -8,6 +8,7 @@ addons:
|
||||
sources:
|
||||
- boost-latest
|
||||
- ubuntu-toolchain-r-test
|
||||
- george-edison55-precise-backports
|
||||
packages:
|
||||
- libboost1.55-all-dev
|
||||
- gcc-4.8
|
||||
@@ -17,6 +18,14 @@ addons:
|
||||
- libgmp3-dev
|
||||
- libsuitesparse-dev
|
||||
- libeigen3-dev
|
||||
- bc
|
||||
- cmake
|
||||
- cmake-data
|
||||
|
||||
env:
|
||||
global:
|
||||
- TRAVIS_CI=1
|
||||
|
||||
|
||||
before_script:
|
||||
- export CXX="g++-4.8" CC="gcc-4.8" FC="gfortran-4.8"
|
||||
|
||||
@@ -12,7 +12,7 @@ endmacro (dir_hook)
|
||||
set(OPM_PROJECT_EXTRA_CODE_INSTALLED "set(OPM_MACROS_ROOT ${CMAKE_INSTALL_PREFIX}/share/opm)
|
||||
list(APPEND CMAKE_MODULE_PATH \${OPM_MACROS_ROOT}/cmake/Modules)")
|
||||
|
||||
set(OPM_PROJECT_EXTRA_CODE_INTREE "set(OPM_MACROS_ROOT ${OPM_COMMON_ROOT})
|
||||
set(OPM_PROJECT_EXTRA_CODE_INTREE "set(OPM_MACROS_ROOT ${OPM_MACROS_ROOT})
|
||||
list(APPEND CMAKE_MODULE_PATH \${OPM_MACROS_ROOT}/cmake/Modules)")
|
||||
|
||||
# project information is in dune.module. Read this file and set variables.
|
||||
|
||||
@@ -54,6 +54,9 @@ list (APPEND PROGRAM_SOURCE_FILES
|
||||
list( APPEND PUBLIC_HEADER_FILES
|
||||
opm/common/ErrorMacros.hpp
|
||||
opm/common/Exceptions.hpp
|
||||
opm/common/ResetLocale.hpp
|
||||
opm/common/Unused.hpp
|
||||
opm/common/Valgrind.hpp
|
||||
opm/common/data/SimulationDataContainer.hpp
|
||||
opm/common/OpmLog/CounterLog.hpp
|
||||
opm/common/OpmLog/EclipsePRTLog.hpp
|
||||
|
||||
@@ -33,23 +33,34 @@ include(CheckIncludeFileCXX)
|
||||
# macro to only add option once
|
||||
include(AddOptions)
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
if(NOT MSVC)
|
||||
# try to use compiler flag -std=c++11
|
||||
CHECK_CXX_ACCEPTS_FLAG("-std=c++11" CXX_FLAG_CXX11)
|
||||
if(CXX_FLAG_CXX11)
|
||||
add_options (CXX ALL_BUILDS "-std=c++11")
|
||||
set(CXX_STD0X_FLAGS "-std=c++11")
|
||||
else()
|
||||
# try to use compiler flag -std=c++0x for older compilers
|
||||
CHECK_CXX_ACCEPTS_FLAG("-std=c++0x" CXX_FLAG_CXX0X)
|
||||
if(CXX_FLAG_CXX0X)
|
||||
add_options (CXX ALL_BUILDS "-std=c++0x")
|
||||
set(CXX_STD0X_FLAGS "-std=c++0x")
|
||||
endif(CXX_FLAG_CXX0X)
|
||||
endif(CXX_FLAG_CXX11)
|
||||
endif(NOT MSVC)
|
||||
# Force CXX Standard cross platfrom for CMakeVersion >=3.1
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
||||
|
||||
if(NOT MSVC)
|
||||
foreach(_flag "14" "11")
|
||||
set(_FLAG "CXX_FLAG_CXX${_flag}")
|
||||
string(TOUPPER ${_FLAG} _FLAG)
|
||||
# try to use compiler flag -std=c++${_flag}
|
||||
CHECK_CXX_ACCEPTS_FLAG("-std=c++${_flag}" ${_FLAG})
|
||||
|
||||
if(${_FLAG})
|
||||
if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
add_options (CXX ALL_BUILDS "-std=c++${_flag}")
|
||||
endif()
|
||||
set(CXX_STD0X_FLAGS "-std=c++${_flag}")
|
||||
#Use vriables for CMake > 3.1 set the standard with no extensions
|
||||
set(CMAKE_CXX_STANDARD ${_flag})
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
endif(NOT MSVC)
|
||||
endif()
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
# if we are building with an Apple toolchain in MacOS X,
|
||||
# we cannot use the old GCC 4.2 fork, but must use the
|
||||
# new runtime library
|
||||
@@ -58,8 +69,8 @@ if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
if (APPLE AND (_comp_id MATCHES "CLANG"))
|
||||
CHECK_CXX_ACCEPTS_FLAG ("-stdlib=libc++" CXX_FLAG_STDLIB_LIBCXX)
|
||||
if (CXX_FLAG_STDLIB_LIBCXX)
|
||||
add_options (CXX ALL_BUILDS "-stdlib=libc++")
|
||||
set (CXX_STDLIB_FLAGS "-stdlib=libc++")
|
||||
add_options (CXX ALL_BUILDS "-stdlib=libc++")
|
||||
set (CXX_STDLIB_FLAGS "-stdlib=libc++")
|
||||
endif (CXX_FLAG_STDLIB_LIBCXX)
|
||||
endif (APPLE AND (_comp_id MATCHES "CLANG"))
|
||||
|
||||
@@ -69,13 +80,9 @@ if(CMAKE_VERSION VERSION_LESS 3.1)
|
||||
else (CXX_STD0X_FLAGS AND CXX_STDLIB_FLAGS)
|
||||
set (CXX_SPACE)
|
||||
endif (CXX_STD0X_FLAGS AND CXX_STDLIB_FLAGS)
|
||||
else()
|
||||
if(NOT CMAKE_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
endif()
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.1)
|
||||
# Workaround bug in cmake:
|
||||
# cxx standard flags are not applied in CheckCXXSourceCompiles
|
||||
if (CMAKE_CXX_STANDARD EQUAL 14)
|
||||
@@ -85,6 +92,7 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# perform tests
|
||||
include(CheckCXXSourceCompiles)
|
||||
|
||||
|
||||
11
cmake/Modules/FindClangCheck.cmake
Normal file
11
cmake/Modules/FindClangCheck.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
# Find clang-check.
|
||||
#
|
||||
# This module defines:
|
||||
# CLANGCHECK_PROGRAM, the clang-check executable.
|
||||
# CLANGHCECK_FOUND, If false, do not try to use cppcheck.
|
||||
#
|
||||
find_program(CLANGCHECK_PROGRAM NAMES clang-check clang-check-3.8)
|
||||
|
||||
find_package_handle_standard_args(ClangCheck DEFAULT_MSG CLANGCHECK_PROGRAM)
|
||||
|
||||
mark_as_advanced(CLANGCHECK_PROGRAM)
|
||||
11
cmake/Modules/FindCppCheck.cmake
Normal file
11
cmake/Modules/FindCppCheck.cmake
Normal file
@@ -0,0 +1,11 @@
|
||||
# Find CppCheck.
|
||||
#
|
||||
# This module defines:
|
||||
# CPPCHECK_PROGRAM, the cppcheck executable.
|
||||
# CPPCHECK_FOUND, If false, do not try to use cppcheck.
|
||||
#
|
||||
find_program(CPPCHECK_PROGRAM NAMES cppcheck)
|
||||
|
||||
find_package_handle_standard_args(CppCheck DEFAULT_MSG CPPCHECK_PROGRAM)
|
||||
|
||||
mark_as_advanced(CPPCHECK_PROGRAM)
|
||||
@@ -33,7 +33,7 @@ endif (ERT_ROOT)
|
||||
find_path (ERT_ECL_INCLUDE_DIR
|
||||
NAMES "ert/ecl/ecl_util.h"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libecl/include/" "include"
|
||||
DOC "Path to ERT Eclipse library header files"
|
||||
${_no_default_path}
|
||||
@@ -41,7 +41,7 @@ find_path (ERT_ECL_INCLUDE_DIR
|
||||
find_path (ERT_ECL_WELL_INCLUDE_DIR
|
||||
NAMES "ert/ecl_well/well_const.h"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libecl_well/include/" "include"
|
||||
DOC "Path to ERT Eclipse library header files"
|
||||
${_no_default_path}
|
||||
@@ -49,7 +49,7 @@ find_path (ERT_ECL_WELL_INCLUDE_DIR
|
||||
find_path (ERT_ECLXX_INCLUDE_DIR
|
||||
NAMES "ert/ecl/EclKW.hpp"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libeclxx/include/" "include"
|
||||
DOC "Path to ERT Eclipse C++ library header files"
|
||||
${_no_default_path}
|
||||
@@ -57,7 +57,7 @@ find_path (ERT_ECLXX_INCLUDE_DIR
|
||||
find_path (ERT_UTIL_INCLUDE_DIR
|
||||
NAMES "ert/util/stringlist.h"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libert_util/include/" "include"
|
||||
DOC "Path to ERT Eclipse library header files"
|
||||
${_no_default_path}
|
||||
@@ -65,7 +65,7 @@ find_path (ERT_UTIL_INCLUDE_DIR
|
||||
find_path (ERT_UTILXX_INCLUDE_DIR
|
||||
NAMES "ert/util/ert_unique_ptr.hpp"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libert_utilxx/include/" "include"
|
||||
DOC "Path to ERT Eclipse C++ library header files"
|
||||
${_no_default_path}
|
||||
@@ -73,7 +73,7 @@ find_path (ERT_UTILXX_INCLUDE_DIR
|
||||
find_path (ERT_GEN_INCLUDE_DIR
|
||||
NAMES "ert/util/int_vector.h"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATHS "${PROJECT_SOURCE_DIR}/../libecl" "${PROJECT_SOURCE_DIR}/../ert"
|
||||
PATH_SUFFIXES "libert_util/include"
|
||||
"include" "build/libert_util/include" "build/libert_util/include"
|
||||
DOC "Path to ERT generated library header files"
|
||||
@@ -88,7 +88,10 @@ endif (CMAKE_SIZEOF_VOID_P)
|
||||
find_library (ERT_LIBRARY_ECL
|
||||
NAMES "ecl"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -98,7 +101,10 @@ find_library (ERT_LIBRARY_ECL
|
||||
find_library (ERT_LIBRARY_ECLXX
|
||||
NAMES "eclxx"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -108,7 +114,10 @@ find_library (ERT_LIBRARY_ECLXX
|
||||
find_library (ERT_LIBRARY_ECL_WELL
|
||||
NAMES "ecl_well"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -118,7 +127,10 @@ find_library (ERT_LIBRARY_ECL_WELL
|
||||
find_library (ERT_LIBRARY_GEOMETRY
|
||||
NAMES "ert_geometry"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -128,7 +140,10 @@ find_library (ERT_LIBRARY_GEOMETRY
|
||||
find_library (ERT_LIBRARY_UTIL
|
||||
NAMES "ert_util"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -138,7 +153,10 @@ find_library (ERT_LIBRARY_UTIL
|
||||
find_library (ERT_LIBRARY_UTILXX
|
||||
NAMES "ert_utilxx"
|
||||
HINTS "${ERT_ROOT}"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../ert"
|
||||
PATHS "${PROJECT_BINARY_DIR}/../libecl"
|
||||
"${PROJECT_SOURCE_DIR}/../libecl/build"
|
||||
"${PROJECT_BINARY_DIR}/../libecl-build"
|
||||
"${PROJECT_BINARY_DIR}/../ert"
|
||||
"${PROJECT_SOURCE_DIR}/../ert/build"
|
||||
"${PROJECT_BINARY_DIR}/../ert-build"
|
||||
PATH_SUFFIXES "lib" "lib/Release" "lib/Debug" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
@@ -242,9 +260,10 @@ if (NOT (ERT_INCLUDE_DIR MATCHES "-NOTFOUND" OR ERT_LIBRARIES MATCHES "-NOTFOUND
|
||||
set (CMAKE_REQUIRED_INCLUDES ${ERT_INCLUDE_DIR})
|
||||
set (CMAKE_REQUIRED_LIBRARIES ${ERT_LIBRARIES})
|
||||
check_cxx_source_compiles (
|
||||
"#include <ert/ecl/EclKW.hpp>
|
||||
"#include <ert/ecl/ecl_grid.h>
|
||||
int main ( ) {
|
||||
ERT::EclKW< int > kw( ecl_kw_alloc( \"SATNUM\", 0, ECL_INT_TYPE ) );
|
||||
ecl_grid_type * grid = ecl_grid_alloc_rectangular( 10,10,10,1,1,1, NULL);
|
||||
ecl_grid_free( grid );
|
||||
return 0;
|
||||
}" HAVE_ERT)
|
||||
cmake_pop_check_state ()
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
# SUPERLU_LIBRARIES Name to the SuperLU library.
|
||||
#
|
||||
|
||||
if(NOT USE_SUPERLU)
|
||||
return()
|
||||
endif()
|
||||
|
||||
include(CheckIncludeFiles)
|
||||
include(CMakePushCheckState)
|
||||
include(CheckCSourceCompiles)
|
||||
@@ -118,6 +122,19 @@ int main(void)
|
||||
return 0;
|
||||
}"
|
||||
SUPERLU_POST_2005_VERSION)
|
||||
|
||||
# check whether version is at least 5.0
|
||||
CHECK_C_SOURCE_COMPILES("
|
||||
typedef int int_t;
|
||||
#include <supermatrix.h>
|
||||
#include <slu_util.h>
|
||||
int main(void)
|
||||
{
|
||||
GlobalLU_t glu;
|
||||
return 0;
|
||||
}"
|
||||
SUPERLU_MIN_VERSION_5)
|
||||
|
||||
cmake_pop_check_state()
|
||||
|
||||
if(SUPERLU_MIN_VERSION_4_3)
|
||||
@@ -128,6 +145,17 @@ else()
|
||||
"Human readable string containing SuperLU version information.")
|
||||
endif()
|
||||
|
||||
if(SUPERLU_MIN_VERSION_5)
|
||||
include(UseDuneVer)
|
||||
find_dune_version("dune" "istl")
|
||||
set(DUNE_ISTL_VERSION ${DUNE_ISTL_VERSION_MAJOR}.${DUNE_ISTL_VERSION_MINOR}.${DUNE_ISTL_VERSION_REVISION})
|
||||
if(DUNE_ISTL_VERSION VERSION_LESS 2.5)
|
||||
message(STATUS "SuperLU requested, but version found not compatible with dune-istl ${DUNE_ISTL_VERSION}")
|
||||
set(SUPERLU_LIBRARY "")
|
||||
set(SUPERLU_INCLUDE_DIR "")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# behave like a CMake module is supposed to behave
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
# - Find TinyXML library
|
||||
#
|
||||
# Defines the following variables:
|
||||
# TinyXML_INCLUDE_DIRS Directory of header files
|
||||
# TinyXML_LIBRARIES Directory of shared object files
|
||||
# TinyXML_DEFINITIONS Defines that must be set to compile
|
||||
|
||||
# Copyright (C) 2012 Uni Research AS
|
||||
# This code is licensed under The GNU General Public License v3.0
|
||||
|
||||
# use the generic find routine
|
||||
include (OpmPackage)
|
||||
find_opm_package (
|
||||
# module name
|
||||
"TinyXML"
|
||||
|
||||
# dependencies
|
||||
""
|
||||
|
||||
# header to search for
|
||||
"tinyxml.h"
|
||||
|
||||
# library to search for
|
||||
"tinyxml"
|
||||
|
||||
# defines to be added to compilations
|
||||
""
|
||||
|
||||
# test program
|
||||
"#include <tinyxml.h>
|
||||
int main (void) {
|
||||
TiXmlDocument doc;
|
||||
return 0;
|
||||
}
|
||||
"
|
||||
# config variables
|
||||
"")
|
||||
@@ -20,8 +20,8 @@ endif (CJSON_ROOT)
|
||||
find_path (CJSON_INCLUDE_DIR
|
||||
NAMES "cjson/cJSON.h"
|
||||
HINTS "${CJSON_ROOT}"
|
||||
PATHS "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/../opm-parser"
|
||||
PATH_SUFFIXES "include" "opm/json"
|
||||
PATHS "${PROJECT_SOURCE_DIR}"
|
||||
PATH_SUFFIXES "include" "external"
|
||||
DOC "Path to cjson library header files"
|
||||
${_no_default_path} )
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ find_opm_package (
|
||||
"#include <dune/grid/onedgrid.hh>
|
||||
int main (void) {
|
||||
Dune::OneDGrid grid(1, 0., 1.);
|
||||
return grid.lbegin<0>(0) == grid.lend<0>(0);
|
||||
return grid.size(0);
|
||||
}
|
||||
"
|
||||
# config variables
|
||||
|
||||
@@ -21,7 +21,7 @@ find_opm_package (
|
||||
"${opm-core_DEPS}"
|
||||
|
||||
# header to search for
|
||||
"opm/core/grid.h"
|
||||
"opm/core/wells.h"
|
||||
|
||||
# library to search for
|
||||
"opmcore"
|
||||
@@ -30,12 +30,13 @@ find_opm_package (
|
||||
""
|
||||
|
||||
# test program
|
||||
"#include <opm/core/grid.h>
|
||||
int main (void) {
|
||||
struct UnstructuredGrid *g;
|
||||
g = create_grid_empty ();
|
||||
destroy_grid (g);
|
||||
return 0;
|
||||
"
|
||||
#include <opm/core/utility/parameters/ParameterGroup.hpp>
|
||||
int main()
|
||||
{
|
||||
Opm::ParameterGroup parameters;
|
||||
parameters.insertParameter(\"number\", \"7\");
|
||||
return 0;
|
||||
}
|
||||
"
|
||||
# config variables
|
||||
|
||||
@@ -17,8 +17,8 @@ endif()
|
||||
if (EXISTS "${_opm_data_root}/norne/NORNE_ATW2013.DATA")
|
||||
set( HAVE_OPM_DATA True )
|
||||
set( OPM_DATA_ROOT ${_opm_data_root} )
|
||||
message( "-- Setting OPM_DATA_ROOT: ${OPM_DATA_ROOT}")
|
||||
message(STATUS "Setting OPM_DATA_ROOT: ${OPM_DATA_ROOT}")
|
||||
else()
|
||||
set( HAVE_OPM_DATA False )
|
||||
message( "opm-data not found - integration tests using opm-data will be skipped.")
|
||||
endif()
|
||||
message(WARNING "opm-data not found - integration tests using opm-data will be skipped.")
|
||||
endif()
|
||||
|
||||
@@ -18,13 +18,6 @@ else ()
|
||||
set (OPM_PARSER_QUIET "")
|
||||
endif ()
|
||||
|
||||
# use lowercase versions of the variables if those are set
|
||||
if (opm-parser_ROOT)
|
||||
set (OPM_PARSER_ROOT ${opm-parser_ROOT})
|
||||
endif ()
|
||||
if (opm_ROOT)
|
||||
set (OPM_ROOT ${opm_ROOT})
|
||||
endif ()
|
||||
|
||||
# inherit "suite" root if not specifically set for this library
|
||||
if ((NOT OPM_PARSER_ROOT) AND OPM_ROOT)
|
||||
@@ -50,120 +43,24 @@ else ()
|
||||
"${PROJECT_BINARY_DIR}/../../opm-parser/${BUILD_DIR_SUFFIX}")
|
||||
endif ()
|
||||
|
||||
# use this header as signature
|
||||
find_path (OPM_PARSER_INCLUDE_DIR
|
||||
NAMES "opm/parser/eclipse/Parser/Parser.hpp"
|
||||
HINTS "${OPM_PARSER_ROOT}"
|
||||
PATHS ${_opm_parser_source}
|
||||
PATH_SUFFIXES "include"
|
||||
DOC "Path to OPM parser header files"
|
||||
${_no_default_path} )
|
||||
|
||||
find_path (OPM_PARSER_GEN_INCLUDE_DIR
|
||||
NAMES "opm/parser/eclipse/Parser/ParserKeywords.hpp"
|
||||
HINTS "${OPM_PARSER_ROOT}"
|
||||
PATHS ${_opm_parser_build}
|
||||
PATH_SUFFIXES "generated-source/include" "include"
|
||||
DOC "Path to OPM parser generated header files"
|
||||
${_no_default_path} )
|
||||
find_package(opm-parser CONFIG HINTS ${_opm_parser_build})
|
||||
if (opm-parser_FOUND)
|
||||
find_package(ecl REQUIRED)
|
||||
find_package(Boost 1.44.0
|
||||
COMPONENTS regex filesystem system date_time
|
||||
REQUIRED)
|
||||
set(HAVE_OPM_PARSER 1)
|
||||
# setting HAVE_ERT is a mega hack here, but some downstreams require it.
|
||||
# Eventually projets should move on to properly handle dependencies and
|
||||
# configurations, and Findopm-parser be deprecated
|
||||
set(HAVE_ERT 1)
|
||||
set(opm-parser_CONFIG_VARS HAVE_OPM_PARSER HAVE_REGEX HAVE_ERT)
|
||||
set(opm-parser_LIBRARIES opmparser)
|
||||
|
||||
|
||||
# backup: if we didn't find any headers there, but a CMakeCache.txt,
|
||||
# then it is probably a build directory; read the CMake cache of
|
||||
# opm-parser to figure out where the source directory is
|
||||
if ((NOT OPM_PARSER_INCLUDE_DIR) AND
|
||||
(OPM_PARSER_ROOT AND (EXISTS "${OPM_PARSER_ROOT}/CMakeCache.txt")))
|
||||
set (_regex "^OPMParser_SOURCE_DIR:STATIC=\(.*\)$")
|
||||
file (STRINGS
|
||||
"${OPM_PARSER_ROOT}/CMakeCache.txt"
|
||||
_cache_entry
|
||||
REGEX "${_regex}")
|
||||
string(REGEX REPLACE "${_regex}" "\\1"
|
||||
OPM_PARSER_INCLUDE_DIR
|
||||
"${_cache_entry}")
|
||||
if (OPM_PARSER_INCLUDE_DIR)
|
||||
set (OPM_PARSER_INCLUDE_DIR "${OPM_PARSER_INCLUDE_DIR}"
|
||||
CACHE PATH "Path to OPM parser header files" FORCE)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
# find out the size of a pointer. this is required to only search for
|
||||
# libraries in the directories relevant for the architecture
|
||||
if (CMAKE_SIZEOF_VOID_P)
|
||||
math (EXPR _BITS "8 * ${CMAKE_SIZEOF_VOID_P}")
|
||||
endif ()
|
||||
|
||||
# these libraries constitute the parser core
|
||||
find_library (OPM_PARSER_LIBRARY
|
||||
NAMES "opmparser"
|
||||
HINTS "${OPM_PARSER_ROOT}"
|
||||
PATHS ${_opm_parser_build}
|
||||
PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
"opm/parser/eclipse"
|
||||
DOC "Path to OPM parser library archive/shared object files"
|
||||
${_no_default_path} )
|
||||
|
||||
# find the OPM-parser wrapper library around cJSON
|
||||
find_library (OPM_JSON_LIBRARY
|
||||
NAMES "opmjson"
|
||||
HINTS "${OPM_PARSER_ROOT}"
|
||||
PATHS ${_opm_parser_build}
|
||||
PATH_SUFFIXES "lib" "lib${_BITS}" "lib/${CMAKE_LIBRARY_ARCHITECTURE}"
|
||||
"opm/json"
|
||||
DOC "Path to OPM JSON library archive/shared object files"
|
||||
${_no_default_path} )
|
||||
|
||||
# get the prerequisite ERT libraries
|
||||
if (NOT ERT_FOUND)
|
||||
find_package(ERT ${OPM_PARSER_QUIET})
|
||||
endif ()
|
||||
|
||||
# get the prerequisite Boost libraries
|
||||
find_package(Boost 1.44.0 COMPONENTS filesystem date_time system unit_test_framework regex ${OPM_PARSER_QUIET})
|
||||
|
||||
if (ERT_FOUND AND Boost_FOUND AND
|
||||
OPM_PARSER_LIBRARY AND OPM_JSON_LIBRARY AND OPM_PARSER_INCLUDE_DIR)
|
||||
# setup list of all required libraries to link with opm-parser. notice that
|
||||
# we use the plural form to get *all* the libraries needed by cjson
|
||||
set (opm-parser_INCLUDE_DIRS
|
||||
${OPM_PARSER_INCLUDE_DIR}
|
||||
${OPM_PARSER_GEN_INCLUDE_DIR}
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${ERT_INCLUDE_DIRS})
|
||||
|
||||
set (opm-parser_LIBRARIES
|
||||
${OPM_PARSER_LIBRARY}
|
||||
${OPM_JSON_LIBRARY}
|
||||
${Boost_LIBRARIES}
|
||||
${ERT_LIBRARIES})
|
||||
|
||||
# see if we can compile a minimum example
|
||||
# CMake logical test doesn't handle lists (sic)
|
||||
include (CMakePushCheckState)
|
||||
include (CheckCSourceCompiles)
|
||||
cmake_push_check_state ()
|
||||
set (CMAKE_REQUIRED_INCLUDES ${opm-parser_INCLUDE_DIRS})
|
||||
set (CMAKE_REQUIRED_LIBRARIES ${opm-parser_LIBRARIES})
|
||||
|
||||
check_cxx_source_compiles (
|
||||
"#include <cstdlib>
|
||||
#include <opm/parser/eclipse/Deck/Deck.hpp>
|
||||
|
||||
int main (void) {
|
||||
return EXIT_SUCCESS;
|
||||
}" HAVE_OPM_PARSER)
|
||||
cmake_pop_check_state ()
|
||||
endif()
|
||||
|
||||
# if the test program didn't compile, but was required to do so, bail
|
||||
# out now and display an error; otherwise limp on
|
||||
set (OPM_PARSER_FIND_REQUIRED ${opm-parser_FIND_REQUIRED})
|
||||
find_package_handle_standard_args (opm-parser
|
||||
DEFAULT_MSG
|
||||
opm-parser_INCLUDE_DIRS opm-parser_LIBRARIES HAVE_OPM_PARSER
|
||||
find_package_handle_standard_args(opm-parser
|
||||
DEFAULT_MSG
|
||||
opm-parser_LIBRARIES HAVE_OPM_PARSER HAVE_ERT
|
||||
)
|
||||
endif ()
|
||||
|
||||
set (opm-parser_CONFIG_VARS "HAVE_OPM_PARSER;HAVE_REGEX")
|
||||
set (opm-parser_FOUND ${OPM-PARSER_FOUND})
|
||||
|
||||
mark_as_advanced(opm-parser_LIBRARIES opm-parser_INCLUDE_DIRS OPM-PARSER_FOUND)
|
||||
|
||||
@@ -13,28 +13,51 @@ macro (opm_compile opm)
|
||||
# all public header files are together with the source. prepend our own
|
||||
# source path to the one of the dependencies so that our version of any
|
||||
# ambigious paths are used.
|
||||
set (${opm}_INCLUDE_DIR "${PROJECT_SOURCE_DIR}")
|
||||
set (${opm}_INCLUDE_DIRS ${${opm}_INCLUDE_DIR} ${${opm}_INCLUDE_DIRS})
|
||||
|
||||
option(SILENCE_CROSSMODULE_WARNINGS "Disable warnings from cross-module includes" OFF)
|
||||
if (SILENCE_CROSSMODULE_WARNINGS)
|
||||
include_directories("${PROJECT_SOURCE_DIR}")
|
||||
include_directories (SYSTEM ${${opm}_INCLUDE_DIRS})
|
||||
else()
|
||||
set (${opm}_INCLUDE_DIR "${PROJECT_SOURCE_DIR}")
|
||||
set (${opm}_INCLUDE_DIRS ${${opm}_INCLUDE_DIR} ${${opm}_INCLUDE_DIRS})
|
||||
include_directories (${${opm}_INCLUDE_DIRS})
|
||||
endif()
|
||||
|
||||
|
||||
# create this library, if there are any compilation units
|
||||
include_directories (${${opm}_INCLUDE_DIRS})
|
||||
link_directories (${${opm}_LIBRARY_DIRS})
|
||||
add_definitions (${${opm}_DEFINITIONS})
|
||||
set (${opm}_VERSION "${${opm}_VERSION_MAJOR}.${${opm}_VERSION_MINOR}")
|
||||
if (${opm}_SOURCES)
|
||||
add_library (${${opm}_TARGET} ${${opm}_LIBRARY_TYPE} ${${opm}_SOURCES})
|
||||
set_target_properties (${${opm}_TARGET} PROPERTIES
|
||||
SOVERSION ${${opm}_VERSION_MAJOR}
|
||||
VERSION ${${opm}_VERSION}
|
||||
LINK_FLAGS "${${opm}_LINKER_FLAGS_STR}"
|
||||
add_library (${${opm}_TARGET} ${${opm}_LIBRARY_TYPE} ${${opm}_SOURCES})
|
||||
set_target_properties (${${opm}_TARGET} PROPERTIES
|
||||
SOVERSION ${${opm}_VERSION_MAJOR}
|
||||
VERSION ${${opm}_VERSION}
|
||||
LINK_FLAGS "${${opm}_LINKER_FLAGS_STR}"
|
||||
POSITION_INDEPENDENT_CODE TRUE
|
||||
)
|
||||
target_link_libraries (${${opm}_TARGET} ${${opm}_LIBRARIES})
|
||||
if (${${opm}_LIBRARY_TYPE} STREQUAL "SHARED")
|
||||
# libs that will be linked with the main lib
|
||||
string(REGEX REPLACE "([;^])[^;]+\\.a[;$]" "\\1" _public_libs
|
||||
"${${opm}_LIBRARIES}")
|
||||
# libs that will not actually linked to the library but
|
||||
# transitively linked to binaries that link to the main library
|
||||
string(REGEX REPLACE "([^;]+\\.[^a][a-zA-Z0-9]*|-[a-z]*)[;$]" "" _interface_libs
|
||||
"${${opm}_LIBRARIES}")
|
||||
else()
|
||||
# Use all libs for real and transitive linking
|
||||
set(_public_libs ${${opm}_LIBRARIES})
|
||||
unset(_interface)
|
||||
endif()
|
||||
target_link_libraries (${${opm}_TARGET} PUBLIC ${_public_libs}
|
||||
INTERFACE ${_interface_libs})
|
||||
|
||||
if (STRIP_DEBUGGING_SYMBOLS)
|
||||
# queue this executable to be stripped
|
||||
strip_debug_symbols (${${opm}_TARGET} ${opm}_DEBUG)
|
||||
endif()
|
||||
add_static_analysis_tests(${opm}_SOURCES ${opm}_INCLUDE_DIRS)
|
||||
else (${opm}_SOURCES)
|
||||
# unset this variable to signal that no library is generated
|
||||
set (${opm}_TARGET)
|
||||
|
||||
@@ -102,6 +102,13 @@ find_openmp (${project})
|
||||
include (UseThreads)
|
||||
find_threads (${project})
|
||||
|
||||
# SuperLU is optional
|
||||
option (USE_SUPERLU "Use SuperLU direct solvers" OFF)
|
||||
|
||||
# static code analysis
|
||||
include(UseStaticAnalysis)
|
||||
setup_static_analysis_tools()
|
||||
|
||||
# callback hook to setup additional dependencies
|
||||
if (COMMAND prereqs_hook)
|
||||
prereqs_hook ()
|
||||
@@ -285,10 +292,6 @@ opm_doc (${project} ${doxy_dir})
|
||||
|
||||
# provide compatibility with using this build in dunecontrol
|
||||
include (DuneCompat)
|
||||
include (LibtoolArchives)
|
||||
if (${project}_TARGET)
|
||||
configure_la (${project} ${${project}_TARGET} ${project}_LIBTOOL_ARCHIVE)
|
||||
endif ()
|
||||
|
||||
### clean in-source builds ###
|
||||
include (OpmDistClean)
|
||||
|
||||
@@ -72,6 +72,7 @@ macro (opm_compile_satellites opm satellite excl_all test_regexp)
|
||||
set (_test_lib "${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}")
|
||||
else (NOT "${test_regexp}" STREQUAL "")
|
||||
set (_test_lib "")
|
||||
add_static_analysis_tests(_sat_FILE ${opm}_INCLUDE_DIRS)
|
||||
endif (NOT "${test_regexp}" STREQUAL "")
|
||||
target_link_libraries (${_sat_NAME} ${${opm}_TARGET} ${${opm}_LIBRARIES} ${_test_lib})
|
||||
if (STRIP_DEBUGGING_SYMBOLS)
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
if (NOT Boost_UNIT_TEST_FRAMEWORK_FOUND)
|
||||
find_package (Boost 1.44.0 COMPONENTS unit_test_framework QUIET)
|
||||
endif ()
|
||||
find_package (Boost 1.44.0 COMPONENTS unit_test_framework QUIET)
|
||||
|
||||
if (Boost_UNIT_TEST_FRAMEWORK_FOUND)
|
||||
# setup to do a test compile
|
||||
|
||||
@@ -38,7 +38,7 @@ if (CXX_COMPAT_GCC)
|
||||
|
||||
# default optimization flags, if not set by user
|
||||
set_default_option (CXX _opt_dbg "-O0" "(^|\ )-O")
|
||||
set_default_option (CXX _opt_rel "-O2" "(^|\ )-O")
|
||||
set_default_option (CXX _opt_rel "-O3" "(^|\ )-O")
|
||||
|
||||
# use these options for debug builds - no optimizations
|
||||
add_options (ALL_LANGUAGES "${_prof_DEBUG}" ${_opt_dbg} "-DDEBUG")
|
||||
|
||||
50
cmake/Modules/UseStaticAnalysis.cmake
Normal file
50
cmake/Modules/UseStaticAnalysis.cmake
Normal file
@@ -0,0 +1,50 @@
|
||||
# Add static analysis tests for a given source file
|
||||
|
||||
macro(setup_static_analysis_tools)
|
||||
find_package(CppCheck)
|
||||
if(CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||
find_package(ClangCheck)
|
||||
else()
|
||||
message(STATUS "Disabling clang-check as CMAKE_EXPORT_COMPILE_COMMANDS is not enabled")
|
||||
endif()
|
||||
if(OPM_COMMON_ROOT)
|
||||
set(DIR ${OPM_COMMON_ROOT})
|
||||
elseif(OPM_MACROS_ROOT)
|
||||
set(DIR ${OPM_MACROS_ROOT})
|
||||
else()
|
||||
set(DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
if(CPPCHECK_FOUND)
|
||||
file(COPY ${DIR}/cmake/Scripts/cppcheck-test.sh
|
||||
DESTINATION bin
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif()
|
||||
if(CLANGCHECK_FOUND AND CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||
configure_file(${DIR}/cmake/Scripts/clang-check-test.sh.in
|
||||
${CMAKE_BINARY_DIR}/CMakeFiles/clang-check-test.sh)
|
||||
file(COPY ${CMAKE_BINARY_DIR}/CMakeFiles/clang-check-test.sh
|
||||
DESTINATION bin
|
||||
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
function(add_static_analysis_tests sources includes)
|
||||
if(CPPCHECK_FOUND OR (CLANGCHECK_FOUND AND CMAKE_EXPORT_COMPILE_COMMANDS))
|
||||
foreach(dep ${${includes}})
|
||||
list(APPEND IPATHS -I ${dep})
|
||||
endforeach()
|
||||
foreach(src ${${sources}})
|
||||
file(RELATIVE_PATH name ${PROJECT_SOURCE_DIR} ${src})
|
||||
if(CPPCHECK_FOUND)
|
||||
add_test(NAME cppcheck+${name}
|
||||
COMMAND bin/cppcheck-test.sh ${CPPCHECK_PROGRAM} ${src} ${IPATHS}
|
||||
CONFIGURATIONS analyze cppcheck)
|
||||
endif()
|
||||
if(CLANGCHECK_FOUND AND CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||
add_test(NAME clang-check+${name}
|
||||
COMMAND bin/clang-check-test.sh ${CLANGCHECK_PROGRAM} ${src}
|
||||
CONFIGURATIONS analyze clang-check)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endfunction()
|
||||
@@ -35,6 +35,7 @@ set (ewoms_DEPS
|
||||
"dune-fem"
|
||||
"opm-parser"
|
||||
"opm-grid"
|
||||
"opm-core"
|
||||
# librt (on some systems necessary for clock_gettime())
|
||||
"librt REQUIRED"
|
||||
# valgrind client requests
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
# defines that must be present in config.h for our headers
|
||||
set (opm-common_CONFIG_VAR
|
||||
)
|
||||
"HAS_ATTRIBUTE_UNUSED")
|
||||
|
||||
# dependencies
|
||||
set (opm-common_DEPS
|
||||
|
||||
@@ -8,6 +8,9 @@ set (opm-core_CONFIG_VAR
|
||||
HAVE_DUNE_ISTL
|
||||
HAVE_MPI
|
||||
HAVE_PETSC
|
||||
DUNE_ISTL_VERSION_MAJOR
|
||||
DUNE_ISTL_VERSION_MINOR
|
||||
DUNE_ISTL_VERSION_REVISION
|
||||
)
|
||||
|
||||
# dependencies
|
||||
@@ -26,10 +29,8 @@ set (opm-core_DEPS
|
||||
"SuiteSparse COMPONENTS umfpack"
|
||||
# solver
|
||||
"SuperLU"
|
||||
# xml processing (for config parsing)
|
||||
"TinyXML"
|
||||
# Ensembles-based Reservoir Tools (ERT)
|
||||
"ERT REQUIRED"
|
||||
"ecl REQUIRED"
|
||||
# Look for MPI support
|
||||
"MPI"
|
||||
# PETSc numerical backend
|
||||
@@ -42,5 +43,8 @@ set (opm-core_DEPS
|
||||
"opm-parser REQUIRED"
|
||||
# the code which implements the material laws
|
||||
"opm-material REQUIRED"
|
||||
# the code which implements the output routines
|
||||
"opm-output REQUIRED"
|
||||
# the code which implements grids
|
||||
"opm-grid REQUIRED"
|
||||
)
|
||||
|
||||
@@ -12,7 +12,7 @@ set (opm-flowdiagnostics-applications_DEPS
|
||||
# compile with C++0x/11 support if available
|
||||
"CXX11Features REQUIRED"
|
||||
"Boost 1.44.0
|
||||
COMPONENTS filesystem system unit_test_framework REQUIRED"
|
||||
COMPONENTS filesystem regex system unit_test_framework REQUIRED"
|
||||
"ERT REQUIRED"
|
||||
# prerequisite OPM modules
|
||||
"opm-common REQUIRED;
|
||||
|
||||
@@ -9,9 +9,8 @@ set (opm-grid_CONFIG_VAR
|
||||
DUNE_COMMON_VERSION_MAJOR
|
||||
DUNE_COMMON_VERSION_MINOR
|
||||
DUNE_COMMON_VERSION_REVISION
|
||||
DUNE_ISTL_VERSION_MAJOR
|
||||
DUNE_ISTL_VERSION_MINOR
|
||||
DUNE_ISTL_VERSION_REVISION
|
||||
HAVE_DUNE_ISTL
|
||||
HAVE_MPI
|
||||
HAVE_ZOLTAN
|
||||
)
|
||||
|
||||
@@ -24,13 +23,11 @@ set (opm-grid_DEPS
|
||||
# various runtime library enhancements
|
||||
"Boost 1.44.0
|
||||
COMPONENTS date_time filesystem system unit_test_framework REQUIRED"
|
||||
# DUNE dependency
|
||||
"dune-common REQUIRED;
|
||||
dune-grid REQUIRED;
|
||||
dune-geometry REQUIRED
|
||||
dune-istl"
|
||||
# OPM dependency
|
||||
"opm-common REQUIRED;
|
||||
opm-core REQUIRED"
|
||||
"MPI"
|
||||
"dune-common"
|
||||
"dune-grid REQUIRED"
|
||||
"dune-istl"
|
||||
"opm-common REQUIRED"
|
||||
"opm-parser REQUIRED"
|
||||
"ZOLTAN"
|
||||
)
|
||||
|
||||
@@ -20,4 +20,6 @@ set (opm-material_DEPS
|
||||
"opm-common REQUIRED"
|
||||
# DUNE dependency
|
||||
"dune-common REQUIRED"
|
||||
# valgrind client requests
|
||||
"Valgrind"
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ set (opm-output_DEPS
|
||||
"Boost 1.44.0
|
||||
COMPONENTS unit_test_framework REQUIRED"
|
||||
# Ensembles-based Reservoir Tools (ERT)
|
||||
"ERT REQUIRED"
|
||||
"ecl REQUIRED"
|
||||
# Look for MPI support
|
||||
"opm-common REQUIRED"
|
||||
# Parser library for ECL-type simulation models
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
set (opm-simulators_CONFIG_VAR
|
||||
HAVE_OPM_GRID
|
||||
HAVE_PTHREAD
|
||||
HAVE_EWOMS
|
||||
DUNE_ISTL_VERSION_MAJOR
|
||||
DUNE_ISTL_VERSION_MINOR
|
||||
DUNE_ISTL_VERSION_REVISION
|
||||
)
|
||||
|
||||
# dependencies
|
||||
@@ -20,12 +24,13 @@ set (opm-simulators_DEPS
|
||||
"dune-common REQUIRED;
|
||||
dune-istl REQUIRED"
|
||||
"ERTPython"
|
||||
# OPM dependency
|
||||
# OPM dependency
|
||||
"opm-common REQUIRED;
|
||||
opm-parser REQUIRED;
|
||||
opm-core REQUIRED;
|
||||
opm-output REQUIRED;
|
||||
opm-grid"
|
||||
opm-parser REQUIRED;
|
||||
opm-grid REQUIRED;
|
||||
opm-core REQUIRED;
|
||||
opm-output REQUIRED;
|
||||
ewoms REQUIRED"
|
||||
# Eigen
|
||||
"Eigen3 3.2.0"
|
||||
)
|
||||
|
||||
@@ -26,7 +26,7 @@ set (opm-upscaling_DEPS
|
||||
dune-geometry REQUIRED;
|
||||
dune-grid REQUIRED;
|
||||
opm-common REQUIRED;
|
||||
opm-grid REQUIRED;
|
||||
opm-core REQUIRED;
|
||||
opm-grid REQUIRED;
|
||||
opm-output REQUIRED"
|
||||
)
|
||||
|
||||
23
cmake/Scripts/clang-check-test.sh.in
Executable file
23
cmake/Scripts/clang-check-test.sh.in
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script performs a single analysis using clang-check
|
||||
# It is used by the 'make test' target in the buildsystems
|
||||
# Usually you should use 'ctest -C clang-check' rather than calling this script directly
|
||||
#
|
||||
# Parameters: $1 = Application binary
|
||||
# $2 = Source file to process
|
||||
|
||||
clangcheck_cmd=$1
|
||||
source_file=$2
|
||||
|
||||
tmpfil=`mktemp`
|
||||
$clangcheck_cmd -p @CMAKE_BINARY_DIR@ -analyze $source_file &> $tmpfil
|
||||
cat $tmpfil
|
||||
if test -s $tmpfil
|
||||
then
|
||||
rm $tmpfil
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm $tmpfil
|
||||
exit 0
|
||||
30
cmake/Scripts/cppcheck-test.sh
Executable file
30
cmake/Scripts/cppcheck-test.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# This script performs a single analysis using cppcheck
|
||||
# It is used by the 'make test' target in the buildsystems
|
||||
# Usually you should use 'ctest -C cppcheck' rather than calling this script directly
|
||||
#
|
||||
# Parameters: $1 = Application binary
|
||||
# $2 = Source file to process
|
||||
# $3..$N = include path parameters (-I dir1 -I dir2 ...)
|
||||
|
||||
cppcheck_cmd=$1
|
||||
source_file=$2
|
||||
shift 2
|
||||
|
||||
tmpfil=`mktemp`
|
||||
$cppcheck_cmd $@ --enable=all --suppress=unusedFunction $source_file &> $tmpfil
|
||||
nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l`
|
||||
nsys=`cat $tmpfil | grep "\[/usr.*\]" | wc -l`
|
||||
nnone=`cat $tmpfil | grep "\[\\*]" | wc -l`
|
||||
ndef=`cat $tmpfil | grep "\[.*Too many #ifdef" | wc -l`
|
||||
let "nval=$nmatch-$nsys-$nnone-$ndef"
|
||||
if test $nval -gt 0
|
||||
then
|
||||
cat $tmpfil
|
||||
rm $tmpfil
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm $tmpfil
|
||||
exit 0
|
||||
2
debian/rules
vendored
2
debian/rules
vendored
@@ -20,7 +20,7 @@ override_dh_auto_build:
|
||||
|
||||
# consider using -DUSE_VERSIONED_DIR=ON if backporting
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure --buildsystem=cmake -- -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSTRIP_DEBUGGING_SYMBOLS=ON -DBUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_DOCDIR=share/doc/libopm-common1 -DWHOLE_PROG_OPTIM=ON -DUSE_RUNPATH=OFF
|
||||
dh_auto_configure --buildsystem=cmake -- -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSTRIP_DEBUGGING_SYMBOLS=ON -DBUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_DOCDIR=share/doc/libopm-common1 -DWHOLE_PROG_OPTIM=ON -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install -- install-html
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
|
||||
Module: opm-common
|
||||
Description: Open Porous Media Initiative shared infrastructure
|
||||
Version: 2016.10-pre
|
||||
Label: 2016.10-pre
|
||||
Version: 2017.10-pre
|
||||
Label: 2017.10-pre
|
||||
Maintainer: opm@opm-project.org
|
||||
MaintainerName: OPM community
|
||||
Url: http://opm-project.org
|
||||
|
||||
@@ -83,9 +83,19 @@ function build_module {
|
||||
test $? -eq 0 || exit 1
|
||||
if test $2 -eq 1
|
||||
then
|
||||
cmake --build .
|
||||
if [ ! -z $BUILDTHREADS ]
|
||||
then
|
||||
cmake --build . -- -j$BUILDTHREADS
|
||||
else
|
||||
cmake --build .
|
||||
fi
|
||||
test $? -eq 0 || exit 2
|
||||
ctest -T Test --no-compress-output
|
||||
if test -z "$CTEST_CONFIGURATION"
|
||||
then
|
||||
ctest -T Test --no-compress-output
|
||||
else
|
||||
ctest -C $CTEST_CONFIGURATION --timeout 5000 -T Test --no-compress-output
|
||||
fi
|
||||
|
||||
# Convert to junit format
|
||||
$WORKSPACE/deps/opm-common/jenkins/convert.py -x $WORKSPACE/deps/opm-common/jenkins/conv.xsl -t . > testoutput.xml
|
||||
@@ -96,7 +106,12 @@ function build_module {
|
||||
sed -e "s/classname=\"TestSuite\"/classname=\"${configuration}\"/g" testoutput.xml > $WORKSPACE/$configuration/testoutput.xml
|
||||
fi
|
||||
else
|
||||
cmake --build . --target install
|
||||
if [ ! -z $BUILDTHREADS ]
|
||||
then
|
||||
cmake --build . --target install -- -j$BUILDTHREADS
|
||||
else
|
||||
cmake --build . --target install
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -109,9 +124,9 @@ function clone_module {
|
||||
mkdir -p $WORKSPACE/deps/$1
|
||||
cd $WORKSPACE/deps/$1
|
||||
git init .
|
||||
if [ "$1" == "ert" ]
|
||||
if [ "$1" == "libecl" ]
|
||||
then
|
||||
git remote add origin https://github.com/Ensembles/$1
|
||||
git remote add origin https://github.com/Statoil/$1
|
||||
else
|
||||
git remote add origin https://github.com/OPM/$1
|
||||
fi
|
||||
@@ -173,7 +188,13 @@ function build_downstreams {
|
||||
# Installation for downstream
|
||||
pushd .
|
||||
cd $WORKSPACE/$configuration/build-$downstream
|
||||
cmake --build . --target install
|
||||
|
||||
if [ ! -z $BUILDTHREADS ]
|
||||
then
|
||||
cmake --build . --target install -- -j$BUILDTHREADS
|
||||
else
|
||||
cmake --build . --target install
|
||||
fi
|
||||
popd
|
||||
egrep_cmd="$egrep_cmd $WORKSPACE/$configuration/build-$downstream/testoutput.xml"
|
||||
done
|
||||
|
||||
@@ -8,26 +8,27 @@ ln -sf $WORKSPACE deps/opm-common
|
||||
|
||||
# Downstreams and revisions
|
||||
declare -a downstreams
|
||||
downstreams=(ert
|
||||
downstreams=(libecl
|
||||
opm-parser
|
||||
opm-output
|
||||
opm-material
|
||||
opm-core
|
||||
opm-grid
|
||||
opm-core
|
||||
ewoms
|
||||
opm-simulators
|
||||
opm-upscaling
|
||||
ewoms)
|
||||
)
|
||||
|
||||
declare -A downstreamRev
|
||||
downstreamRev[ert]=master
|
||||
downstreamRev[libecl]=master
|
||||
downstreamRev[opm-parser]=master
|
||||
downstreamRev[opm-material]=master
|
||||
downstreamRev[opm-core]=master
|
||||
downstreamRev[opm-grid]=master
|
||||
downstreamRev[opm-output]=master
|
||||
downstreamRev[ewoms]=master
|
||||
downstreamRev[opm-simulators]=master
|
||||
downstreamRev[opm-upscaling]=master
|
||||
downstreamRev[ewoms]=master
|
||||
|
||||
parseRevisions
|
||||
printHeader opm-common
|
||||
|
||||
58
jenkins/update-opm-data.sh
Executable file
58
jenkins/update-opm-data.sh
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
MAIN_REPO=$1 # The repo the update was triggered from
|
||||
|
||||
source $WORKSPACE/deps/opm-common/jenkins/build-opm-module.sh
|
||||
|
||||
declare -a upstreams # Everything is considered an upstream to aid code reuse
|
||||
upstreams=(libecl
|
||||
opm-common
|
||||
opm-parser
|
||||
opm-output
|
||||
opm-material
|
||||
opm-grid
|
||||
opm-core
|
||||
ewoms
|
||||
opm-simulators
|
||||
opm-upscaling
|
||||
)
|
||||
|
||||
declare -A upstreamRev
|
||||
upstreamRev[libecl]=master
|
||||
upstreamRev[opm-common]=master
|
||||
upstreamRev[opm-parser]=master
|
||||
upstreamRev[opm-material]=master
|
||||
upstreamRev[opm-core]=master
|
||||
upstreamRev[opm-grid]=master
|
||||
upstreamRev[opm-output]=master
|
||||
upstreamRev[ewoms]=master
|
||||
upstreamRev[opm-simulators]=master
|
||||
upstreamRev[opm-upscaling]=master
|
||||
|
||||
# Setup revision tables
|
||||
parseRevisions
|
||||
upstreamRev[$MAIN_REPO]=$sha1
|
||||
|
||||
# Create branch name
|
||||
BRANCH_NAME="update"
|
||||
for repo in ${upstreams[*]}
|
||||
do
|
||||
if [ "${upstreamRev[$repo]}" != "master" ]
|
||||
then
|
||||
rev=${upstreamRev[$repo]}
|
||||
prnumber=${rev//[!0-9]/}
|
||||
BRANCH_NAME="${BRANCH_NAME}_${repo}_$prnumber"
|
||||
test -n "$REASON" && REASON+=" "
|
||||
REASON+="https://github.com/OPM/$repo/pull/$prnumber\n"
|
||||
fi
|
||||
done
|
||||
|
||||
# Do the commit
|
||||
export REASON
|
||||
export BRANCH_NAME
|
||||
$WORKSPACE/deps/opm-simulators/tests/update_reference_data.sh $OPM_DATA_ROOT
|
||||
|
||||
# Finally open the pull request
|
||||
cd $OPM_DATA_ROOT
|
||||
git remote add jenkins4opm git@github.com:jenkins4opm/opm-data
|
||||
git-open-pull -u jenkins4opm --base-account OPM --base-repo opm-data -r /tmp/cmsg $BRANCH_NAME
|
||||
@@ -58,6 +58,13 @@ public:
|
||||
: NumericalProblem(message)
|
||||
{}
|
||||
};
|
||||
class TooManyIterations : public NumericalProblem
|
||||
{
|
||||
public:
|
||||
explicit TooManyIterations(const std::string &message)
|
||||
: NumericalProblem(message)
|
||||
{}
|
||||
};
|
||||
}
|
||||
|
||||
#endif // OPM_EXCEPTIONS_HPP
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Opm {
|
||||
class CounterLog : public LogBackend
|
||||
{
|
||||
public:
|
||||
CounterLog(int64_t messageMask);
|
||||
explicit CounterLog(int64_t messageMask);
|
||||
CounterLog();
|
||||
|
||||
size_t numMessages(int64_t messageType) const;
|
||||
|
||||
@@ -58,16 +58,16 @@ namespace Log {
|
||||
prefix = "Info";
|
||||
break;
|
||||
case MessageType::Warning:
|
||||
prefix = "Warning";
|
||||
prefix = "\nWarning";
|
||||
break;
|
||||
case MessageType::Error:
|
||||
prefix = "Error";
|
||||
prefix = "\nError";
|
||||
break;
|
||||
case MessageType::Problem:
|
||||
prefix = "Problem";
|
||||
prefix = "\nProblem";
|
||||
break;
|
||||
case MessageType::Bug:
|
||||
prefix = "Bug";
|
||||
prefix = "\nBug";
|
||||
break;
|
||||
default:
|
||||
throw std::invalid_argument("Unhandled messagetype");
|
||||
@@ -85,8 +85,9 @@ namespace Log {
|
||||
return message; // No color coding, not even the code for default color.
|
||||
case MessageType::Warning:
|
||||
return AnsiTerminalColors::blue_strong + message + AnsiTerminalColors::none;
|
||||
case MessageType::Error:
|
||||
case MessageType::Problem:
|
||||
return AnsiTerminalColors::magenta_strong + message + AnsiTerminalColors::none;
|
||||
case MessageType::Error:
|
||||
case MessageType::Bug:
|
||||
return AnsiTerminalColors::red_strong + message + AnsiTerminalColors::none;
|
||||
default:
|
||||
|
||||
@@ -49,6 +49,8 @@ namespace Log {
|
||||
const std::string yellow_strong = "\033[33;1m";
|
||||
const std::string blue = "\033[34m";
|
||||
const std::string blue_strong = "\033[34;1m";
|
||||
const std::string magenta = "\033[35m";
|
||||
const std::string magenta_strong = "\033[35;1m";
|
||||
const std::string default_color = "\033[39m";
|
||||
}
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace Opm
|
||||
}
|
||||
|
||||
|
||||
SimpleMessageFormatter(const bool use_color_coding)
|
||||
explicit SimpleMessageFormatter(const bool use_color_coding)
|
||||
: use_color_coding_(use_color_coding)
|
||||
{
|
||||
prefix_flag_ = Log::MessageType::Warning + Log::MessageType::Error
|
||||
|
||||
@@ -62,7 +62,7 @@ namespace Opm
|
||||
{
|
||||
}
|
||||
|
||||
MessageLimiter(const int tag_limit, const std::map<int64_t, int> category_limits)
|
||||
MessageLimiter(const int tag_limit, const std::map<int64_t, int>& category_limits)
|
||||
: tag_limit_(tag_limit < 0 ? NoLimit : tag_limit),
|
||||
category_limits_(category_limits)
|
||||
{
|
||||
|
||||
@@ -21,9 +21,27 @@
|
||||
#include <opm/common/OpmLog/Logger.hpp>
|
||||
#include <opm/common/OpmLog/StreamLog.hpp>
|
||||
#include <iostream>
|
||||
#include <errno.h> // For errno
|
||||
#include <stdio.h> // For fileno() and stdout
|
||||
#include <unistd.h> // For isatty()
|
||||
|
||||
namespace Opm {
|
||||
|
||||
namespace {
|
||||
bool stdoutIsTerminal()
|
||||
{
|
||||
const int errno_save = errno; // For playing nice with C error handling.
|
||||
const int file_descriptor = fileno(stdout);
|
||||
if (file_descriptor == -1) {
|
||||
// stdout is an invalid stream
|
||||
errno = errno_save;
|
||||
return false;
|
||||
} else {
|
||||
return isatty(file_descriptor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
std::shared_ptr<Logger> OpmLog::getLogger() {
|
||||
if (!m_logger)
|
||||
@@ -176,12 +194,14 @@ namespace Opm {
|
||||
|
||||
|
||||
|
||||
void OpmLog::setupSimpleDefaultLogging(const bool use_prefix)
|
||||
void OpmLog::setupSimpleDefaultLogging(const bool use_prefix,
|
||||
const bool use_color_coding,
|
||||
const int message_limit)
|
||||
{
|
||||
std::shared_ptr<StreamLog> streamLog = std::make_shared<StreamLog>(std::cout, Log::DefaultMessageTypes);
|
||||
OpmLog::addBackend( "SimpleDefaultLog", streamLog);
|
||||
streamLog->setMessageLimiter(std::make_shared<MessageLimiter>(10));
|
||||
streamLog->setMessageFormatter(std::make_shared<SimpleMessageFormatter>(use_prefix, true));
|
||||
streamLog->setMessageLimiter(std::make_shared<MessageLimiter>(message_limit));
|
||||
streamLog->setMessageFormatter(std::make_shared<SimpleMessageFormatter>(use_prefix, use_color_coding && stdoutIsTerminal()));
|
||||
}
|
||||
/******************************************************************/
|
||||
|
||||
|
||||
@@ -64,17 +64,26 @@ public:
|
||||
static void removeAllBackends();
|
||||
static bool enabledMessageType( int64_t messageType );
|
||||
static void addMessageType( int64_t messageType , const std::string& prefix);
|
||||
static void setupSimpleDefaultLogging(const bool use_prefix);
|
||||
|
||||
/// Create a basic logging setup that will send all log messages to standard output.
|
||||
///
|
||||
/// By default category prefixes will be printed (i.e. Error: or
|
||||
/// Warning:), color coding will be used, and a maximum of 10
|
||||
/// messages with the same tag will be printed. These settings can
|
||||
/// be controlled by the function parameters.
|
||||
static void setupSimpleDefaultLogging(const bool use_prefix = true,
|
||||
const bool use_color_coding = true,
|
||||
const int message_limit = 10);
|
||||
|
||||
template <class BackendType>
|
||||
static std::shared_ptr<BackendType> getBackend(const std::string& name) {
|
||||
auto logger = OpmLog::getLogger();
|
||||
auto logger = getLogger();
|
||||
return logger->getBackend<BackendType>(name);
|
||||
}
|
||||
|
||||
template <class BackendType>
|
||||
static std::shared_ptr<BackendType> popBackend(const std::string& name) {
|
||||
auto logger = OpmLog::getLogger();
|
||||
auto logger = getLogger();
|
||||
return logger->popBackend<BackendType>(name);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,11 +32,13 @@ namespace Opm {
|
||||
TimerLog::TimerLog(const std::string& logFile) : StreamLog( logFile , StopTimer | StartTimer )
|
||||
{
|
||||
m_work.precision(8);
|
||||
m_start = 0;
|
||||
}
|
||||
|
||||
TimerLog::TimerLog(std::ostream& os) : StreamLog( os , StopTimer | StartTimer )
|
||||
{
|
||||
m_work.precision(8);
|
||||
m_start = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -39,8 +39,8 @@ public:
|
||||
static const int64_t StartTimer = 4096;
|
||||
static const int64_t StopTimer = 8192;
|
||||
|
||||
TimerLog(const std::string& logFile);
|
||||
TimerLog(std::ostream& os);
|
||||
explicit TimerLog(const std::string& logFile);
|
||||
explicit TimerLog(std::ostream& os);
|
||||
|
||||
void clear();
|
||||
~TimerLog() {};
|
||||
|
||||
62
opm/common/ResetLocale.hpp
Normal file
62
opm/common/ResetLocale.hpp
Normal file
@@ -0,0 +1,62 @@
|
||||
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
// vi: set et ts=4 sw=4 sts=4:
|
||||
/*
|
||||
This file is part of the Open Porous Media project (OPM).
|
||||
|
||||
OPM is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OPM is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*!
|
||||
* \file
|
||||
* \brief Provides a free function to reset the localization settings
|
||||
*
|
||||
* Under some circumstances, some environments seem to set a locale which they do not
|
||||
* install. In turn this leads to std::runtime_errror being thrown by some parts of Boost
|
||||
* (for some versions) which causes unsolicited program aborts.
|
||||
*
|
||||
* This issue asside, it looks pretty weird if the e.g. the number format is inconsistent
|
||||
* with the language used by rest of the simulation.
|
||||
*/
|
||||
#ifndef OPM_RESET_LOCALE_HH
|
||||
#define OPM_RESET_LOCALE_HH
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
namespace Opm {
|
||||
|
||||
inline void resetLocale()
|
||||
{
|
||||
#ifndef WIN32
|
||||
// this probably only works for POSIX compatible operating systems. for all others,
|
||||
// unsetting a few environment variables should not hurt, though.
|
||||
unsetenv("LC_ALL");
|
||||
unsetenv("LANG");
|
||||
unsetenv("LANGUAGE");
|
||||
unsetenv("LC_ADDRESS");
|
||||
unsetenv("LC_COLLATE");
|
||||
unsetenv("LC_CTYPE");
|
||||
unsetenv("LC_IDENTIFICATION");
|
||||
unsetenv("LC_MEASUREMENT");
|
||||
unsetenv("LC_MESSAGES");
|
||||
unsetenv("LC_MONETARY");
|
||||
unsetenv("LC_NAME");
|
||||
unsetenv("LC_NUMERIC");
|
||||
unsetenv("LC_PAPER");
|
||||
unsetenv("LC_TELEPHONE");
|
||||
unsetenv("LC_TIME");
|
||||
#endif // !WIN32
|
||||
}
|
||||
|
||||
} // namespace Opm
|
||||
|
||||
#endif
|
||||
43
opm/common/Unused.hpp
Normal file
43
opm/common/Unused.hpp
Normal file
@@ -0,0 +1,43 @@
|
||||
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
// vi: set et ts=4 sw=4 sts=4:
|
||||
/*
|
||||
This file is part of the Open Porous Media project (OPM).
|
||||
|
||||
OPM is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OPM is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
/*!
|
||||
* \file
|
||||
* \brief Provides the OPM_UNUSED macro
|
||||
*
|
||||
* This macro can be used to mark variables as "potentially unused" which suppresses some
|
||||
* bogus compiler warnings. If the compiler does not support this, the macro is a no-op.
|
||||
*/
|
||||
#ifndef OPM_UNUSED_HH
|
||||
#define OPM_UNUSED_HH
|
||||
|
||||
#ifndef HAS_ATTRIBUTE_UNUSED
|
||||
#define OPM_UNUSED
|
||||
#else
|
||||
#define OPM_UNUSED __attribute__((unused))
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define OPM_DEBUG_UNUSED
|
||||
#define OPM_OPTIM_UNUSED OPM_UNUSED
|
||||
#else
|
||||
#define OPM_DEBUG_UNUSED OPM_UNUSED
|
||||
#define OPM_OPTIM_UNUSED
|
||||
#endif
|
||||
|
||||
#endif
|
||||
311
opm/common/Valgrind.hpp
Normal file
311
opm/common/Valgrind.hpp
Normal file
@@ -0,0 +1,311 @@
|
||||
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
// vi: set et ts=4 sw=4 sts=4:
|
||||
/*
|
||||
This file is part of the Open Porous Media project (OPM).
|
||||
|
||||
OPM is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
OPM is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Consult the COPYING file in the top-level source directory of this
|
||||
module for the precise wording of the license and the list of
|
||||
copyright holders.
|
||||
*/
|
||||
/*!
|
||||
* \file
|
||||
* \brief Some templates to wrap the valgrind client request macros
|
||||
*/
|
||||
#ifndef OPM_VALGRIND_HPP
|
||||
#define OPM_VALGRIND_HPP
|
||||
|
||||
#include <opm/common/Unused.hpp>
|
||||
|
||||
#if HAVE_VALGRIND
|
||||
#include <valgrind/memcheck.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_VALGRIND
|
||||
#define OPM_VALGRIND_OPTIM_UNUSED OPM_OPTIM_UNUSED
|
||||
#else
|
||||
#define OPM_VALGRIND_OPTIM_UNUSED OPM_UNUSED
|
||||
#endif
|
||||
|
||||
namespace Opm {
|
||||
namespace Valgrind {
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Returns whether the program is running under Valgrind or not.
|
||||
*/
|
||||
inline bool IsRunning()
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
return RUNNING_ON_VALGRIND;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make valgrind complain if any of the memory occupied by an object
|
||||
* is undefined.
|
||||
*
|
||||
* Please note that this does not check whether the destinations of an
|
||||
* object's pointers or references are defined. Also, for performance
|
||||
* reasons the compiler might insert "padding bytes" between within
|
||||
* the objects which leads to false positives.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i;
|
||||
* Valgrind::CheckDefined(i); // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which ought to be checked
|
||||
*
|
||||
* \param value the object which valgrind should check
|
||||
*
|
||||
* \return true iff there are no undefined bytes in the memory
|
||||
* occupied by the object.
|
||||
*/
|
||||
template <class T>
|
||||
inline bool CheckDefined(const T& value OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
auto tmp = VALGRIND_CHECK_MEM_IS_DEFINED(&value, sizeof(T));
|
||||
return tmp == 0;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make valgrind complain if any of the memory occupied by an object
|
||||
* is not addressable.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int* i = NULL;
|
||||
* Valgrind::CheckAddressable(*i); // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which ought to be checked
|
||||
*
|
||||
* \param value the object which valgrind should check
|
||||
*
|
||||
* \return true iff there are no unadressable bytes in the memory
|
||||
* occupied by the object.
|
||||
*/
|
||||
template <class T>
|
||||
inline bool CheckAddressable(const T& value OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
auto tmp = VALGRIND_CHECK_MEM_IS_ADDRESSABLE(&value, sizeof(T));
|
||||
return tmp == 0;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make valgrind complain if any of the the memory occupied
|
||||
* by a C-style array objects is undefined.
|
||||
*
|
||||
* Please note that this does not check whether the destinations of an
|
||||
* object's pointers or references are defined. Also, for performance
|
||||
* reasons the compiler might insert "padding bytes" between within
|
||||
* the objects which leads to false positives.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i[2];
|
||||
* Valgrind::CheckDefined(i, 2); // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which ought to be checked
|
||||
*
|
||||
* \param value Pointer to the first object of the array.
|
||||
* \param size The size of the array in number of objects
|
||||
*
|
||||
* \return true iff there are no undefined bytes in the memory
|
||||
* occupied by the array.
|
||||
*/
|
||||
template <class T>
|
||||
inline bool CheckDefined(const T* value OPM_VALGRIND_OPTIM_UNUSED, int size OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
auto tmp = VALGRIND_CHECK_MEM_IS_DEFINED(value, size*sizeof(T));
|
||||
return tmp == 0;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make the memory on which an object resides undefined in
|
||||
* valgrind runs.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i = 0;
|
||||
* Valgrind::SetUndefined(i);
|
||||
* Valgrind::CheckDefined(i); // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which ought to be set to undefined
|
||||
*
|
||||
* \param value The object which's memory valgrind should be told is undefined
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetUndefined(const T &value OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(&value, sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make the memory on which an array of object resides
|
||||
* undefined in valgrind runs.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i[3] = {0, 1, 3};
|
||||
* Valgrind::SetUndefined(&i[1], 2);
|
||||
* Valgrind::CheckDefined(i, 3); // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which ought to be set to undefined
|
||||
*
|
||||
* \param value Pointer to the first object of the array.
|
||||
* \param size The size of the array in number of objects
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetUndefined(const T* value OPM_VALGRIND_OPTIM_UNUSED, int size OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_UNDEFINED(value, size*sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make the memory on which an object resides defined.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i;
|
||||
* Valgrind::SetDefined(i);
|
||||
* Valgrind::CheckDefined(i); // Valgrind does not complain!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which valgrind should consider as defined
|
||||
*
|
||||
* \param value The object which's memory valgrind should consider as defined
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetDefined(const T& value OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_DEFINED(&value, sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make the memory on which a C-style array of objects resides
|
||||
* defined.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i[3];
|
||||
* Valgrind::SetDefined(i, 3);
|
||||
* Valgrind::CheckDefined(i, 3); // Valgrind does not complain!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which valgrind should consider as defined
|
||||
*
|
||||
* \param value Pointer to the first object of the array.
|
||||
* \param n The size of the array in number of objects
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetDefined(const T *value OPM_VALGRIND_OPTIM_UNUSED, int n OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_DEFINED(value, n*sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make valgrind complain if an object's memory is accessed.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i = 1;
|
||||
* Valgrind::SetNoAccess(i);
|
||||
* int j = i; // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \tparam T The type of the object which valgrind should complain if accessed
|
||||
*
|
||||
* \param value The object which's memory valgrind should complain if accessed
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetNoAccess(const T &value OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_NOACCESS(&value, sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
/*!
|
||||
* \ingroup Valgrind
|
||||
* \brief Make valgrind complain if the memory of a C-style array of
|
||||
* objects is accessed.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* \code
|
||||
* int i[3] = {0, 1, 2};
|
||||
* Valgrind::SetNoAccess(i, 2);
|
||||
* int j = i[1]; // Valgrind complains!
|
||||
* \endcode
|
||||
*
|
||||
* \param value Pointer to the first object of the array.
|
||||
* \param size The size of the array in number of objects
|
||||
*/
|
||||
template <class T>
|
||||
inline void SetNoAccess(const T *value OPM_VALGRIND_OPTIM_UNUSED, int size OPM_VALGRIND_OPTIM_UNUSED)
|
||||
{
|
||||
#if !defined NDEBUG && HAVE_VALGRIND
|
||||
VALGRIND_MAKE_MEM_NOACCESS(value, size*sizeof(T));
|
||||
#endif
|
||||
}
|
||||
|
||||
}} // namespace Valgrind, Opm
|
||||
|
||||
#endif
|
||||
@@ -73,6 +73,9 @@
|
||||
#pragma GCC diagnostic ignored "-Wunused-variable"
|
||||
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
|
||||
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||
#pragma GCC diagnostic ignored "-Wcast-qual"
|
||||
#pragma GCC diagnostic ignored "-Wignored-attributes"
|
||||
#pragma GCC diagnostic ignored "-Wmisleading-indentation"
|
||||
#endif // COMPATIBLE_COMPILER
|
||||
|
||||
#endif // SILENCE_EXTERNAL_WARNINGS
|
||||
|
||||
@@ -49,7 +49,7 @@ This package contains the documentation files for opm-common
|
||||
# consider using -DUSE_VERSIONED_DIR=ON if backporting
|
||||
%build
|
||||
%{?el6:scl enable devtoolset-3 bash}
|
||||
%{?el6:cmake28} %{?!el6:cmake} -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSTRIP_DEBUGGING_SYMBOLS=ON -DCMAKE_INSTALL_PREFIX=%{_prefix} -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF %{?el6:-DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gcc -DCMAKE_Fortran_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gfortran -DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148}
|
||||
%{?el6:cmake28} %{?!el6:cmake} -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSTRIP_DEBUGGING_SYMBOLS=ON -DCMAKE_INSTALL_PREFIX=%{_prefix} -DCMAKE_INSTALL_DOCDIR=share/doc/%{name}-%{version} -DUSE_RUNPATH=OFF -DWITH_NATIVE=OFF %{?el6:-DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/g++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gcc -DCMAKE_Fortran_COMPILER=/opt/rh/devtoolset-3/root/usr/bin/gfortran -DBOOST_LIBRARYDIR=%{_libdir}/boost148 -DBOOST_INCLUDEDIR=%{_includedir}/boost148}
|
||||
make
|
||||
|
||||
%install
|
||||
|
||||
@@ -48,8 +48,8 @@ BOOST_AUTO_TEST_CASE(DoLogging) {
|
||||
BOOST_AUTO_TEST_CASE(Test_Format) {
|
||||
BOOST_CHECK_EQUAL( "There is an error here?\nIn file /path/to/file, line 100\n" , Log::fileMessage("/path/to/file" , 100 , "There is an error here?"));
|
||||
|
||||
BOOST_CHECK_EQUAL( "Error: This is the error" , Log::prefixMessage(Log::MessageType::Error , "This is the error"));
|
||||
BOOST_CHECK_EQUAL( "Warning: This is the warning" , Log::prefixMessage(Log::MessageType::Warning , "This is the warning"));
|
||||
BOOST_CHECK_EQUAL( "\nError: This is the error" , Log::prefixMessage(Log::MessageType::Error , "This is the error"));
|
||||
BOOST_CHECK_EQUAL( "\nWarning: This is the warning" , Log::prefixMessage(Log::MessageType::Warning , "This is the warning"));
|
||||
BOOST_CHECK_EQUAL( "Info: This is the info" , Log::prefixMessage(Log::MessageType::Info , "This is the info"));
|
||||
}
|
||||
|
||||
@@ -250,10 +250,10 @@ BOOST_AUTO_TEST_CASE(TestHelperFunctions)
|
||||
|
||||
// fileMessage
|
||||
BOOST_CHECK_EQUAL(fileMessage("foo/bar", 1, "message"), "message\nIn file foo/bar, line 1\n");
|
||||
BOOST_CHECK_EQUAL(fileMessage(MessageType::Error, "foo/bar", 1, "message"), "Error: message\nIn file foo/bar, line 1\n");
|
||||
BOOST_CHECK_EQUAL(fileMessage(MessageType::Error, "foo/bar", 1, "message"), "\nError: message\nIn file foo/bar, line 1\n");
|
||||
|
||||
// prefixMessage
|
||||
BOOST_CHECK_EQUAL(prefixMessage(MessageType::Error, "message"), "Error: message");
|
||||
BOOST_CHECK_EQUAL(prefixMessage(MessageType::Error, "message"), "\nError: message");
|
||||
BOOST_CHECK_EQUAL(prefixMessage(MessageType::Info, "message"), "Info: message");
|
||||
BOOST_CHECK_EQUAL(prefixMessage(MessageType::Note, "message"), "Note: message");
|
||||
|
||||
@@ -356,7 +356,7 @@ BOOST_AUTO_TEST_CASE(TestOpmLogWithLimits)
|
||||
+ Log::colorCodeMessage(Log::MessageType::Info, "Info") + "\n"
|
||||
+ Log::colorCodeMessage(Log::MessageType::Bug, "Bug") + "\n"
|
||||
+ Log::colorCodeMessage(Log::MessageType::Warning, "Warning") + "\n"
|
||||
+ Log::colorCodeMessage(Log::MessageType::Warning, "Message limit reached for message category: Warning") + "\n";
|
||||
+ Log::colorCodeMessage(Log::MessageType::Warning, "Message limit reached for message category: \nWarning") + "\n";
|
||||
|
||||
BOOST_CHECK_EQUAL(log_stream2.str(), expected2);
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
pushd . > /dev/null
|
||||
opm-common/travis/build-opm-common.sh
|
||||
cd opm-common/build
|
||||
ctest --output-on-failure
|
||||
popd > /dev/null
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
build_order=(opm-common opm-parser opm-material opm-output opm-core opm-grid ewoms opm-simulators opm-upscaling)
|
||||
build_order=(opm-common opm-parser opm-output opm-material opm-grid opm-core ewoms opm-simulators)
|
||||
|
||||
# This shell script should be started with the name of a module as
|
||||
# only only command line argument. It will start by building all
|
||||
@@ -30,7 +30,7 @@ function upstream_build {
|
||||
echo "Building: ${project}"
|
||||
mkdir -p ${project}/build
|
||||
pushd ${project}/build > /dev/null
|
||||
cmake ../ -DENABLE_PYTHON=ON -DBUILD_TESTING=OFF -DSILENCE_EXTERNAL_WARNINGS=True -DUSE_QUADMATH=OFF -DADD_DISABLED_CTESTS=OFF
|
||||
cmake ../ -DENABLE_PYTHON=ON -DBUILD_TESTING=OFF -DSILENCE_EXTERNAL_WARNINGS=ON -DUSE_QUADMATH=OFF -DADD_DISABLED_CTESTS=OFF
|
||||
make
|
||||
popd > /dev/null
|
||||
}
|
||||
@@ -44,9 +44,14 @@ function downstream_build_and_test {
|
||||
# The build commands cmake, make and ctest must be given as
|
||||
# separate commands and not chained with &&. If chaining with &&
|
||||
# is used the 'set -e' does not exit on first error.
|
||||
cmake ../ -DENABLE_PYTHON=ON -DBUILD_TESTING=ON -DSILENCE_EXTERNAL_WARNINGS=True -DUSE_QUADMATH=OFF -DADD_DISABLED_CTESTS=OFF
|
||||
make
|
||||
ctest --output-on-failure
|
||||
if [ "$project" == "ewoms" ]; then
|
||||
cmake ../ -DENABLE_PYTHON=ON -DBUILD_TESTING=OFF -DSILENCE_EXTERNAL_WARNINGS=ON -DUSE_QUADMATH=OFF -DADD_DISABLED_CTESTS=OFF
|
||||
make
|
||||
else
|
||||
cmake ../ -DENABLE_PYTHON=ON -DBUILD_TESTING=ON -DSILENCE_EXTERNAL_WARNINGS=ON -DUSE_QUADMATH=OFF -DADD_DISABLED_CTESTS=OFF
|
||||
make
|
||||
ctest --output-on-failure
|
||||
fi
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
pushd . > /dev/null
|
||||
cd opm-common
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../ -DBUILD_SHARED_LIBS=ON
|
||||
make
|
||||
popd > /dev/null
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
pushd . > /dev/null
|
||||
cd opm-common
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
make
|
||||
popd > /dev/null
|
||||
@@ -25,7 +25,7 @@ function build_dune {
|
||||
pushd . > /dev/null
|
||||
git clone ${url}
|
||||
cd ${project}
|
||||
git checkout tags/v2.3.1
|
||||
git checkout tags/v2.4.1
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ../
|
||||
@@ -62,11 +62,11 @@ function install_python_deps {
|
||||
}
|
||||
|
||||
|
||||
function build_ert {
|
||||
function build_libecl {
|
||||
install_python_deps
|
||||
git clone https://github.com/Ensembles/ert.git
|
||||
mkdir -p ert/build
|
||||
pushd ert/build > /dev/null
|
||||
git clone https://github.com/Statoil/libecl.git
|
||||
mkdir -p libecl/build
|
||||
pushd libecl/build > /dev/null
|
||||
cmake .. && make
|
||||
popd > /dev/null
|
||||
}
|
||||
@@ -75,7 +75,7 @@ function build_ert {
|
||||
#################################################################
|
||||
|
||||
build_superlu
|
||||
build_ert
|
||||
build_libecl
|
||||
|
||||
build_dune dune-common
|
||||
build_dune dune-istl
|
||||
|
||||
Reference in New Issue
Block a user