diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b11b5f42e8259cc8949c0405bb07a9482d6f81f..0823bb4773d0f7edce475c765392341195cae258 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,12 +43,9 @@ option(OGS_USE_PYTHON "Interface with Python" ON) option(OGS_USE_POETRY "Enables automatic Python virtual environment handling with poetry." ON ) -if(WIN32) - option(OGS_BUILD_SWMM "Should the SWMM interface be built?" ON) -endif() -if(NOT WIN32 AND OGS_BUILD_SWMM) - message(FATAL_ERROR "OGS_BUILD_SWMM requires Windows!") -endif() +cmake_dependent_option( + OGS_BUILD_SWMM "Should the SWMM interface be built?" ON "WIN32" OFF +) if(OGS_USE_PETSC) set(OGS_USE_MPI ON CACHE BOOL "Use MPI" FORCE) @@ -228,12 +225,8 @@ include(UnityBuildSettings) if(POETRY) file(STRINGS ${PROJECT_BINARY_DIR}/.python_packages OGS_PYTHON_PACKAGES) list(REMOVE_DUPLICATES OGS_PYTHON_PACKAGES) - # Hack for tespy requirement - if(${Python3_VERSION} VERSION_LESS 3.10) - set(_python_arg --python <3.9) - endif() execute_process( - COMMAND ${_CMD_COMMAND} poetry add ${_python_arg} ${OGS_PYTHON_PACKAGES} + COMMAND ${_CMD_COMMAND} poetry add ${OGS_PYTHON_PACKAGES} WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) endif() @@ -246,5 +239,4 @@ check_header_compilation() include(scripts/cmake/MarkVariablesAdvanced.cmake) unset(PRE_INSTALL_RUN CACHE) -include(FeatureSummary) -feature_summary(WHAT ALL) +include(Features) diff --git a/CMakePresets.json b/CMakePresets.json index 6a2b0af8b59d3d95c143db6eea7d6539a29b5426..9c01a59c4a5dca157d204935d8d83cfad7aa8afa 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -1,8 +1,8 @@ { - "version": 2, + "version": 3, "cmakeMinimumRequired": { "major": 3, - "minor": 20, + "minor": 21, "patch": 0 }, "configurePresets": [ @@ -35,7 +35,12 @@ { "name": "_msvc", "hidden": true, - "generator": "Visual Studio 16 2019" + "generator": "Visual Studio 16 2019", + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" + } }, { "name": "_gui", @@ -52,12 +57,16 @@ "cacheVariables": { "OGS_USE_PYTHON": "OFF", "BUILD_SHARED_LIBS": "ON", - "OGS_USE_CONAN": "OFF", "OGS_USE_PETSC": "ON" }, "environment": { "CC": "mpicc", "CXX": "mpic++" + }, + "condition": { + "type": "notEquals", + "lhs": "${hostSystemName}", + "rhs": "Windows" } }, { @@ -168,12 +177,29 @@ "cacheVariables": { "OGS_BUILD_UTILS": "OFF", "OGS_USE_PYTHON": "OFF", - "OGS_USE_CONAN": "OFF", "OGS_USE_POETRY": "OFF" } + }, + { + "name": "ci-no-unity", + "inherits": "release-all", + "cacheVariables": { + "OGS_USE_PYTHON": "OFF", + "OGS_USE_POETRY": "OFF", + "OGS_USE_UNITY_BUILDS": "OFF" + } } ], "buildPresets": [ + { + "name": "_win", + "hidden": true, + "condition": { + "type": "equals", + "lhs": "${hostSystemName}", + "rhs": "Windows" + } + }, { "name": "release", "configurePreset": "release" @@ -206,14 +232,17 @@ }, { "name": "msvc-release", + "inherits": "_win", "configurePreset": "msvc-release" }, { "name": "msvc-debug", + "inherits": "_win", "configurePreset": "msvc-debug" }, { "name": "msvc-release-gui", + "inherits": "_win", "configurePreset": "msvc-release-gui", "targets": [ "DataExplorer" @@ -221,43 +250,66 @@ }, { "name": "msvc-debug-gui", + "inherits": "_win", "configurePreset": "msvc-debug-gui", "targets": [ "DataExplorer" ] + }, + { + "name": "release-all", + "configurePreset": "release-all" + }, + { + "name": "coverage", + "configurePreset": "coverage" + }, + { + "name": "ci-simplest", + "configurePreset": "ci-simplest" + }, + { + "name": "ci-no-unity", + "configurePreset": "ci-no-unity" } ], "testPresets": [ { - "name": "_release", + "name": "release", "configurePreset": "release", - "hidden": true, "output": { "outputOnFailure": true - } - }, - { - "name": "release", - "inherits": [ - "_release" - ], + }, "filter": { - "exclude": { - "label": "large" + "include": { + "label": "default" + } + }, + "execution": { + "repeat": { + "mode": "until-pass", + "count": 2 } } }, { "name": "release-large", "inherits": [ - "_release" + "release" ], "filter": { "include": { - "label": "large" + "label": "default|large" } } }, + { + "name": "release-all-large", + "configurePreset": "release-all", + "inherits": [ + "release-large" + ] + }, { "name": "release-petsc", "configurePreset": "release-petsc", @@ -285,6 +337,20 @@ "inherits": [ "release-large" ] + }, + { + "name": "release-gui", + "configurePreset": "release-gui", + "inherits": [ + "release" + ] + }, + { + "name": "release-all", + "configurePreset": "release-all", + "inherits": [ + "release" + ] } ] } diff --git a/ProcessLib/LiquidFlow/Tests.cmake b/ProcessLib/LiquidFlow/Tests.cmake index a302aca454319a6fdada998be8a693b33b576a9d..d2a4af6a0e19496a88d306ea61f7fca26013d5ab 100644 --- a/ProcessLib/LiquidFlow/Tests.cmake +++ b/ProcessLib/LiquidFlow/Tests.cmake @@ -482,7 +482,9 @@ AddTest( WRAPPER time TESTER xdmfdiff # See https://gitlab.opengeosys.org/ogs/ogs/-/merge_requests/3184#note_85104 - REQUIREMENTS NOT OGS_USE_MPI AND NOT COMPILER_IS_APPLE_CLANG + # TODO: re-enable this, see #3177. + # REQUIREMENTS NOT OGS_USE_MPI AND NOT COMPILER_IS_APPLE_CLANG + REQUIREMENTS OFF DIFF_DATA square_5x5_tris_32.xdmf square_5x5_tris_32.xdmf pressure pressure 1e-7 1e-13 square_5x5_tris_32.xdmf square_5x5_tris_32.xdmf HydraulicFlow HydraulicFlow 1e-7 1e-13 diff --git a/ProcessLib/RichardsComponentTransport/Tests.cmake b/ProcessLib/RichardsComponentTransport/Tests.cmake index fb78a7cfa0b072aad85273b2cb5ae976ba5ed0fc..152024f48324c4285255683fe385869479b06a76 100644 --- a/ProcessLib/RichardsComponentTransport/Tests.cmake +++ b/ProcessLib/RichardsComponentTransport/Tests.cmake @@ -1,5 +1,15 @@ -if (NOT OGS_USE_MPI) - OgsTest(PROJECTFILE Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl1/Padilla_NaCl1.prj RUNTIME 7) - OgsTest(PROJECTFILE Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl1/Padilla_NaCl1_quadratic.prj RUNTIME 7) - OgsTest(PROJECTFILE Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl6/Padilla_NaCl6.prj RUNTIME 13) +if(NOT OGS_USE_MPI) + # TODO: re-enable this, see #3178. OgsTest(PROJECTFILE + # Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl1/Padilla_NaCl1.prj + # RUNTIME 7) + OgsTest( + PROJECTFILE + Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl1/Padilla_NaCl1_quadratic.prj + RUNTIME 7 + ) + OgsTest( + PROJECTFILE + Parabolic/RichardsComponentTransport/Padilla/Padilla_NaCl6/Padilla_NaCl6.prj + RUNTIME 13 + ) endif() diff --git a/ThirdParty/container-maker b/ThirdParty/container-maker index 5324b5c126e6ca4951bcfb109d7fca8fae4ad218..429744741d92f12647196b76185bfecd9063ff99 160000 --- a/ThirdParty/container-maker +++ b/ThirdParty/container-maker @@ -1 +1 @@ -Subproject commit 5324b5c126e6ca4951bcfb109d7fca8fae4ad218 +Subproject commit 429744741d92f12647196b76185bfecd9063ff99 diff --git a/scripts/ci/extends/template-build-linux.yml b/scripts/ci/extends/template-build-linux.yml index 3c97410f1e3d70094990b8c86847e196eeae2757..2a6c3abbe476c568ee781db941b3843d15e28c82 100644 --- a/scripts/ci/extends/template-build-linux.yml +++ b/scripts/ci/extends/template-build-linux.yml @@ -6,44 +6,42 @@ before_script: - 'echo "For debugging run: docker run --rm -it -v $CI_BUILDS_DIR:/builds -w=$CI_PROJECT_DIR $CI_JOB_IMAGE"' - - build_dir=${BUILD_DIR:-$CMAKE_PRESET} - - build_dir_full=../build/${build_dir} + - build_dir_full=../build/${CMAKE_PRESET} + - log_file=$build_dir_full/make.output - rm -rf $build_dir_full - - mkdir -p $build_dir_full - - mkdir build + - mkdir -p $build_dir_full build - if [[ "$OSTYPE" == "darwin"* ]] ; then readlink_cmd=greadlink; else readlink_cmd=readlink; fi - - ln -s `$readlink_cmd -f $build_dir_full` build/${build_dir} + - ln -s `$readlink_cmd -f $build_dir_full` build/${CMAKE_PRESET} - ([ "${CONAN_USER_HOME}" == "${CI_PROJECT_DIR}/.conan" ]) && conan remove --system-reqs '*' - ([[ $BUILD_CTEST_LARGE_ON_MASTER && "${CI_COMMIT_BRANCH}" == "master" && "${CMAKE_ARGS}" == *"USE_PYTHON=ON"* ]]) && export BUILD_CTEST_LARGE=true script: - - cmake -S . -B $build_dir_full --preset=$CMAKE_PRESET $CMAKE_ARGS -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES - - cd $build_dir_full + - cmake -S . --preset=$CMAKE_PRESET -Wno-dev $CMAKE_ARGS -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES - | if [[ -z "$TARGETS" ]]; then - $BUILD_CMD_PREFIX cmake --build . --target package > >(tee make.output) + $BUILD_CMD_PREFIX cmake --build --preset=$CMAKE_PRESET --target package > >(tee $log_file) - if [ "$BUILD_TESTS" = true ]; then $BUILD_CMD_PREFIX cmake --build . --target tests ; fi + if [ "$BUILD_TESTS" = true ]; then $BUILD_CMD_PREFIX cmake --build --preset=$CMAKE_PRESET --target tests ; fi if [ "$BUILD_CTEST" = true ]; then - - ctest_labels="default" ctest_timeout=15 + preset_postfix="" if [ "$BUILD_CTEST_LARGE" = true ]; then - ctest_labels="large|$ctest_labels" ctest_timeout=90 + preset_postfix="-large" fi if [[ "$OSTYPE" == "darwin"* ]]; then alias date=gdate ; fi - ctest -T Test --no-compress-output -L "$ctest_labels" --repeat until-pass:2 --stop-time `date -d "today + ${ctest_timeout} minutes" +'%H:%M:%S'` - cp Testing/**/Test.xml Tests/ctest.xml - + ctest --preset=${CMAKE_PRESET}${preset_postfix} --output-junit Tests/ctest.xml --no-compress-output --stop-time `date -d "today + ${ctest_timeout} minutes" +'%H:%M:%S'` fi + else - $BUILD_CMD_PREFIX cmake --build . --target ${TARGETS} > >(tee make.output) + + $BUILD_CMD_PREFIX cmake --build --preset=$CMAKE_PRESET --target ${TARGETS} > >(tee $log_file) + fi - | if [[ "$CHECK_WARNINGS" = true ]] ; then - if [[ $(cat make.output | grep warning -i | grep -v 'WARNING: no license files found') ]]; then printf 'There were compiler warnings:\n\n'; cat make.output | grep warning -i | grep -v 'WARNING: no license files found'; exit 1; fi + if [[ $(cat $log_file | grep warning -i | grep -v 'WARNING: no license files found') ]]; then printf 'There were compiler warnings:\n\n'; cat $log_file | grep warning -i | grep -v 'WARNING: no license files found'; exit 1; fi fi diff --git a/scripts/ci/extends/template-build-win.yml b/scripts/ci/extends/template-build-win.yml index 4c952c1459514b35affa5503d8eacf74061965b6..55c4fe9c953c8e613344abbb9eb2cee20c187a52 100644 --- a/scripts/ci/extends/template-build-win.yml +++ b/scripts/ci/extends/template-build-win.yml @@ -8,27 +8,24 @@ needs: [meta] variables: script: - - $build_directory = if ($env:BUILD_DIR) { $env:BUILD_DIR } else { $env:CMAKE_PRESET } - - $build_directory_full = "..\build\" + $build_directory + - $build_directory_full = "..\build\" + $env:CMAKE_PRESET + - $log_file = $build_directory_full + "\make.output" - (rm -r -fo $build_directory_full) - cmd /c if not exist $build_directory_full mkdir $build_directory_full - mkdir build # Create symlink https://stackoverflow.com/a/34905638/80480 - - cmd /c mklink /D build\$build_directory $env:CI_PROJECT_DIR\$build_directory_full - - $cmake_cmd = "cmake -S . -B $build_directory_full --preset=$env:CMAKE_PRESET - $env:CMAKE_ARGS + - cmd /c mklink /D build\$env:CMAKE_PRESET $env:CI_PROJECT_DIR\$build_directory_full + - $cmake_cmd = "cmake -S . --preset=$env:CMAKE_PRESET -Wno-dev $env:CMAKE_ARGS -DOGS_BUILD_PROCESSES=$env:BUILD_PROCESSES" - $cmake_cmd - Invoke-Expression $cmake_cmd - - cd $build_directory_full - - cmake --build . --target package | Tee-Object -FilePath make.output - - if($env:BUILD_TESTS -eq "true") { cmake --build . --target tests } - - if($env:BUILD_CTEST -eq "true") { cmake --build . --target ctest } - cp Testing/**/Test.xml Tests/ctest.xml + - cmake --build --preset=$env:CMAKE_PRESET --target package | Tee-Object -FilePath $log_file + - if($env:BUILD_TESTS -eq "true") { cmake --build --preset=$env:CMAKE_PRESET --target tests } + - if($env:BUILD_CTEST -eq "true") { ctest --preset=$env:CMAKE_PRESET --output-junit Tests/ctest.xml } - | - if($env:CHECK_WARNINGS -eq "true" -and (cat make.output | Select-String -Pattern ': warning') ) + if($env:CHECK_WARNINGS -eq "true" -and (cat $log_file | Select-String -Pattern ': warning') ) { Write-Output 'There were compiler warnings:\n' - cat make.output | Select-String -Pattern ': warning' + cat $log_file | Select-String -Pattern ': warning' exit 1 } diff --git a/scripts/ci/extends/test-artifacts.yml b/scripts/ci/extends/test-artifacts.yml index 96f2a07bbe8102bbf7a359f14d1c810018ec80d7..ffe88323e809a4010c257ebc27e0b053ace36216 100644 --- a/scripts/ci/extends/test-artifacts.yml +++ b/scripts/ci/extends/test-artifacts.yml @@ -3,7 +3,7 @@ when: always paths: - build/*/logs/*.log - - build/*/Tests/ctest.xml + - build/*/Tests/ctest-junit.xml - build/*/Tests/testrunner.xml - build/*/make.output - build/*/*.zip @@ -12,3 +12,4 @@ reports: junit: - build/*/Tests/testrunner.xml + - build/*/Tests/ctest.xml diff --git a/scripts/ci/jobs/build-docs.yml b/scripts/ci/jobs/build-docs.yml index a268fbbf7d4d3268ede168c7447e4425dd6fec9b..d773fe630cd25c56db4473a448c65c176ff5edbd 100644 --- a/scripts/ci/jobs/build-docs.yml +++ b/scripts/ci/jobs/build-docs.yml @@ -33,7 +33,7 @@ build docs: - python /opt/lizard/lizard.py -EWordCount -x "./ThirdParty/*" -x "./Tests/*" || true # word-cloud # build - cd build - - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_CONAN=OFF -DOGS_USE_POETRY=OFF + - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release -DOGS_USE_POETRY=OFF -DOGS_BUILD_PROCESSES=SteadyStateDiffusion - cmake . --graphviz=cmake-dependencies.dot && dot -Tsvg cmake-dependencies.dot -o cmake-dependencies.svg - cmake . -DOGS_BUILD_PROCESSES=SteadyStateDiffusion - cmake --build . --target doc > >(tee make-docs.output) diff --git a/scripts/ci/jobs/build-linux-frontend.yml b/scripts/ci/jobs/build-linux-frontend.yml index ff068ee51937b4c353679121c268c4b102068f4d..97452aa7dd512e94a49422723c7cc71d597c7130 100644 --- a/scripts/ci/jobs/build-linux-frontend.yml +++ b/scripts/ci/jobs/build-linux-frontend.yml @@ -10,7 +10,7 @@ build linux frontend: variables: CCACHE_DIR: "/data/ogs/.ccache" CMAKE_PRESET: release - CMAKE_ARGS: "-DOGS_USE_CONAN=OFF -DOGS_USE_PYTHON=OFF -DOGS_CPU_ARCHITECTURE=generic" + CMAKE_ARGS: "-DOGS_USE_PYTHON=OFF -DOGS_CPU_ARCHITECTURE=generic" before_script: - !reference [.template-build-linux, before_script] - source scripts/env/eve/cli.sh diff --git a/scripts/ci/jobs/build-linux.yml b/scripts/ci/jobs/build-linux.yml index 8a1dcf52956729ed41a84de58fe8be35c6d4a72d..24ebb7be38d603b817fc97ff3d1fbec7d3c1a0a3 100644 --- a/scripts/ci/jobs/build-linux.yml +++ b/scripts/ci/jobs/build-linux.yml @@ -8,10 +8,8 @@ build linux: timeout: 2h variables: BUILD_CTEST_LARGE_ON_MASTER: "true" - CMAKE_PRESET: release + CMAKE_PRESET: release-all CMAKE_ARGS: >- - -DOGS_USE_CONAN=OFF - -DOGS_USE_MFRONT=ON -DOGS_$USE_PYTHON -DOGS_INSTALL_DEPENDENCIES=ON parallel: @@ -29,11 +27,10 @@ linux ctest large: allow_failure: true timeout: 2h variables: - TARGETS: ctest-large - CMAKE_PRESET: release + BUILD_TESTS: "false" + BUILD_CTEST_LARGE: "true" + CMAKE_PRESET: release-all CMAKE_ARGS: >- - -DOGS_USE_CONAN=OFF - -DOGS_USE_MFRONT=ON -DOGS_USE_PYTHON=ON build linux (no unity): @@ -45,16 +42,10 @@ build linux (no unity): needs: [meta, ci_images] timeout: 1h variables: - BUILD_DIR: "no-unity" BUILD_TESTS: "false" BUILD_CTEST: "false" CHECK_WARNINGS: "true" - CMAKE_PRESET: release - CMAKE_ARGS: >- - -DOGS_USE_PYTHON=OFF - -DOGS_USE_CONAN=OFF - -DOGS_USE_MFRONT=ON - -DOGS_USE_UNITY_BUILDS=OFF + CMAKE_PRESET: ci-no-unity build linux (no deps, no procs): image: $CONTAINER_GCC_IMAGE @@ -78,7 +69,6 @@ build linux arch: CMAKE_PRESET: release-all CMAKE_ARGS: >- -DBUILD_SHARED_LIBS=ON - -DOGS_USE_CONAN=OFF -DOGS_USE_POETRY=OFF build linux ubuntu: @@ -90,5 +80,3 @@ build linux ubuntu: needs: [meta] variables: CMAKE_PRESET: release-all - CMAKE_ARGS: >- - -DOGS_USE_CONAN=OFF diff --git a/scripts/ci/jobs/build-mac.yml b/scripts/ci/jobs/build-mac.yml index 5c46c156f61eb87cf62b412c3fc0a3e877027a7b..ddc9de0c07c355804aa8f5025e71703d187f36ba 100644 --- a/scripts/ci/jobs/build-mac.yml +++ b/scripts/ci/jobs/build-mac.yml @@ -6,7 +6,6 @@ build mac: - .test-artifacts needs: [meta] variables: - BUILD_DIR: "mac-release" CHECK_WARNINGS: "true" CMAKE_PRESET: release CMAKE_ARGS: >- diff --git a/scripts/ci/jobs/build-win.yml b/scripts/ci/jobs/build-win.yml index ce3ca3d0946315016c64556da598dd5dbedf2354..fa6314ee51a083eca02473610a5dc44ff79b18a0 100644 --- a/scripts/ci/jobs/build-win.yml +++ b/scripts/ci/jobs/build-win.yml @@ -7,13 +7,11 @@ build win: - when: manual allow_failure: true variables: - BUILD_DIR: win-release CHECK_WARNINGS: "true" CMAKE_PRESET: release CMAKE_ARGS: >- -DOGS_CI_TESTRUNNER_REPEAT=1 -DOGS_$USE_PYTHON - -DOGS_USE_CONAN=AUTO parallel: matrix: - USE_PYTHON: ["USE_PYTHON=ON", "USE_PYTHON=OFF"] diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake index 763b6f4bc0dcec982c889c9a225736ac2853ace4..5bea088560a764dbec14df183b01b1b7628d7b67 100644 --- a/scripts/cmake/CMakeSetup.cmake +++ b/scripts/cmake/CMakeSetup.cmake @@ -37,6 +37,7 @@ include(GNUInstallDirs) include(ProcessorCount) ProcessorCount(NUM_PROCESSORS) set(NUM_PROCESSORS ${NUM_PROCESSORS} CACHE STRING "Processor count") +include(CMakeDependentOption) # Check if this project is included in another if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 95b79c392ac3a9c1033b0637e841bb2d718be917..4f60c7a636a6bfd723cccd03d8d3f61eeff74c29 100644 --- a/scripts/cmake/ConanSetup.cmake +++ b/scripts/cmake/ConanSetup.cmake @@ -1,4 +1,4 @@ -if(NOT OGS_USE_CONAN OR (NOT OGS_USE_LIS AND NOT OGS_USE_NETCDF)) +if(NOT OGS_USE_CONAN OR NOT OGS_USE_NETCDF) return() endif() string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower) diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake index 9cc8727c2505a6c0528df7c56c047f6b37bc469e..c39a29fc823ca242893a9e9056e4b2d18eecd16b 100644 --- a/scripts/cmake/Dependencies.cmake +++ b/scripts/cmake/Dependencies.cmake @@ -321,7 +321,8 @@ if(OGS_BUILD_GUI) CPMAddPackage( NAME Shapelib GITHUB_REPOSITORY OSGeo/shapelib - VERSION 1.5.0 + VERSION 1.5.0-dev + GIT_TAG 21ae8fc16afa15a1b723077b6cec3a9abc592f6a EXCLUDE_FROM_ALL YES ) target_include_directories( diff --git a/scripts/cmake/Features.cmake b/scripts/cmake/Features.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f9a4b89bb3ee56252dbae2172ff8d84e00230cf8 --- /dev/null +++ b/scripts/cmake/Features.cmake @@ -0,0 +1,28 @@ +include(FeatureSummary) +add_feature_info(OGS OGS_BUILD_CLI "The OGS simulator (OGS_BUILD_CLI)") +add_feature_info( + Utilities OGS_BUILD_UTILS "Command line tools (OGS_BUILD_UTILS)" +) +add_feature_info( + DataExplorer OGS_BUILD_GUI + "Graphical data exploration and processing (OGS_BUILD_GUI)" +) +add_feature_info( + MFront OGS_USE_MFRONT "MFront material models (OGS_USE_MFRONT)" +) +add_feature_info( + Python-interface OGS_USE_PYTHON + "Python boundary conditions and source terms (OGS_USE_PYTHON)" +) +add_feature_info(PETSc OGS_USE_PETSC "Parallel processing (OGS_USE_PETSC)") +add_feature_info( + Tests OGS_BUILD_TESTING "Unit and benchmarks tests (OGS_BUILD_TESTING)" +) +add_feature_info( + build-shared BUILD_SHARED_LIBS "Shared libraries (BUILD_SHARED_LIBS)" +) +add_feature_info( + build-unity OGS_USE_UNITY_BUILDS "Unity build (OGS_USE_UNITY_BUILDS)" +) + +feature_summary(WHAT PACKAGES_FOUND ENABLED_FEATURES) diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index 80e22723bc6d4ad094dfa3a4c3cb9d339cb2261c..5e914f0d29350ec551da89241f8ff64eeb391965 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -71,10 +71,6 @@ if(OGS_USE_MFRONT) set(HAVE_PTHREADS TRUE) add_definitions(-DHAVE_PTHREADS) endif() - if(OGS_USE_CONAN) - # cmake-lint: disable=C0103 - set(TFELHOME ${CONAN_TFEL_ROOT} CACHE INTERNAL "") - endif() endif() find_package(OpenMP) @@ -94,6 +90,7 @@ if(OGS_BUILD_GUI) endif() find_package(Qt5 ${ogs.minimum_version.qt} REQUIRED ${QT_MODULES}) cmake_policy(SET CMP0020 NEW) + list(APPEND CMAKE_INSTALL_RPATH ${Qt5_DIR}/../..) endif() if(OGS_USE_NETCDF) diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake index 73c66c856f914f992dcd2ed4391b2480aa8e54b8..8b2b26b567ee40817e1f08f8ffc53b358053ba6a 100644 --- a/scripts/cmake/PythonSetup.cmake +++ b/scripts/cmake/PythonSetup.cmake @@ -1,7 +1,14 @@ # cmake-lint: disable=C0103 + +# prefer unix location over frameworks (Apple-only) +set(Python3_FIND_FRAMEWORK LAST) if(OGS_USE_POETRY) find_program(POETRY poetry) if(POETRY) + find_package( + Python3 ${ogs.minimum_version.python} COMPONENTS Interpreter + REQUIRED + ) configure_file( ${PROJECT_SOURCE_DIR}/scripts/python/poetry.in.toml ${PROJECT_BINARY_DIR}/poetry.toml COPYONLY diff --git a/scripts/env/eve/cli.sh b/scripts/env/eve/cli.sh index bfaefcee40998ced52aadfe01e84376eed03e3e3..109c13883615bdf86d255632dba574ed4cb5df88 100644 --- a/scripts/env/eve/cli.sh +++ b/scripts/env/eve/cli.sh @@ -8,7 +8,7 @@ fi module use /global/apps/modulefiles module load foss/2020b -module load cmake/3.20.2-1 +module load cmake/3.21.1-1 module load Ninja/1.10.1 # Tools diff --git a/scripts/python/pyproject.in.toml b/scripts/python/pyproject.in.toml index 0adfb1eeb9b51a59e67beb61ef7e21f89423aada..f1e79914dd2f0aea3c3c5aea114326556f0efb62 100644 --- a/scripts/python/pyproject.in.toml +++ b/scripts/python/pyproject.in.toml @@ -1,11 +1,11 @@ [tool.poetry] name = "ogs-build" -version = "@OGS_VERSION@" # is written just once, maybe outdated +version = "@OGS_VERSION@" # is written just once, maybe outdated description = "CMake auto-generated" authors = [""] [tool.poetry.dependencies] -python = ">=@ogs.minimum_version.python@" +python = "@Python3_VERSION@" [tool.poetry.dev-dependencies]