diff --git a/.gitmodules b/.gitmodules index a83e793ed130c428ed818e68bc9ba1c50e05af7b..f39e4287a285e576ece78971a8897f64bc137808 100644 --- a/.gitmodules +++ b/.gitmodules @@ -46,3 +46,6 @@ [submodule "ThirdParty/ogs6py"] path = ThirdParty/ogs6py url = https://github.com/joergbuchwald/ogs6py.git +[submodule "ThirdParty/json-cmake"] + path = ThirdParty/json-cmake + url = https://github.com/ufz/json-cmake.git diff --git a/CMakeLists.txt b/CMakeLists.txt index d15d2dd0cbf34157b172b3786c1be9051fef1d8c..43c3169781dee9043d05114a8ead73d5b52a0bb7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,7 @@ endif() option(OGS_USE_CVODE "Use the Sundials CVODE module?" OFF) # ---- CMake includes ---- +include(Versions) include(PreFind) include(CheckTypeSizes) include(Functions) diff --git a/ThirdParty/json-cmake b/ThirdParty/json-cmake new file mode 160000 index 0000000000000000000000000000000000000000..9708cb091f6b89b94d71ae98f8b9e68ea04c47dd --- /dev/null +++ b/ThirdParty/json-cmake @@ -0,0 +1 @@ +Subproject commit 9708cb091f6b89b94d71ae98f8b9e68ea04c47dd diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index 03bd4dafc37b2362bb647df5d55d3da481c94744..c5af43ae39bf692e8f4a40828b06b1977e0e3544 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -95,18 +95,18 @@ if(COMPILER_IS_GCC OR COMPILER_IS_CLANG OR COMPILER_IS_INTEL) endif() if(COMPILER_IS_GCC) - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7.3") - message(FATAL_ERROR "GCC minimum required version is 7.3! You are \ - using ${CMAKE_CXX_COMPILER_VERSION}.") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${ogs.minimum_version.gcc}) + message(FATAL_ERROR "GCC minimum required version is ${OGS_GCC_MINIMUM_VERSION}! \ + You are using ${CMAKE_CXX_COMPILER_VERSION}.") endif() add_compile_options(-fext-numeric-literals) include(GCCSanitizer) endif() if(COMPILER_IS_CLANG) - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5") - message(FATAL_ERROR "Aborting: Clang 3.5 is required! Found version \ - ${CMAKE_CXX_COMPILER_VERSION}") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${ogs.minimum_version.clang}) + message(FATAL_ERROR "Aborting: Clang ${OGS_CLANG_MINIMUM_VERSION} \ + is required! Found version ${CMAKE_CXX_COMPILER_VERSION}") endif() include(ClangSanitizer) endif() diff --git a/scripts/cmake/SubmoduleSetup.cmake b/scripts/cmake/SubmoduleSetup.cmake index 14b87e8af07f2f5bcb09c2cf1f5a9ee90f17039f..d2bc2ac8f3c7c53dda89a7fadf62ae0fd4ba72e4 100644 --- a/scripts/cmake/SubmoduleSetup.cmake +++ b/scripts/cmake/SubmoduleSetup.cmake @@ -15,6 +15,7 @@ set(REQUIRED_SUBMODULES ThirdParty/googletest ThirdParty/iphreeqc/src ThirdParty/jedbrown-cmake-modules + ThirdParty/json-cmake ThirdParty/tclap ThirdParty/tetgen ThirdParty/vtkdiff diff --git a/scripts/cmake/Versions.cmake b/scripts/cmake/Versions.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7d9eed4199c3e840e375473ae7b4c3952e831388 --- /dev/null +++ b/scripts/cmake/Versions.cmake @@ -0,0 +1,8 @@ +include(${PROJECT_SOURCE_DIR}/ThirdParty/json-cmake/JSONParser.cmake) +file(READ ${PROJECT_SOURCE_DIR}/web/data/versions.json jsonFileString) +sbeParseJson(ogs jsonFileString) +# Provides variables, e.g. ogs.minimum_version.gcc +# Output all variables with +# foreach(var ${ogs}) +# message("${var} = ${${var}}") +# endforeach() diff --git a/web/content/docs/devguide/getting-started/prerequisites.pandoc b/web/content/docs/devguide/getting-started/prerequisites.pandoc index 477f64bb4c51f8994994b954b389e46d0d60ff8a..cdf58c4a41733557022da0d09ff31cf93ecad22f 100644 --- a/web/content/docs/devguide/getting-started/prerequisites.pandoc +++ b/web/content/docs/devguide/getting-started/prerequisites.pandoc @@ -31,11 +31,11 @@ As we use lots of features of the C++11-standard we support **Visual Studio 2015 ::: ::: {.linux} -If you have a recent linux distribution you should also have a recent gcc. Please check that you have at least **gcc 6.2**: +If you have a recent linux distribution you should also have a recent gcc. Please check that you have at least **gcc {{< dataFile "versions.minimum_version.gcc" >}}**: ```bash $ gcc --version -gcc (GCC) 6.2.0 +gcc (GCC) {{< dataFile "versions.minimum_version.gcc" >}}.0 ``` ::: diff --git a/web/data/versions.json b/web/data/versions.json new file mode 100644 index 0000000000000000000000000000000000000000..2f6053556ab896dc5914a65bef90df79dc968c3e --- /dev/null +++ b/web/data/versions.json @@ -0,0 +1,6 @@ +{ + "minimum_version": { + "gcc": "7.3", + "clang": "3.5" + } +} diff --git a/web/layouts/shortcodes/dataFile.html b/web/layouts/shortcodes/dataFile.html new file mode 100644 index 0000000000000000000000000000000000000000..d47c61c71a2be7278b7c8d5d967c9cebc5b19fd1 --- /dev/null +++ b/web/layouts/shortcodes/dataFile.html @@ -0,0 +1,9 @@ +{{- with .Get 0 -}} + {{- $map := split . "." }} + {{- $url := index $.Site.Data $map -}} + {{- if $url -}} +{{- $url -}} + {{- else -}} +{{- errorf "No data for key %s" . -}} + {{- end -}} +{{- end -}}