diff --git a/.cmake-format.yaml b/.cmake-format.yaml index 0c4294e388e556b8c32dc630cf08281c8e50ed3a..fb5a054abb7b594535793ccf668d9ac1324d34b8 100644 --- a/.cmake-format.yaml +++ b/.cmake-format.yaml @@ -3,6 +3,11 @@ format: max_subgroups_hwrap: 3 dangle_parens: true command_case: "unchanged" +lint: + disabled_codes: + - "C0301" + - "C0301" # Line to long. + - "C0113" # Missing COMMAND for optional dependencies. parse: additional_commands: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6c98e0c7198a2bd2d2788a004466d4b0c2df64f1..4fe13c3021404cdbc58145a891bfc6aad346414e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -42,3 +42,12 @@ repos: hooks: - id: codespell exclude: 'ThirdParty/.*|Tests/Data/.*|.*\.ya?ml|.*\.bib|^web/content/imprint.md|^GeoLib/IO/XmlIO/OpenGeoSysSTN.xsd|^Applications/FileIO/Legacy/OGSIOVer4.cpp' +- repo: https://github.com/cheshirekow/cmake-format-precommit + rev: v0.6.13 + hooks: + - id: cmake-format + additional_dependencies: ["cmakelang[YAML]"] + exclude: '.*' # Disabled for now + - id: cmake-lint + additional_dependencies: ["cmakelang[YAML]"] + exclude: 'scripts/cmake/jedbrown/.*|PackagingMacros.cmake|conan.cmake|CPM.cmake|FindFilesystem.cmake|ConanSetup.cmake' diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt index e59e90c776bf3bf122e13670274c0b843cd8c429..dabcefc541e5bc8ce67ff371e53bdb8fab64aa44 100644 --- a/Applications/ApplicationsLib/CMakeLists.txt +++ b/Applications/ApplicationsLib/CMakeLists.txt @@ -5,30 +5,31 @@ set(LIB_SOURCES ${SOURCES_APPLICATIONSLIB}) # Library ogs_add_library(ApplicationsLib ${LIB_SOURCES}) -target_link_libraries(ApplicationsLib - PUBLIC BaseLib GeoLib NumLib Processes - PRIVATE CMakeInfoLib - MathLib - MeshLib - MeshGeoToolsLib - ParameterLib - ProcessLib - spdlog::spdlog - $<$<BOOL:${OGS_USE_PYTHON}>:pybind11::pybind11> +target_link_libraries( + ApplicationsLib + PUBLIC BaseLib GeoLib NumLib Processes + PRIVATE CMakeInfoLib + MathLib + MeshLib + MeshGeoToolsLib + ParameterLib + ProcessLib + spdlog::spdlog + $<$<BOOL:${OGS_USE_PYTHON}>:pybind11::pybind11> ) -target_compile_definitions(ApplicationsLib - PUBLIC - $<$<BOOL:${USE_LIS}>:USE_LIS> - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> +target_compile_definitions( + ApplicationsLib PUBLIC $<$<BOOL:${USE_LIS}>:USE_LIS> + $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> ) # Set cpp definitions if the cmake option is enabled for the given process. -foreach(process ${ProcessesList}) +foreach(process ${_processes_list}) if(OGS_BUILD_PROCESS_${process}) string(TOUPPER "OGS_BUILD_PROCESS_${process}" EnableProcess) - set_property(TARGET ApplicationsLib - APPEND - PROPERTY COMPILE_DEFINITIONS ${EnableProcess}) + set_property( + TARGET ApplicationsLib APPEND PROPERTY COMPILE_DEFINITIONS + ${EnableProcess} + ) endif() endforeach() diff --git a/Applications/CMakeLists.txt b/Applications/CMakeLists.txt index c731e6e48d889da77ced75bd5908be439d3b576b..5c5757c3b114d38dbd771974514c7c72562297a0 100644 --- a/Applications/CMakeLists.txt +++ b/Applications/CMakeLists.txt @@ -2,11 +2,11 @@ add_subdirectory(ApplicationsLib) add_subdirectory(DataHolderLib) add_subdirectory(FileIO) -if(OGS_BUILD_UTILS AND NOT IS_SUBPROJECT) +if(OGS_BUILD_UTILS AND NOT _IS_SUBPROJECT) add_subdirectory(Utils) elseif(OGS_BUILD_GUI) add_subdirectory(Utils/OGSFileConverter) -endif() # OGS_BUILD_UTILS AND NOT IS_SUBPROJECT +endif() # OGS_BUILD_UTILS AND NOT _IS_SUBPROJECT if(OGS_BUILD_GUI) add_subdirectory(DataExplorer) diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt index 9d631187492a239c94e1325a4b6bdec817228e8a..7d7d42ad4d5da697faee33107f01057b2274d9e1 100644 --- a/Applications/DataExplorer/VtkVis/CMakeLists.txt +++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt @@ -154,7 +154,7 @@ if(OGS_USE_NETCDF) if(NOT OGS_USE_CONAN) target_include_directories(VtkVis SYSTEM PUBLIC ${NETCDF_INCLUDES_C} - PUBLIC ${NETCDF_INCLUDES_CXX}) + ${NETCDF_INCLUDES_CXX}) endif() endif() diff --git a/Applications/Utils/FileConverter/CMakeLists.txt b/Applications/Utils/FileConverter/CMakeLists.txt index ee4df28cbc5714ea245116849fb0d9a4199dc3fb..c30b903c33338a21c82ee8b5b909ac306af1e4fd 100644 --- a/Applications/Utils/FileConverter/CMakeLists.txt +++ b/Applications/Utils/FileConverter/CMakeLists.txt @@ -9,7 +9,8 @@ set(TOOLS TecPlotTools GocadSGridReader GocadTSurfaceReader - Mesh2Raster) + Mesh2Raster +) if(OGS_USE_NETCDF) list(APPEND TOOLS NetCdfConverter) @@ -19,10 +20,11 @@ if(OGS_BUILD_GUI) list(APPEND TOOLS ConvertSHPToGLI FEFLOW2OGS Mesh2Shape) endif() -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} ApplicationsFileIO GitInfoLib MeshLib - MeshGeoToolsLib tclap) +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries( + ${tool} ApplicationsFileIO GitInfoLib MeshLib MeshGeoToolsLib tclap + ) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin) @@ -32,11 +34,9 @@ if(TARGET ConvertSHPToGLI) endif() if(TARGET NetCdfConverter) - target_link_libraries(NetCdfConverter - ${NETCDF_LIBRARIES_CXX} - ${NETCDF_LIBRARIES_C} - ${HDF5_HL_LIBRARIES} - ${HDF5_LIBRARIES} + target_link_libraries( + NetCdfConverter ${NETCDF_LIBRARIES_CXX} ${NETCDF_LIBRARIES_C} + ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ) if(OGS_USE_CONAN AND MSVC) target_link_libraries(NetCdfConverter ${CONAN_LIBS}) diff --git a/Applications/Utils/GeoTools/CMakeLists.txt b/Applications/Utils/GeoTools/CMakeLists.txt index a6e624fb15743d107f8a3659a37eca85d82a6c37..71724aec72bde8992170b0677e1f9635b2fabb36 100644 --- a/Applications/Utils/GeoTools/CMakeLists.txt +++ b/Applications/Utils/GeoTools/CMakeLists.txt @@ -3,14 +3,11 @@ if(NOT OGS_BUILD_GUI) endif() set(TOOLS MoveGeometry TriangulatePolyline) -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} - GeoLib - GitInfoLib - ApplicationsFileIO - tclap - Qt5::Core) +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries( + ${tool} GeoLib GitInfoLib ApplicationsFileIO tclap Qt5::Core + ) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin) diff --git a/Applications/Utils/MeshEdit/CMakeLists.txt b/Applications/Utils/MeshEdit/CMakeLists.txt index 8155924cf64ef97f786dc283ea9148c8b5d328b8..ae507cab6c9e33971212e7df4c2390793fc374c3 100644 --- a/Applications/Utils/MeshEdit/CMakeLists.txt +++ b/Applications/Utils/MeshEdit/CMakeLists.txt @@ -35,9 +35,9 @@ if(OGS_BUILD_GUI) install(TARGETS RemoveGhostData RUNTIME DESTINATION bin) endif() -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} GitInfoLib MeshLib tclap) +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries(${tool} GitInfoLib MeshLib tclap) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin) diff --git a/Applications/Utils/MeshGeoTools/CMakeLists.txt b/Applications/Utils/MeshGeoTools/CMakeLists.txt index 6f2c2850fa019143a893348ea0b9bcafdab526cd..bf2fe19ce8ae1259c04d5a4fa5d9ea6df3481b58 100644 --- a/Applications/Utils/MeshGeoTools/CMakeLists.txt +++ b/Applications/Utils/MeshGeoTools/CMakeLists.txt @@ -14,14 +14,10 @@ if(OGS_BUILD_GUI) list(APPEND TOOLS VerticalSliceFromLayers) endif() -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} - ApplicationsFileIO - GitInfoLib - MeshLib - MeshGeoToolsLib - tclap +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries( + ${tool} ApplicationsFileIO GitInfoLib MeshLib MeshGeoToolsLib tclap ) endforeach() diff --git a/Applications/Utils/ModelPreparation/CMakeLists.txt b/Applications/Utils/ModelPreparation/CMakeLists.txt index e541621a4e15d081ede3740f7105c974edf056b8..52759dc9944b5239a43e3adc89239c43ce392731 100644 --- a/Applications/Utils/ModelPreparation/CMakeLists.txt +++ b/Applications/Utils/ModelPreparation/CMakeLists.txt @@ -1,8 +1,9 @@ set(TOOLS ComputeNodeAreasFromSurfaceMesh convertVtkDataArrayToVtkDataArray - createNeumannBc scaleProperty) -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} GitInfoLib MeshLib tclap) + createNeumannBc scaleProperty +) +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries(${tool} GitInfoLib MeshLib tclap) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin) diff --git a/Applications/Utils/SimpleMeshCreation/CMakeLists.txt b/Applications/Utils/SimpleMeshCreation/CMakeLists.txt index 32a4f2a324f75e4eb4a77cc5a99c9c4b88e31fa8..489364e8222d9d666454d9a35ff8e0829ee92747 100644 --- a/Applications/Utils/SimpleMeshCreation/CMakeLists.txt +++ b/Applications/Utils/SimpleMeshCreation/CMakeLists.txt @@ -3,9 +3,9 @@ if(OGS_BUILD_GUI) list(APPEND TOOLS createMeshElemPropertiesFromASCRaster) endif() -foreach(TOOL ${TOOLS}) - add_executable(${TOOL} ${TOOL}.cpp) - target_link_libraries(${TOOL} ApplicationsFileIO GitInfoLib MeshLib tclap) +foreach(tool ${TOOLS}) + add_executable(${tool} ${tool}.cpp) + target_link_libraries(${tool} ApplicationsFileIO GitInfoLib MeshLib tclap) endforeach() set_target_properties(${TOOLS} PROPERTIES FOLDER Utilities) install(TARGETS ${TOOLS} RUNTIME DESTINATION bin) diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake index cb08f5a929c00381be6b689935adb1548cf9100a..83b49f6623639065c04fe2f8835830ad942280b3 100644 --- a/Applications/Utils/Tests.cmake +++ b/Applications/Utils/Tests.cmake @@ -484,13 +484,12 @@ if(TARGET VerticalSliceFromLayers AND GMSH) endif() - if(TARGET GMSH2OGS AND SNAKEMAKE AND NOT OGS_USE_MPI) add_test(NAME snakemake_GMSH2OGS_ExtractBoundary COMMAND ${SNAKEMAKE} --cores all --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml -s ${CMAKE_CURRENT_SOURCE_DIR}/GMSH2OGS_ExtractBoundary.smk - ) + ) add_dependencies(ctest GMSH2OGS) endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 6172d66c6ac31d065651ae38c65b927724ec0baf..eef1d1417227bbf8fa7754977521c3384ce25251 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,18 +49,12 @@ if(NOT WIN32 AND OGS_BUILD_SWMM) endif() # Third-party libraries, names come from Conan package names -set(OGS_LIBS - vtk - qt - petsc - tfel - CACHE INTERNAL "") -foreach(LIB ${OGS_LIBS}) - set(OGS_LIB_${LIB} +foreach(lib vtk qt petsc tfel) + set(OGS_LIB_${lib} "Default" CACHE STRING "Which ${LIB} library should be used?") - set_property(CACHE OGS_LIB_${LIB} PROPERTY STRINGS "Default" "System") -endforeach(LIB) + set_property(CACHE OGS_LIB_${lib} PROPERTY STRINGS "Default" "System") +endforeach() if(OGS_USE_PETSC) set(OGS_USE_MPI ON CACHE BOOL "Use MPI" FORCE) @@ -84,7 +78,7 @@ include(CCacheSetup) include(CLCacheSetup) include(DocumentationSetup) include(test/Test) -if(OGS_COVERAGE AND NOT IS_SUBPROJECT) +if(OGS_COVERAGE AND NOT _IS_SUBPROJECT) include(Coverage) endif() include(CppCheck) @@ -168,10 +162,10 @@ option(OGS_ENABLE_ELEMENT_CUBOID option(OGS_ENABLE_ELEMENT_PRISM "Build FEM elements for prisms." ON) option(OGS_ENABLE_ELEMENT_PYRAMID "Build FEM elements for pyramids." ON) if(NOT OGS_MAX_ELEMENT_DIM MATCHES "^[0-3]$") - message(FATAL_ERROR "OGS_MAX_ELEMENT_DIM must be an integer between 0 and 3.") + message(FATAL_ERROR "OGS_MAX_ELEMENT_DIM must be an integer between 0 and 3.") endif() if(NOT OGS_MAX_ELEMENT_ORDER MATCHES "^[0-9]$") - message(FATAL_ERROR "OGS_MAX_ELEMENT_ORDER must be an integer.") + message(FATAL_ERROR "OGS_MAX_ELEMENT_ORDER must be an integer.") endif() option(OGS_CHECK_HEADER_COMPILATION "Check header for standalone compilation." @@ -240,7 +234,7 @@ if(OGS_BUILD_CLI OR OGS_BUILD_UTILS OR OGS_BUILD_TESTING) add_subdirectory(MaterialLib) add_subdirectory(ProcessLib) endif() -if(OGS_BUILD_TESTING AND NOT IS_SUBPROJECT) +if(OGS_BUILD_TESTING AND NOT _IS_SUBPROJECT) add_subdirectory(Tests) endif() diff --git a/Documentation/README.txt.in b/Documentation/README.txt.in index 51e7b59760ccb63a3d86e3ed1b3a7cb19d72395a..839ff9383f013b0b688213867e2e98e289b58f3e 100644 --- a/Documentation/README.txt.in +++ b/Documentation/README.txt.in @@ -3,4 +3,4 @@ OGS binary package usage Start the appropriate executable in the *bin*-folder. -@README_PLATFORM_INSTRUCTIONS@ +@_README_PLATFORM_INSTRUCTIONS@ diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt index 2c074e6ec8edf860b74623f57d358b23420b1640..dd6f72d8d937cfff42c2cc7d7426bed9a491f634 100644 --- a/ProcessLib/CMakeLists.txt +++ b/ProcessLib/CMakeLists.txt @@ -1,7 +1,7 @@ # Collect the process libraries in interface library add_library(Processes INTERFACE) -foreach(process ${ProcessesList}) +foreach(process ${_processes_list}) if(OGS_BUILD_PROCESS_${process}) add_subdirectory(${process}) target_link_libraries(Processes INTERFACE ${process}) @@ -22,7 +22,8 @@ if(OGS_USE_PYTHON) add_subdirectory(SourceTerms/Python) endif() -target_link_libraries(ProcessLib +target_link_libraries( + ProcessLib PUBLIC BaseLib MaterialLib @@ -34,24 +35,20 @@ target_link_libraries(ProcessLib $<$<TARGET_EXISTS:ProcessLibBoundaryConditionPython>:ProcessLibBoundaryConditionPython> $<$<TARGET_EXISTS:ProcessLibSourceTermPython>:ProcessLibSourceTermPython> nlohmann_json - PRIVATE - ParameterLib - GitInfoLib - spdlog::spdlog - $<$<TARGET_EXISTS:InSituLib>:InSituLib> + PRIVATE ParameterLib GitInfoLib spdlog::spdlog + $<$<TARGET_EXISTS:InSituLib>:InSituLib> ) -target_compile_definitions(ProcessLib - PUBLIC - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> - $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF> - # Enabled elements - OGS_MAX_ELEMENT_DIM=${OGS_MAX_ELEMENT_DIM} - OGS_MAX_ELEMENT_ORDER=${OGS_MAX_ELEMENT_ORDER} - $<$<BOOL:${OGS_ENABLE_ELEMENT_SIMPLEX}>:OGS_ENABLE_ELEMENT_SIMPLEX> - $<$<BOOL:${OGS_ENABLE_ELEMENT_CUBOID}>:OGS_ENABLE_ELEMENT_CUBOID> - $<$<BOOL:${OGS_ENABLE_ELEMENT_PRISM}>:OGS_ENABLE_ELEMENT_PRISM> - $<$<BOOL:${OGS_ENABLE_ELEMENT_PYRAMID}>:OGS_ENABLE_ELEMENT_PYRAMID> - PRIVATE - $<$<BOOL:${USE_INSITU}>:USE_INSITU> +target_compile_definitions( + ProcessLib + PUBLIC $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> + $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF> + # Enabled elements + OGS_MAX_ELEMENT_DIM=${OGS_MAX_ELEMENT_DIM} + OGS_MAX_ELEMENT_ORDER=${OGS_MAX_ELEMENT_ORDER} + $<$<BOOL:${OGS_ENABLE_ELEMENT_SIMPLEX}>:OGS_ENABLE_ELEMENT_SIMPLEX> + $<$<BOOL:${OGS_ENABLE_ELEMENT_CUBOID}>:OGS_ENABLE_ELEMENT_CUBOID> + $<$<BOOL:${OGS_ENABLE_ELEMENT_PRISM}>:OGS_ENABLE_ELEMENT_PRISM> + $<$<BOOL:${OGS_ENABLE_ELEMENT_PYRAMID}>:OGS_ENABLE_ELEMENT_PYRAMID> + PRIVATE $<$<BOOL:${USE_INSITU}>:USE_INSITU> ) diff --git a/ProcessLib/ComponentTransport/Tests.cmake b/ProcessLib/ComponentTransport/Tests.cmake index 4b67ec1bd8beec830a69ae1799274931bb6a762c..feea80778882345875c347e0f23154a6c76e283d 100644 --- a/ProcessLib/ComponentTransport/Tests.cmake +++ b/ProcessLib/ComponentTransport/Tests.cmake @@ -883,7 +883,6 @@ AddTest( VIS out_ogs5_H_ts_1_t_10000000.000000.vtu ) - AddTest( NAME 1D_ComponentTransport_VariableDependentBoundary PATH Parabolic/ComponentTransport/VariableNeumannBoundary diff --git a/ProcessLib/HT/Tests.cmake b/ProcessLib/HT/Tests.cmake index a1d14b54c0bd34699672065bc685ec72df349e1c..7f37d9d44094378f76dbd4c53a3ec65f250f2ebd 100644 --- a/ProcessLib/HT/Tests.cmake +++ b/ProcessLib/HT/Tests.cmake @@ -60,7 +60,6 @@ AddTest( VIS IsothermalFluidFlow_ts_1_t_1.000000.vtu ) - AddTest( NAME HT_SimpleSynthetics_PressureParabolicTemperatureParabolic PATH Parabolic/HT/SimpleSynthetics @@ -276,7 +275,6 @@ AddTest( VIS IsothermalFluidFlowWithGravityStaggered_ts_1_t_1.000000.vtu ) - AddTest( NAME HT_SimpleSynthetics_PressureParabolicTemperatureParabolicStaggered PATH Parabolic/HT/SimpleSynthetics diff --git a/ProcessLib/HeatTransportBHE/Tests.cmake b/ProcessLib/HeatTransportBHE/Tests.cmake index c8a760ecfa5cba62a6add650af67a226102a8a98..1014e8a7cab11029c70662e7d211c7ea6e71d9ac 100644 --- a/ProcessLib/HeatTransportBHE/Tests.cmake +++ b/ProcessLib/HeatTransportBHE/Tests.cmake @@ -1,7 +1,6 @@ AddTest( NAME HeatTransportBHE_1U_3D_beier_sandbox PATH Parabolic/T/3D_Beier_sandbox - RUNTIME 15 EXECUTABLE ogs EXECUTABLE_ARGS beier_sandbox.prj WRAPPER time diff --git a/ProcessLib/LiquidFlow/Tests.cmake b/ProcessLib/LiquidFlow/Tests.cmake index a354ea7ce8abe1b39183f040f24e9e5e8bbdf733..9f3da7165b60d70828248473a83f25c4d9db27d9 100644 --- a/ProcessLib/LiquidFlow/Tests.cmake +++ b/ProcessLib/LiquidFlow/Tests.cmake @@ -27,7 +27,6 @@ if (NOT OGS_USE_MPI) OgsTest(PROJECTFILE Parabolic/LiquidFlow/DrainageExcavation/drainage_LiquidFlow.prj) endif() - AddTest( NAME LiquidFlow_GravityDriven PATH Parabolic/LiquidFlow/GravityDriven diff --git a/ProcessLib/PhaseField/Tests.cmake b/ProcessLib/PhaseField/Tests.cmake index 8b8da10be41ddf38dc844725e58f81ab38a5c4c6..9e259c5fe2719c2e90655826641a44d6b67b1df3 100644 --- a/ProcessLib/PhaseField/Tests.cmake +++ b/ProcessLib/PhaseField/Tests.cmake @@ -8,9 +8,9 @@ AddTest( REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) RUNTIME 9 DIFF_DATA - expected_2D_StaticCrack_ts_1_t_1.000000.vtu 2D_StaticCrack_ts_1_t_1.000000.vtu displacement displacement 1e-15 0 - expected_2D_StaticCrack_ts_1_t_1.000000.vtu 2D_StaticCrack_ts_1_t_1.000000.vtu phasefield phasefield 5e-15 0 - ) + expected_2D_StaticCrack_ts_1_t_1.000000.vtu 2D_StaticCrack_ts_1_t_1.000000.vtu displacement displacement 1e-15 0 + expected_2D_StaticCrack_ts_1_t_1.000000.vtu 2D_StaticCrack_ts_1_t_1.000000.vtu phasefield phasefield 5e-15 0 +) AddTest( NAME PhaseField_3D_beam @@ -22,6 +22,6 @@ AddTest( REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) RUNTIME 18 DIFF_DATA - expected_beam3_stag1pcsAT2_ts_10_t_1.000000.vtu beam3_stag1pcsAT2_ts_10_t_1.000000.vtu displacement displacement 1e-5 0 - expected_beam3_stag1pcsAT2_ts_10_t_1.000000.vtu beam3_stag1pcsAT2_ts_10_t_1.000000.vtu phasefield phasefield 1e-6 0 - ) + expected_beam3_stag1pcsAT2_ts_10_t_1.000000.vtu beam3_stag1pcsAT2_ts_10_t_1.000000.vtu displacement displacement 1e-5 0 + expected_beam3_stag1pcsAT2_ts_10_t_1.000000.vtu beam3_stag1pcsAT2_ts_10_t_1.000000.vtu phasefield phasefield 1e-6 0 +) diff --git a/ProcessLib/RichardsMechanics/Tests.cmake b/ProcessLib/RichardsMechanics/Tests.cmake index 71cfbb056d52ff7acdcd77ed66da9543b86ac542..9d9e36b35a44530669515a0c6c553905159d4080 100644 --- a/ProcessLib/RichardsMechanics/Tests.cmake +++ b/ProcessLib/RichardsMechanics/Tests.cmake @@ -23,8 +23,6 @@ if (NOT OGS_USE_MPI) OgsTest(PROJECTFILE RichardsMechanics/LiakopoulosHM/liakopoulos_QN.prj RUNTIME 50) endif() - - AddTest( NAME RichardsMechanics_square_1e2_confined_compression_restart PATH RichardsMechanics diff --git a/ProcessLib/SteadyStateDiffusion/Tests.cmake b/ProcessLib/SteadyStateDiffusion/Tests.cmake index 432ada4b9c42c7144bac4a509db33265230fcf93..9cfdb137274455908e81b4912c714a53ece1ba59 100644 --- a/ProcessLib/SteadyStateDiffusion/Tests.cmake +++ b/ProcessLib/SteadyStateDiffusion/Tests.cmake @@ -169,9 +169,9 @@ foreach(mesh_size 1e1) DIFF_DATA line_1_line_${mesh_size}.vtu line_${mesh_size}_neumann_ts_1_t_1.000000.vtu D1_left_N1_right pressure 1e-14 1e-14 ) -if (NOT OGS_USE_MPI) - OgsTest(PROJECTFILE Elliptic/cube_1x1x1_SteadyStateDiffusion/drainage_excavation.prj) -endif() + if (NOT OGS_USE_MPI) + OgsTest(PROJECTFILE Elliptic/cube_1x1x1_SteadyStateDiffusion/drainage_excavation.prj) + endif() AddTest( NAME SteadyStateDiffusion_line_1_Robin_Right_Picard_${mesh_size} PATH Elliptic/line_1_SteadyStateDiffusion diff --git a/ProcessLib/ThermoHydroMechanics/Tests.cmake b/ProcessLib/ThermoHydroMechanics/Tests.cmake index 721b410f725b396c6d267b0a2f1a64f03a1d94f2..18599290679c08041d37fae0620e269913ef2693 100644 --- a/ProcessLib/ThermoHydroMechanics/Tests.cmake +++ b/ProcessLib/ThermoHydroMechanics/Tests.cmake @@ -205,7 +205,7 @@ AddTest( NAME ThermoHydroMechanics_thermo_osmosis_filtration_effects_CylindricalCavity PATH ThermoHydroMechanics/Linear/CylindricalCavity RUNTIME 600 - EXECUTABLE ogs + EXECUTABLE ogs EXECUTABLE_ARGS CylindricalCavity.prj WRAPPER time TESTER vtkdiff diff --git a/ProcessLib/ThermoMechanicalPhaseField/Tests.cmake b/ProcessLib/ThermoMechanicalPhaseField/Tests.cmake index 8d566da1750e105d325a0fa46c4ce1c128b591b9..a8953cf916b0912ae1781ec42f005f30517815cc 100644 --- a/ProcessLib/ThermoMechanicalPhaseField/Tests.cmake +++ b/ProcessLib/ThermoMechanicalPhaseField/Tests.cmake @@ -11,7 +11,7 @@ AddTest( expected_cube_1e0_tm_pcs_2_ts_1_t_100.000000.vtu cube_1e0_tm_ts_1_t_100.000000.vtu temperature temperature 1e-6 1e-6 analytical_cube_1e0_tm_pcs_2_ts_1_t_100.000000.vtu cube_1e0_tm_ts_1_t_100.000000.vtu phasefield phasefield 1e-5 1e-5 mechanical_cube_1e0_pcs_1_ts_1_t_100.000000.vtu cube_1e0_tm_ts_1_t_100.000000.vtu phasefield phasefield 1e-5 1e-5 - ) +) AddTest( NAME ThermoMechanicalPhaseField_3D_beam @@ -26,7 +26,7 @@ AddTest( expected_beam3d_pcs_2_ts_1_t_10.000000.vtu beam3d_ts_1_t_10.000000.vtu displacement displacement 1e-5 0 expected_beam3d_pcs_2_ts_1_t_10.000000.vtu beam3d_ts_1_t_10.000000.vtu phasefield phasefield 1e-6 0 expected_beam3d_pcs_2_ts_1_t_10.000000.vtu beam3d_ts_1_t_10.000000.vtu temperature temperature 1e-6 0 - ) +) AddTest( NAME ThermoMechanicalPhaseField_TES_IGLU @@ -40,7 +40,7 @@ AddTest( DIFF_DATA expected_tes_hx3_pcs_2_ts_1_t_20.000000.vtu tes_hx3_ts_1_t_20.000000.vtu phasefield phasefield 1e-6 0 expected_tes_hx3_pcs_2_ts_1_t_20.000000.vtu tes_hx3_ts_1_t_20.000000.vtu heat_flux heat_flux 1e-4 0 - ) +) AddTest( NAME ThermoMechanicalPhaseField_THERMAL_SHOCK @@ -53,4 +53,4 @@ AddTest( REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) DIFF_DATA expected_slab_5_pcs_2_ts_1_t_1.000000.vtu slab_5_ts_1_t_1.000000.vtu phasefield phasefield 1e-6 0 - ) +) diff --git a/ProcessLib/ThermoMechanics/Tests.cmake b/ProcessLib/ThermoMechanics/Tests.cmake index 3dc844d40f6b4acf43a5c5f2c0e87a994d7a9cd9..14909bd0372864a14f73b2eec8d7b666028a53db 100644 --- a/ProcessLib/ThermoMechanics/Tests.cmake +++ b/ProcessLib/ThermoMechanics/Tests.cmake @@ -139,7 +139,6 @@ AddTest( WRAPPER time TESTER vtkdiff REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) - RUNTIME 17 DIFF_DATA tm1_3Dsquare_ts_1_t_1.000000.vtu tm1_3Dsquare_ts_1_t_1.000000.vtu temperature temperature 1e-11 0.0 tm1_3Dsquare_ts_1_t_1.000000.vtu tm1_3Dsquare_ts_1_t_1.000000.vtu displacement displacement 1e-10 0.0 diff --git a/ProcessLib/ThermoRichardsMechanics/Tests.cmake b/ProcessLib/ThermoRichardsMechanics/Tests.cmake index 047644a79640bd6cf27e9f405ea24b27325056c7..cffba2350a8fb751e487e60e6c3f2b7ad3daa525 100644 --- a/ProcessLib/ThermoRichardsMechanics/Tests.cmake +++ b/ProcessLib/ThermoRichardsMechanics/Tests.cmake @@ -42,7 +42,6 @@ AddTest( expected_cube_1e3_tm_ts_17_t_72000.000000.vtu cube_1e3_tm_ts_17_t_72000.000000.vtu epsilon epsilon 1e-16 0 ) - AddTest( NAME ThermoRichardsMechanics_HeatTransportInStationaryFlow PATH ThermoRichardsMechanics/HeatTransportInStationaryFlow diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 5dc0d9b76b4d0e7cb886ec9ce4ef76591831996d..7dc25988a37f49b87dd816629382a8682108e3e5 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -99,7 +99,7 @@ endif() # cmake-format: off # Add make-target tests which runs the testrunner -if(IS_CI AND NOT OGS_COVERAGE) +if(DEFINED ENV{CI} AND NOT OGS_COVERAGE) set(OGS_CI_TESTRUNNER_REPEAT 3 CACHE STRING "The number of testrunner repeats for the tests target") set(TESTRUNNER_ADDITIONAL_ARGUMENTS ${TESTRUNNER_ADDITIONAL_ARGUMENTS} diff --git a/scripts/cmake/CMakeSetup.cmake b/scripts/cmake/CMakeSetup.cmake index 0d13896d8577a16d73c726d986a8ee0566ffdd4d..e84f88e1fc463e56b6a344245319443ac2529e7e 100644 --- a/scripts/cmake/CMakeSetup.cmake +++ b/scripts/cmake/CMakeSetup.cmake @@ -1,9 +1,9 @@ # Disallow in-source builds as the git project cluttered with generated files # probably confuses people. source/build* is still allowed! if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - message(FATAL_ERROR "In-source builds are not allowed!\n" - "Make sure to remove CMakeCache.txt and CMakeFiles/ " - "from the source directory!") + message(FATAL_ERROR "In-source builds are not allowed!\n" + "Make sure to remove CMakeCache.txt and CMakeFiles/ " + "from the source directory!") endif() # Set additional CMake modules path @@ -33,7 +33,7 @@ set(NUM_PROCESSORS ${NUM_PROCESSORS} CACHE STRING "Processor count") # Check if this project is included in another if(NOT PROJECT_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) - set(IS_SUBPROJECT ON CACHE INTERNAL "" FORCE) + set(_IS_SUBPROJECT ON CACHE INTERNAL "" FORCE) set(OGS_BUILD_CLI OFF CACHE BOOL "" FORCE) endif() @@ -48,11 +48,6 @@ endif() # Get the hostname site_name(HOSTNAME) -# Check if we are running under CI -if(DEFINED ENV{JENKINS_URL} OR DEFINED ENV{CI}) - set(IS_CI ON CACHE INTERNAL "") -endif() - if(BUILD_SHARED_LIBS) # When static libraries are used in some shared libraries it is required # that also the static libraries have position independent code. diff --git a/scripts/cmake/CheckHeaderCompilation.cmake b/scripts/cmake/CheckHeaderCompilation.cmake index addb233a92cddf6f3f2a35e41b8ffa764fbfc76e..b02df131ac3b57734aaff0c3a839beb7f3637c11 100644 --- a/scripts/cmake/CheckHeaderCompilation.cmake +++ b/scripts/cmake/CheckHeaderCompilation.cmake @@ -13,35 +13,35 @@ add_custom_target(check-header ) # Checks header for standalone compilation -function(_check_header_compilation TARGET) - - if(NOT TARGET ${TARGET}) +function(_check_header_compilation target) + # cmake-lint: disable=R0915 + if(NOT TARGET ${target}) return() endif() - get_target_property(SOURCE_FILES ${TARGET} SOURCES) - get_target_property(SOURCE_DIR ${TARGET} SOURCE_DIR) + get_target_property(SOURCE_FILES ${target} SOURCES) + get_target_property(SOURCE_DIR ${target} SOURCE_DIR) get_directory_property(DEFS DIRECTORY ${SOURCE_DIR} COMPILE_DEFINITIONS) - foreach(DEF ${DEFS}) - if(${DEF} MATCHES ".*[0-9]\\(.*") + foreach(def ${DEFS}) + if(${def} MATCHES ".*[0-9]\\(.*") continue() endif() - list(APPEND DEFS_CLEANED "-D${DEF}") + list(APPEND DEFS_CLEANED "-D${def}") endforeach() - get_target_property(INCLUDE_DIRS ${TARGET} INCLUDE_DIRECTORIES) - get_target_property(LINK_LIBS ${TARGET} LINK_LIBRARIES) - foreach(LIB ${LINK_LIBS}) + get_target_property(INCLUDE_DIRS ${target} INCLUDE_DIRECTORIES) + get_target_property(LINK_LIBS ${target} LINK_LIBRARIES) + foreach(lib ${LINK_LIBS}) # Ignore non-existing targets or interface libs - if(NOT TARGET ${LIB}) + if(NOT TARGET ${lib}) continue() endif() - get_target_property(LIB_TYPE ${LIB} TYPE) + get_target_property(LIB_TYPE ${lib} TYPE) if(LIB_TYPE STREQUAL "INTERFACE_LIBRARY") continue() endif() - get_target_property(TARGET_INCLUDE_DIRS ${LIB} INCLUDE_DIRECTORIES) + get_target_property(TARGET_INCLUDE_DIRS ${lib} INCLUDE_DIRECTORIES) if(TARGET_INCLUDE_DIRS) list(APPEND INCLUDE_DIRS ${TARGET_INCLUDE_DIRS}) endif() @@ -52,6 +52,7 @@ function(_check_header_compilation TARGET) message(STATUS "Checking header compilation for ${DIRECTORY} ...") include(CheckCXXSourceCompiles) + # cmake-lint: disable=C0103 set(CMAKE_REQUIRED_INCLUDES ${INCLUDE_DIRS} ${SOURCE_DIR}) # HACK, maybe add Gui Widgets Xml XmlPatterns as well if(OGS_BUILD_GUI) @@ -63,38 +64,38 @@ function(_check_header_compilation TARGET) endif() set(CMAKE_REQUIRED_DEFINITIONS ${DEFS_CLEANED}) - foreach(FILE ${SOURCE_FILES}) + foreach(file ${SOURCE_FILES}) - if(NOT "${FILE}" MATCHES ".*\\.h") # Check only header files + if(NOT "${file}" MATCHES ".*\\.h") # Check only header files continue() endif() - if("${FILE}" MATCHES ".*-impl\\.h") # Ignore *-impl.h files + if("${file}" MATCHES ".*-impl\\.h") # Ignore *-impl.h files continue() endif() - if("${FILE}" MATCHES ".*Dialog\\.h") # Ignore Qt Dialog files + if("${file}" MATCHES ".*Dialog\\.h") # Ignore Qt Dialog files continue() endif() - if("${FILE}" MATCHES ".*Widget\\.h") # Ignore Qt Widget files + if("${file}" MATCHES ".*Widget\\.h") # Ignore Qt Widget files continue() endif() - if("${FILE}" MATCHES ".*Window\\.h") # Ignore Qt Window files + if("${file}" MATCHES ".*Window\\.h") # Ignore Qt Window files continue() endif() - string(REPLACE "${PROJECT_SOURCE_DIR}/" "" TEST_NAME ${FILE}) + string(REPLACE "${PROJECT_SOURCE_DIR}/" "" TEST_NAME ${file}) string(REPLACE "." "_" TEST_NAME ${TEST_NAME}) string(REPLACE "/" "_" TEST_NAME ${TEST_NAME}) check_cxx_source_compiles( " - #include \"${FILE}\" + #include \"${file}\" int main() { return 0; } " ${TEST_NAME}_COMPILES ) if(NOT ${TEST_NAME}_COMPILES) - set(HEADER_COMPILE_ERROR TRUE CACHE INTERNAL "") - message(STATUS " Compilation failed for ${FILE}") + set(_HEADER_COMPILE_ERROR TRUE CACHE INTERNAL "") + message(STATUS " Compilation failed for ${file}") endif() unset(${TEST_NAME}_COMPILES CACHE) @@ -102,11 +103,12 @@ function(_check_header_compilation TARGET) endforeach() endfunction() +# Check header compilation in function(check_header_compilation) if(NOT OGS_CHECK_HEADER_COMPILATION) return() endif() - set(HEADER_COMPILE_ERROR FALSE CACHE INTERNAL "") + set(_HEADER_COMPILE_ERROR FALSE CACHE INTERNAL "") _check_header_compilation(BaseLib) _check_header_compilation(ChemistryLib) @@ -132,7 +134,7 @@ function(check_header_compilation) _check_header_compilation(VtkVis) endif() - if(HEADER_COMPILE_ERROR) + if(_HEADER_COMPILE_ERROR) message(FATAL_ERROR "... header compilation check failed, see CMakeFiles/CMakeError.log for details!") endif() endfunction() diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index 4a207fdc4a4ebe8da9635a73f307bdd8d3a8dabb..b9ded4b27f5839749287b013e1e3a27400ddbdd8 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -9,16 +9,16 @@ endif() # Set compiler helper variables if(${CMAKE_CXX_COMPILER_ID} MATCHES "AppleClang") - set(COMPILER_IS_APPLE_CLANG TRUE CACHE INTERNAL "") - set(COMPILER_IS_CLANG TRUE CACHE INTERNAL "") + set(COMPILER_IS_APPLE_CLANG TRUE CACHE BOOL "") + set(COMPILER_IS_CLANG TRUE CACHE BOOL "") elseif(${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") - set(COMPILER_IS_CLANG TRUE CACHE INTERNAL "") + set(COMPILER_IS_CLANG TRUE CACHE BOOL "") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") - set(COMPILER_IS_GCC TRUE CACHE INTERNAL "") + set(COMPILER_IS_GCC TRUE CACHE BOOL "") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel") - set(COMPILER_IS_INTEL TRUE CACHE INTERNAL "") + set(COMPILER_IS_INTEL TRUE CACHE BOOL "") elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "MSVC") - set(COMPILER_IS_MSVC TRUE CACHE INTERNAL "") + set(COMPILER_IS_MSVC TRUE CACHE BOOL "") endif() # CMAKE_CXX_COMPILER_ID ### GNU-like compiler diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 9b97ed7b29c59472ae1b453100839deb2a69dd94..42839e8c22f5abc4590fa8b448a7983a49cbf9de 100644 --- a/scripts/cmake/ConanSetup.cmake +++ b/scripts/cmake/ConanSetup.cmake @@ -3,7 +3,7 @@ if(NOT OGS_USE_CONAN) endif() string(TOLOWER ${OGS_USE_CONAN} OGS_USE_CONAN_lower) if(OGS_USE_CONAN_lower STREQUAL "auto" AND POETRY) - execute_process(COMMAND ${CMD_COMMAND} poetry add conan==${ogs.minimum_version.conan} + execute_process(COMMAND ${_CMD_COMMAND} poetry add conan==${ogs.minimum_version.conan} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) find_program(CONAN_CMD conan HINTS ${LOCAL_VIRTUALENV_BIN_DIRS} REQUIRED NO_DEFAULT_PATH @@ -129,7 +129,7 @@ file(TIMESTAMP ${PROJECT_BINARY_DIR}/conan_install_timestamp.txt file_timestamp string(TIMESTAMP timestamp "%Y.%m.%d") # Run conan install update only once a day -if("${file_timestamp}" VERSION_LESS ${timestamp} OR IS_CI) +if("${file_timestamp}" VERSION_LESS ${timestamp} OR DEFINED ENV{CI}) file(WRITE ${PROJECT_BINARY_DIR}/conan_install_timestamp.txt "${timestamp}\n") set(CONAN_UPDATE UPDATE) set(CONAN_COMMAND ${CONAN_CMD} CACHE INTERNAL "") # Speed up conan_add_remote diff --git a/scripts/cmake/Coverage.cmake b/scripts/cmake/Coverage.cmake index d68a40edb730cf1f38a57525321e6a2449a0580c..f09fad76632930f434429337a5b72e2295faa6e7 100644 --- a/scripts/cmake/Coverage.cmake +++ b/scripts/cmake/Coverage.cmake @@ -8,7 +8,7 @@ append_coverage_compiler_flags() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og") if(NOT FASTCOV_PATH) - execute_process(COMMAND ${CMD_COMMAND} poetry add fastcov==1.10 + execute_process(COMMAND ${_CMD_COMMAND} poetry add fastcov==1.10 WORKING_DIRECTORY ${PROJECT_BINARY_DIR} ) find_program(FASTCOV_PATH NAMES fastcov diff --git a/scripts/cmake/Dependencies.cmake b/scripts/cmake/Dependencies.cmake index e92aa3f81e7d2571dac6d07701b822e3f1bc027f..5e716af3dabb549f3fb1ea97201cb2d9aa642e9e 100644 --- a/scripts/cmake/Dependencies.cmake +++ b/scripts/cmake/Dependencies.cmake @@ -302,8 +302,8 @@ if(OGS_USE_CVODE) endif() # Disable warnings -foreach(TARGET ${DISABLE_WARNINGS_TARGETS}) - target_compile_options(${TARGET} PRIVATE +foreach(target ${DISABLE_WARNINGS_TARGETS}) + target_compile_options(${target} PRIVATE $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>,$<CXX_COMPILER_ID:GNU>>:-w> $<$<CXX_COMPILER_ID:MSVC>:/W0>) endforeach() @@ -318,14 +318,14 @@ find_program(CMAKE_FORMAT_PROGRAM cmake-format) if(CLANG_FORMAT_PROGRAM OR CMAKE_FORMAT_PROGRAM) if(NOT CMAKE_FORMAT_PROGRAM) - set(skip_cmake "FORMAT_SKIP_CMAKE YES") + set(_skip_cmake "FORMAT_SKIP_CMAKE YES") endif() CPMAddPackage( NAME Format.cmake VERSION 1.7.0 GITHUB_REPOSITORY TheLartians/Format.cmake OPTIONS - ${skip_cmake} + ${_skip_cmake} "CMAKE_FORMAT_EXCLUDE scripts/cmake/CPM.cmake|.*/Tests.cmake|scripts/cmake/jedbrown/.*|scripts/cmake/conan/conan.cmake|scripts/cmake/vector-of-bool/.*" ) endif() diff --git a/scripts/cmake/DocumentationProjectFile.cmake b/scripts/cmake/DocumentationProjectFile.cmake index d88ef307306fce34189d268e62c3817d82a47568..787074a7d69a4309ab66dba5fc9958d702eac1f6 100644 --- a/scripts/cmake/DocumentationProjectFile.cmake +++ b/scripts/cmake/DocumentationProjectFile.cmake @@ -3,8 +3,9 @@ cmake_policy(SET CMP0009 NEW) # Moves an *.md file from the src directory to DocAux directory in the build # tree augmenting it with basic extra information, such as the list of child # pages and the page title. -function(documentationProjectFilePutIntoPlace p) - file(RELATIVE_PATH relative_path ${DocumentationProjectFileInputDir} ${p}) +function(documentationProjectFilePutIntoPlace dir) + # cmake-lint: disable=R0912,R0915 + file(RELATIVE_PATH relative_path ${DOCUMENTATION_PROJECTFILE_INPUTDIR} ${dir}) get_filename_component(dir_name ${relative_path} DIRECTORY) get_filename_component(otagname ${relative_path} NAME_WE) @@ -12,13 +13,13 @@ function(documentationProjectFilePutIntoPlace p) # if the file name starts with an underscore, then this files is # the "table of contents of the current directory - file(MAKE_DIRECTORY "${DocumentationProjectFileBuildDir}/${dir_name}") + file(MAKE_DIRECTORY "${DOCUMENTATION_PROJECTFILE_BUILDDIR}/${dir_name}") set(postfix "# Child parameters, attributes and cases\n\n") # gather other parameter files # the loop below will effects a page hierarchy to be built - file(GLOB param_files ${DocumentationProjectFileInputDir}/${dir_name}/*) + file(GLOB param_files ${DOCUMENTATION_PROJECTFILE_INPUTDIR}/${dir_name}/*) set(subpagelist "") foreach(pf ${param_files}) # ignore hidden files @@ -110,31 +111,30 @@ function(documentationProjectFilePutIntoPlace p) endif() # read, augment, write file content - file(READ ${p} content) + file(READ ${dir} content) set(content "/*! \\page ${pagenameprefix}${tagpath} ${pagetitle}\n${content}\n\n${postfix}\n") if (NOT doc_use_external_tools) set(ending "\n*/\n") else() set(ending "") # external tools shall finish the file endif() - string(REGEX REPLACE .md$ .dox output_file "${DocumentationProjectFileBuildDir}/${relative_path}") + string(REGEX REPLACE .md$ .dox output_file "${DOCUMENTATION_PROJECTFILE_BUILDDIR}/${relative_path}") file(WRITE "${output_file}" "${content}${ending}") endfunction() - -set(DocumentationProjectFileBuildDir ${PROJECT_BINARY_DIR}/DocAux/dox/ProjectFile) -set(DocumentationProjectFileInputDir ${PROJECT_SOURCE_DIR}/Documentation/ProjectFile) +set(DOCUMENTATION_PROJECTFILE_BUILDDIR ${PROJECT_BINARY_DIR}/DocAux/dox/ProjectFile) +set(DOCUMENTATION_PROJECTFILE_INPUTDIR ${PROJECT_SOURCE_DIR}/Documentation/ProjectFile) # remove old output -if (IS_DIRECTORY ${DocumentationProjectFileBuildDir}) - file(REMOVE_RECURSE ${DocumentationProjectFileBuildDir}) +if (IS_DIRECTORY ${DOCUMENTATION_PROJECTFILE_BUILDDIR}) + file(REMOVE_RECURSE ${DOCUMENTATION_PROJECTFILE_BUILDDIR}) endif() # traverse input file hierarchy file(GLOB_RECURSE input_paths FOLLOW_SYMLINKS - ${DocumentationProjectFileInputDir}/c_* ${DocumentationProjectFileInputDir}/i_*) + ${DOCUMENTATION_PROJECTFILE_INPUTDIR}/c_* ${DOCUMENTATION_PROJECTFILE_INPUTDIR}/i_*) -foreach(p ${input_paths}) - message("directory index file ${p}") - documentationProjectFilePutIntoPlace(${p}) +foreach(path ${input_paths}) + message("directory index file ${path}") + documentationProjectFilePutIntoPlace(${path}) endforeach() diff --git a/scripts/cmake/DocumentationSetup.cmake b/scripts/cmake/DocumentationSetup.cmake index 4cf26ae0df7aff30274f45677eef763866621866..cc8eb16c325f6cdcd4b3667addabf6eee5592cc0 100644 --- a/scripts/cmake/DocumentationSetup.cmake +++ b/scripts/cmake/DocumentationSetup.cmake @@ -77,9 +77,9 @@ doxygen_add_docs(doc ${PROJECT_BINARY_DIR}/DocAux/dox) if (BASH_TOOL_PATH AND Python3_EXECUTABLE) - set(doc_use_external_tools TRUE) + set(_doc_use_external_tools TRUE) else() - set(doc_use_external_tools FALSE) + set(_doc_use_external_tools FALSE) endif() # TODO that will always transform all of the input files no matter if they changed # maybe this behaviour can be changed to on-demand processing @@ -87,20 +87,19 @@ add_custom_target(internal_pre_doc ${CMAKE_COMMAND} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR} - -Ddoc_use_external_tools=${doc_use_external_tools} + -Ddoc_use_external_tools=${_doc_use_external_tools} -P ${PROJECT_SOURCE_DIR}/scripts/cmake/DocumentationProjectFile.cmake WORKING_DIRECTORY ${PROJECT_BINARY_DIR} COMMENT "Generating project file documentation hierarchy." VERBATIM) add_dependencies(doc internal_pre_doc) -if (doc_use_external_tools) - set(data_dir "${Data_SOURCE_DIR}") +if (_doc_use_external_tools) add_custom_target(internal_pre_doc_qa_page ${BASH_TOOL_PATH} "${PROJECT_SOURCE_DIR}/scripts/doc/generate-project-file-doc-qa.sh" ${PROJECT_SOURCE_DIR} ${PROJECT_BINARY_DIR} - ${data_dir} + "${Data_SOURCE_DIR}" WORKING_DIRECTORY ${PROJECT_BINARY_DIR} COMMENT "Generating project file documentation quality assurance pages." VERBATIM) add_dependencies(doc internal_pre_doc_qa_page) diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index 1a2e1f2ba0a2bbfafbbd5368285c1a6306bf70d8..fad0363838c0f60cd333b41830a1f233682c900a 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -89,6 +89,7 @@ if(OGS_USE_MFRONT) add_definitions(-DHAVE_PTHREADS) endif() if(OGS_USE_CONAN) + # cmake-lint: disable=C0103 set(TFELHOME ${CONAN_TFEL_ROOT} CACHE INTERNAL "") endif() endif() diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake index d2bd612b2250af213b6506fd2c4116fa344d2021..019e9c6d46cf3c2239a6e89099b53cc7aa208fb9 100644 --- a/scripts/cmake/Functions.cmake +++ b/scripts/cmake/Functions.cmake @@ -1,12 +1,12 @@ # Returns the current subdirectory in the sources directory. -macro(GET_CURRENT_SOURCE_SUBDIRECTORY CURRENT_SOURCE_SUBDIRECTORY) +macro(GET_CURRENT_SOURCE_SUBDIRECTORY current_source_subdirectory) string(REGEX REPLACE ".*/([^/]*)" "\\1" REGEX_RESULT "${CMAKE_CURRENT_SOURCE_DIR}" ) - set(${CURRENT_SOURCE_SUBDIRECTORY} ${REGEX_RESULT}) + set(${current_source_subdirectory} ${REGEX_RESULT}) endmacro() -# Returns a list of source files (*.h and *.cpp) in SOURCE_FILES and creates a Visual +# Returns a list of source files (*.h and *.cpp) in source_files and creates a Visual # Studio folder. A (relative) subdirectory can be passed as second parameter (optional). -macro(GET_SOURCE_FILES SOURCE_FILES) +macro(GET_SOURCE_FILES source_files) if(${ARGC} EQUAL 2) set(DIR "${ARGV1}") else() @@ -18,8 +18,8 @@ macro(GET_SOURCE_FILES SOURCE_FILES) file(GLOB GET_SOURCE_FILES_TEMPLATES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.tpp) file(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.cpp) - set(${SOURCE_FILES} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES}) - list(LENGTH ${SOURCE_FILES} NUM_FILES) + set(${source_files} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES}) + list(LENGTH ${source_files} NUM_FILES) if(${NUM_FILES} EQUAL 0) message(FATAL_ERROR "No source files found in ${DIR}") endif() @@ -40,9 +40,9 @@ macro(GET_SOURCE_FILES SOURCE_FILES) endmacro() -# Appends a list of source files (*.h and *.cpp) to SOURCE_FILES and creates a Visual +# Appends a list of source files (*.h and *.cpp) to source_files and creates a Visual # Studio folder. A (relative) subdirectory can be passed as second parameter (optional). -macro(APPEND_SOURCE_FILES SOURCE_FILES) +macro(APPEND_SOURCE_FILES source_files) if(${ARGC} EQUAL 2) set(DIR "${ARGV1}") else() @@ -50,7 +50,7 @@ macro(APPEND_SOURCE_FILES SOURCE_FILES) endif() GET_SOURCE_FILES(TMP_SOURCES "${DIR}") - set(${SOURCE_FILES} ${${SOURCE_FILES}} ${TMP_SOURCES}) + set(${source_files} ${${source_files}} ${TMP_SOURCES}) endmacro() # Creates one ctest for each googletest found in source files passed as arguments @@ -79,6 +79,7 @@ function(add_autogen_include target) endif() endfunction() +# Replacement for add_library() for ogs targets function(ogs_add_library targetName) add_library(${targetName} ${ARGN}) target_compile_options(${targetName} PRIVATE @@ -104,6 +105,7 @@ function(ogs_add_library targetName) endif() endfunction() +# Parses current directory into a list function(current_dir_as_list baseDir outList) file(RELATIVE_PATH REL_DIR ${PROJECT_SOURCE_DIR}/${baseDir} ${CMAKE_CURRENT_LIST_DIR}) string(REPLACE "/" ";" DIR_LIST ${REL_DIR}) diff --git a/scripts/cmake/GitSetup.cmake b/scripts/cmake/GitSetup.cmake index 5616b091461754c4d78bc3497ffc4964134944c6..8d1cf3f5e036ec5d6b3eb31b14f0610f569d12ef 100644 --- a/scripts/cmake/GitSetup.cmake +++ b/scripts/cmake/GitSetup.cmake @@ -1,6 +1,7 @@ ### Git detection ### find_package(Git REQUIRED) +# cmake-lint: disable=W0106 if(DEFINED ENV{OGS_VERSION}) set(OGS_VERSION $ENV{OGS_VERSION}) message(STATUS "OGS VERSION: ${OGS_VERSION} (set via environment)") @@ -8,13 +9,13 @@ elseif(DEFINED OGS_VERSION) message(STATUS "Using user-provided OGS_VERSION=${OGS_VERSION}") endif() -if(NOT IS_GIT_REPO) +if(NOT _IS_GIT_REPO) execute_process(COMMAND ${GIT_EXECUTABLE} status WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - RESULT_VARIABLE IS_GIT_REPO + RESULT_VARIABLE _IS_GIT_REPO OUTPUT_QUIET) - if(IS_GIT_REPO GREATER 0) - set(IS_GIT_REPO FALSE CACHE INTERNAL "") + if(_IS_GIT_REPO GREATER 0) + set(_IS_GIT_REPO FALSE CACHE INTERNAL "") if(DEFINED OGS_VERSION) message(WARNING "Using user-provided OGS_VERSION; Submodule setup is skipped!") else() @@ -24,11 +25,11 @@ if(NOT IS_GIT_REPO) " OR manually set the OGS_VERSION variable.") endif() else() - set(IS_GIT_REPO TRUE CACHE INTERNAL "") + set(_IS_GIT_REPO TRUE CACHE INTERNAL "") endif() endif() -if(IS_GIT_REPO) +if(_IS_GIT_REPO) if(DEFINED ENV{CI_COMMIT_BRANCH}) set(OGS_GIT_BRANCH $ENV{CI_COMMIT_BRANCH}) else() @@ -41,7 +42,7 @@ if(IS_GIT_REPO) endif() endif() -if(IS_GIT_REPO AND NOT OGS_VERSION) +if(_IS_GIT_REPO AND NOT OGS_VERSION) # Get version info from Git, implementation based on # https://github.com/tomtom-international/cpp-dependencies execute_process( @@ -53,33 +54,33 @@ if(IS_GIT_REPO AND NOT OGS_VERSION) if(DESCRIBE_RESULT EQUAL 0) string(STRIP "${DESCRIBE_STDOUT}" DESCRIBE_STDOUT) if(DESCRIBE_STDOUT MATCHES "^(.*)-(dirty)$") - set(DESCRIBE_DIRTY "${CMAKE_MATCH_2}") - set(DESCRIBE_STDOUT "${CMAKE_MATCH_1}") + set(DESCRIBE_DIRTY "${CMAKE_MATCH_2}") + set(DESCRIBE_STDOUT "${CMAKE_MATCH_1}") endif() if(DESCRIBE_STDOUT MATCHES "^([0-9a-f]+)$") - set(DESCRIBE_COMMIT_NAME "${CMAKE_MATCH_1}") - set(DESCRIBE_STDOUT "") + set(DESCRIBE_COMMIT_NAME "${CMAKE_MATCH_1}") + set(DESCRIBE_STDOUT "") elseif(DESCRIBE_STDOUT MATCHES "^(.*)-g([0-9a-f]+)$") - set(DESCRIBE_COMMIT_NAME "g${CMAKE_MATCH_2}") - set(DESCRIBE_STDOUT "${CMAKE_MATCH_1}") + set(DESCRIBE_COMMIT_NAME "g${CMAKE_MATCH_2}") + set(DESCRIBE_STDOUT "${CMAKE_MATCH_1}") endif() if(DESCRIBE_STDOUT MATCHES "^(.*)-([0-9]+)$") - set(DESCRIBE_COMMIT_COUNT "${CMAKE_MATCH_2}") - set(DESCRIBE_TAG "${CMAKE_MATCH_1}") - set(DESCRIBE_STDOUT "") + set(DESCRIBE_COMMIT_COUNT "${CMAKE_MATCH_2}") + set(DESCRIBE_TAG "${CMAKE_MATCH_1}") + set(DESCRIBE_STDOUT "") endif() set(OGS_VERSION ${DESCRIBE_TAG}) if(DESCRIBE_COMMIT_COUNT GREATER 0) - set(OGS_VERSION "${OGS_VERSION}-${DESCRIBE_COMMIT_COUNT}-${DESCRIBE_COMMIT_NAME}") + set(OGS_VERSION "${OGS_VERSION}-${DESCRIBE_COMMIT_COUNT}-${DESCRIBE_COMMIT_NAME}") endif() if(DESCRIBE_DIRTY) - set(OGS_VERSION "${OGS_VERSION}.dirty") - if(DEFINED ENV{CI}) - string(TIMESTAMP DESCRIBE_DIRTY_TIMESTAMP "%Y%m%d%H%M%S" UTC) - set(OGS_VERSION "${OGS_VERSION}.dirty.${DESCRIBE_DIRTY_TIMESTAMP}") - endif() + set(OGS_VERSION "${OGS_VERSION}.dirty") + if(DEFINED ENV{CI}) + string(TIMESTAMP DESCRIBE_DIRTY_TIMESTAMP "%Y%m%d%H%M%S" UTC) + set(OGS_VERSION "${OGS_VERSION}.dirty.${DESCRIBE_DIRTY_TIMESTAMP}") + endif() endif() message(STATUS "OGS VERSION: ${OGS_VERSION} (reported by git)") else() @@ -103,5 +104,5 @@ if(IS_GIT_REPO AND NOT OGS_VERSION) endif() if(MSVC) - set(CMD_COMMAND "cmd" "/c" CACHE INTERNAL "") + set(_CMD_COMMAND "cmd" "/c" CACHE INTERNAL "") endif() diff --git a/scripts/cmake/MetisSetup.cmake b/scripts/cmake/MetisSetup.cmake index 13ff2047ea704f5701fb491aebf5d3f1564278f8..47a1ee837bfa911773674d5cebc471009615230c 100644 --- a/scripts/cmake/MetisSetup.cmake +++ b/scripts/cmake/MetisSetup.cmake @@ -6,9 +6,9 @@ add_definitions(-DUSE_GKREGEX) set(GKLIB_PATH "${METIS_PATH}/GKlib" CACHE PATH "path to GKlib") if(SHARED) - set(METIS_LIBRARY_TYPE SHARED) + set(METIS_LIBRARY_TYPE SHARED) else() - set(METIS_LIBRARY_TYPE STATIC) + set(METIS_LIBRARY_TYPE STATIC) endif(SHARED) include(${GKLIB_PATH}/GKlibSystem.cmake) @@ -31,10 +31,10 @@ if(BUILD_SHARED_LIBS) endif() if(UNIX) - target_link_libraries(ogs_metis m) + target_link_libraries(ogs_metis m) elseif(MSVC) - include(GenerateExportHeader) - generate_export_header(ogs_metis) + include(GenerateExportHeader) + generate_export_header(ogs_metis) endif() ## Compile mpmetis @@ -43,11 +43,11 @@ add_definitions(-DSVNINFO="") include_directories(${METIS_PATH}/libmetis) include_directories(${METIS_PATH}/programs) set(METIS_SOURCES - ${METIS_PATH}/programs/mpmetis.c - ${METIS_PATH}/programs/cmdline_mpmetis.c - ${METIS_PATH}/programs/io.c - ${METIS_PATH}/programs/stat.c - ) + ${METIS_PATH}/programs/mpmetis.c + ${METIS_PATH}/programs/cmdline_mpmetis.c + ${METIS_PATH}/programs/io.c + ${METIS_PATH}/programs/stat.c +) add_executable(mpmetis ${METIS_SOURCES}) target_link_libraries(mpmetis ogs_metis) install(TARGETS mpmetis RUNTIME DESTINATION bin) diff --git a/scripts/cmake/ParseCMakeArgs.cmake b/scripts/cmake/ParseCMakeArgs.cmake index 023145a57173b91c62e3326c3f2b299dee6dbbbf..c0df8647d1a19cc32d47c96bb68753a80bfa23a8 100644 --- a/scripts/cmake/ParseCMakeArgs.cmake +++ b/scripts/cmake/ParseCMakeArgs.cmake @@ -20,20 +20,20 @@ if(EXISTS ${PROJECT_BINARY_DIR}/CMakeCache.txt) endif() get_cmake_property(CACHE_VARS CACHE_VARIABLES) -foreach(CACHE_VAR ${CACHE_VARS}) - get_property(CACHE_VAR_HELPSTRING CACHE ${CACHE_VAR} PROPERTY HELPSTRING) - if(CACHE_VAR_HELPSTRING STREQUAL "No help, variable specified on the command line.") - get_property(CACHE_VAR_TYPE CACHE ${CACHE_VAR} PROPERTY TYPE) - if(CACHE_VAR_TYPE STREQUAL "UNINITIALIZED") - set(CACHE_VAR_TYPE) - else() - set(CACHE_VAR_TYPE :${CACHE_VAR_TYPE}) +foreach(cache_var ${CACHE_VARS}) + get_property(CACHE_VAR_HELPSTRING CACHE ${cache_var} PROPERTY HELPSTRING) + if(CACHE_VAR_HELPSTRING STREQUAL "No help, variable specified on the command line.") + get_property(CACHE_VAR_TYPE CACHE ${cache_var} PROPERTY TYPE) + if(CACHE_VAR_TYPE STREQUAL "UNINITIALIZED") + set(CACHE_VAR_TYPE) + else() + set(CACHE_VAR_TYPE :${CACHE_VAR_TYPE}) + endif() + set(CMAKE_ARGS "${CMAKE_ARGS} -D${cache_var}${CACHE_VAR_TYPE}=\"${${cache_var}}\"") endif() - set(CMAKE_ARGS "${CMAKE_ARGS} -D${CACHE_VAR}${CACHE_VAR_TYPE}=\"${${CACHE_VAR}}\"") - endif() endforeach() -set(CMAKE_ARGS "${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=\"${CMAKE_BUILD_TYPE}\"" CACHE INTERNAL "") +set(CMAKE_ARGS "${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=\"${CMAKE_BUILD_TYPE}\"" CACHE STRING "") string(REPLACE "\"" "\\\"" CMAKE_ARGS_ESCAPED ${CMAKE_ARGS}) -set(CMAKE_ARGS_ESCAPED "${CMAKE_ARGS_ESCAPED}" CACHE INTERNAL "") +set(CMAKE_ARGS_ESCAPED "${CMAKE_ARGS_ESCAPED}" CACHE STRING "") file(WRITE ${PROJECT_BINARY_DIR}/cmake-args "${CMAKE_ARGS}\n") diff --git a/scripts/cmake/ProcessesSetup.cmake b/scripts/cmake/ProcessesSetup.cmake index 86d103a33017ba99de836db58b6c2120ae842492..f12185f7314d21cc4f104b5e63664f8da69d9b4c 100644 --- a/scripts/cmake/ProcessesSetup.cmake +++ b/scripts/cmake/ProcessesSetup.cmake @@ -1,6 +1,6 @@ # A list of processes to be build. Also used in the ProcessLib to select # processes to be build. -set(ProcessesList +set(_processes_list ComponentTransport HT HeatConduction @@ -25,7 +25,7 @@ set(ProcessesList TwoPhaseFlowWithPrho) # Add a cmake option for each process. -foreach(process ${ProcessesList}) +foreach(process ${_processes_list}) option(OGS_BUILD_PROCESS_${process} "Build the ${process} process." ON) endforeach() @@ -33,7 +33,7 @@ set(OGS_BUILD_PROCESSES "" CACHE STRING "Semicolon-separated list of processes to build") if(NOT OGS_BUILD_CLI) - set(OGS_BUILD_PROCESSES OFF "" CACHE INTERNAL "") + set(OGS_BUILD_PROCESSES OFF "" CACHE STRING "" FORCE) message(STATUS "ATTENTION: OGS_BUILD_CLI=OFF -> OGS_BUILD_PROCESSES is set to OFF too.\n" " If cli is switched on again, remember to switch processes back to on \n" " too with -DOGS_BUILD_PROCESSES=\"\"!") @@ -41,19 +41,19 @@ endif() if(NOT "${OGS_BUILD_PROCESSES}" STREQUAL "") if(${OGS_BUILD_PROCESSES}) foreach(process ${OGS_BUILD_PROCESSES}) - if(NOT "${process}" IN_LIST ProcessesList) + if(NOT "${process}" IN_LIST processes_list) message( FATAL_ERROR "${process} given in OGS_BUILD_PROCESSES is " - "not a valid process name! Valid names are ${ProcessesList}" - ) + "not a valid process name! Valid names are ${processes_list}" + ) endif() endforeach() message(STATUS "Enabled processes:") else() message(STATUS "All processes disabled.") endif() - foreach(process ${ProcessesList}) + foreach(process ${processes_list}) if("${process}" IN_LIST OGS_BUILD_PROCESSES) set(OGS_BUILD_PROCESS_${process} ON CACHE BOOL "" FORCE) message(STATUS " ${process}") diff --git a/scripts/cmake/ProjectSetup.cmake b/scripts/cmake/ProjectSetup.cmake index b45f501574c1a5cc342c34fcf2cf0627a67f87b1..49e93cae39c6164113f282cb5531af038679ed4a 100644 --- a/scripts/cmake/ProjectSetup.cmake +++ b/scripts/cmake/ProjectSetup.cmake @@ -3,14 +3,15 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) if(OGS_USE_CONAN AND MSVC) - foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) - endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) + foreach(outputconfig ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${outputconfig} outputconfig) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${outputconfig} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) + endforeach() endif() +# cmake-lint: disable=C0103 set(Data_SOURCE_DIR ${PROJECT_SOURCE_DIR}/Tests/Data CACHE INTERNAL "") set(Data_BINARY_DIR ${PROJECT_BINARY_DIR}/Tests/Data CACHE INTERNAL "") @@ -21,13 +22,13 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}) # RPATH setup if(APPLE) - set(basePoint @loader_path) + set(BASEPOINT @loader_path) else() - set(basePoint $ORIGIN) + set(BASEPOINT $ORIGIN) endif() file(RELATIVE_PATH relDir ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR} ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR} ) -set(CMAKE_INSTALL_RPATH ${basePoint} ${basePoint}/${relDir}) +set(CMAKE_INSTALL_RPATH ${BASEPOINT} ${BASEPOINT}/${relDir}) set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) diff --git a/scripts/cmake/PythonSetup.cmake b/scripts/cmake/PythonSetup.cmake index 499baf4d51ab4f82b40a0df0d174c6db161f426d..acf68936c54ea73d4d0c10a58bff74c72e176c22 100644 --- a/scripts/cmake/PythonSetup.cmake +++ b/scripts/cmake/PythonSetup.cmake @@ -1,3 +1,4 @@ +# cmake-lint: disable=C0103 if(OGS_USE_POETRY) find_program(POETRY poetry) if(POETRY) @@ -8,7 +9,7 @@ if(OGS_USE_POETRY) ${PROJECT_BINARY_DIR}/pyproject.toml) endif() if(NOT EXISTS ${PROJECT_BINARY_DIR}/.venv) - execute_process(COMMAND ${CMD_COMMAND} poetry install + execute_process(COMMAND ${_CMD_COMMAND} poetry install WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) endif() set(Python3_ROOT_DIR ${PROJECT_BINARY_DIR}/.venv) @@ -46,6 +47,6 @@ if(POETRY) if(OGS_BUILD_TESTING) list(APPEND PYTHON_PACKAGES snakemake=${ogs.minimum_version.snakemake}) endif() - execute_process(COMMAND ${CMD_COMMAND} poetry add ${PYTHON_PACKAGES} + execute_process(COMMAND ${_CMD_COMMAND} poetry add ${PYTHON_PACKAGES} WORKING_DIRECTORY ${PROJECT_BINARY_DIR}) endif() diff --git a/scripts/cmake/packaging/Pack.cmake b/scripts/cmake/packaging/Pack.cmake index 729350aef06d6cf6292d14705d7f08560bda4f34..b9d4a04659e476cfac94e73b153f029af4d9928d 100644 --- a/scripts/cmake/packaging/Pack.cmake +++ b/scripts/cmake/packaging/Pack.cmake @@ -1,4 +1,4 @@ -if(IS_SUBPROJECT) +if(_IS_SUBPROJECT) include (CPack) return() endif() @@ -76,7 +76,6 @@ if(OGS_USE_PYTHON) endif() endif() - configure_file(Documentation/README.txt.in ${PROJECT_BINARY_DIR}/README.txt) install(FILES ${PROJECT_BINARY_DIR}/README.txt DESTINATION .) diff --git a/scripts/cmake/packaging/PackagingLinux.cmake b/scripts/cmake/packaging/PackagingLinux.cmake index c4434906174b6d5d84352e2c9f1d5bea420dade1..d5c4ecf17d4780e7b3de9956c7148bcae3928347 100644 --- a/scripts/cmake/packaging/PackagingLinux.cmake +++ b/scripts/cmake/packaging/PackagingLinux.cmake @@ -26,7 +26,7 @@ else() endif() endif() -set(README_PLATFORM_INSTRUCTIONS +set(_README_PLATFORM_INSTRUCTIONS "When running the Data Explorer make sure to set the LD_LIBRARY_PATH path to the bin-folder. E.g.: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./ ./DataExplorer" CACHE INTERNAL "" ) diff --git a/scripts/cmake/test/AddTest.cmake b/scripts/cmake/test/AddTest.cmake index 3535241b2496aa68fb10974f054d9189e0e27d12..acadcc8834afb4ca654be545233d08fbddce2527 100644 --- a/scripts/cmake/test/AddTest.cmake +++ b/scripts/cmake/test/AddTest.cmake @@ -50,7 +50,7 @@ # Can be given multiple times; the point coordinates in the gml files are # compared using the given absolute and relative tolerances. # ~~~ - +# cmake-lint: disable=C0103,R0911,R0912,R0915 function (AddTest) # parse arguments @@ -59,7 +59,6 @@ function (AddTest) set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS REQUIREMENTS PYTHON_PACKAGES VIS) cmake_parse_arguments(AddTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - set(AddTest_SOURCE_PATH "${Data_SOURCE_DIR}/${AddTest_PATH}") set(AddTest_BINARY_PATH "${Data_BINARY_DIR}/${AddTest_PATH}") file(MAKE_DIRECTORY ${AddTest_BINARY_PATH}) diff --git a/scripts/cmake/test/AddTestTester.cmake b/scripts/cmake/test/AddTestTester.cmake index 7b9ff26d2f0b5ae70a8a67eb2614e37e477c2990..595dd3fffa8d55bd55662927700f51f8e1def6f3 100644 --- a/scripts/cmake/test/AddTestTester.cmake +++ b/scripts/cmake/test/AddTestTester.cmake @@ -1,9 +1,9 @@ # Run vtk.js converter if(VIS_FILES AND VTKJS_CONVERTER) execute_process(COMMAND cmake -E make_directory ${VTKJS_OUTPUT_PATH}) - foreach(FILE ${VIS_FILES}) + foreach(file ${VIS_FILES}) execute_process( - COMMAND ${VTKJS_CONVERTER} -e -i ${BINARY_PATH}/${FILE} -o ${VTKJS_OUTPUT_PATH} + COMMAND ${VTKJS_CONVERTER} -e -i ${BINARY_PATH}/${file} -o ${VTKJS_OUTPUT_PATH} ) endforeach() endif() @@ -16,30 +16,31 @@ else() set(TERMINAL_CMD bash -c) endif() set(TEST_FAILED FALSE) -foreach(CMD ${TESTER_COMMAND}) +foreach(cmd ${TESTER_COMMAND}) if(GLOB_MODE) - separate_arguments(CMD) - list(GET CMD 0 GLOB) - list(GET CMD 1 NAME_A) - list(GET CMD 2 NAME_B) - list(GET CMD 3 ABS_TOL) - list(GET CMD 4 REL_TOL) + # cmake-lint: disable=E1120 + separate_arguments(cmd) + list(GET cmd 0 GLOB) + list(GET cmd 1 NAME_A) + list(GET cmd 2 NAME_B) + list(GET cmd 3 ABS_TOL) + list(GET cmd 4 REL_TOL) file(GLOB FILES RELATIVE ${SOURCE_PATH} ${GLOB}) - list(LENGTH FILES length) - message(STATUS "Glob expression '${GLOB}' (${NAME_A}) found ${length} files.") - if(${length} EQUAL 0) + list(LENGTH FILES LENGTH) + message(STATUS "Glob expression '${GLOB}' (${NAME_A}) found ${LENGTH} files.") + if(${LENGTH} EQUAL 0) message(FATAL_ERROR "DIFF_DATA glob expression '${GLOB}' " "did not match any files!") endif() - foreach(FILE ${FILES}) + foreach(file ${FILES}) if("$ENV{HOSTNAME}" MATCHES "frontend.*") - string(REPLACE "gpfs1" "../.." FILE ${FILE}) + string(REPLACE "gpfs1" "../.." file ${file}) endif() if("$ENV{HOSTNAME}" MATCHES "frontend.*") - string(REPLACE "gpfs0" "../.." FILE ${FILE}) + string(REPLACE "gpfs0" "../.." file ${file}) endif() execute_process( - COMMAND ${SELECTED_DIFF_TOOL_PATH} ${SOURCE_PATH}/${FILE} ${BINARY_PATH}/${FILE} -a ${NAME_A} -b ${NAME_B} --abs ${ABS_TOL} --rel ${REL_TOL} + COMMAND ${SELECTED_DIFF_TOOL_PATH} ${SOURCE_PATH}/${file} ${BINARY_PATH}/${file} -a ${NAME_A} -b ${NAME_B} --abs ${ABS_TOL} --rel ${REL_TOL} WORKING_DIRECTORY ${SOURCE_PATH} RESULT_VARIABLE EXIT_CODE OUTPUT_VARIABLE OUTPUT @@ -53,7 +54,7 @@ foreach(CMD ${TESTER_COMMAND}) endforeach() else() execute_process( - COMMAND ${TERMINAL_CMD} "${CMD}" + COMMAND ${TERMINAL_CMD} "${cmd}" WORKING_DIRECTORY ${SOURCE_PATH} RESULT_VARIABLE EXIT_CODE OUTPUT_VARIABLE OUTPUT diff --git a/scripts/cmake/test/AddTestWrapper.cmake b/scripts/cmake/test/AddTestWrapper.cmake index c8d801d698c2ea770827073aa027dd341ba8c3a0..3d06833ab07aab48c00582e5ee4179150901b34e 100644 --- a/scripts/cmake/test/AddTestWrapper.cmake +++ b/scripts/cmake/test/AddTestWrapper.cmake @@ -1,7 +1,7 @@ # IMPORTANT: multiple arguments in one variables have to be in list notation (;) # and have to be quoted when passed "-DEXECUTABLE_ARGS=${AddTest_EXECUTABLE_ARGS}" -foreach(FILE ${FILES_TO_DELETE}) - file(REMOVE ${BINARY_PATH}/${FILE}) +foreach(file ${FILES_TO_DELETE}) + file(REMOVE ${BINARY_PATH}/${file}) endforeach() string(REPLACE ";" " " CMD_STRING "cd ${WORKING_DIRECTORY} && ${WRAPPER_COMMAND} " diff --git a/scripts/cmake/test/CTestCustom.in.cmake b/scripts/cmake/test/CTestCustom.in.cmake index 5f401e4561a71f0e996822fd06b5e7a490fd3a63..5f0056f42614b1bfb05c0cab31dc7eca26212516 100644 --- a/scripts/cmake/test/CTestCustom.in.cmake +++ b/scripts/cmake/test/CTestCustom.in.cmake @@ -4,9 +4,9 @@ file (STRINGS "@PROJECT_BINARY_DIR@/CTestTestfile.cmake" LINES) file(WRITE "@PROJECT_BINARY_DIR@/CTestTestfile.cmake" "") # loop through the lines, -foreach(LINE IN LISTS LINES) - # remove unwanted parts - string(REGEX REPLACE ".*_deps/.*" "" STRIPPED "${LINE}") - # and write the (changed) line ... - file(APPEND "@PROJECT_BINARY_DIR@/CTestTestfile.cmake" "${STRIPPED}\n") +foreach(line IN LISTS LINES) + # remove unwanted parts + string(REGEX REPLACE ".*_deps/.*" "" STRIPPED "${line}") + # and write the (changed) line ... + file(APPEND "@PROJECT_BINARY_DIR@/CTestTestfile.cmake" "${STRIPPED}\n") endforeach() diff --git a/scripts/cmake/test/MeshTest.cmake b/scripts/cmake/test/MeshTest.cmake index d18380cd78ab4ad9474d3975b16ef9efcdb2c1a1..080919847bec6b5e4e3ce0cc6359364b30da1280 100644 --- a/scripts/cmake/test/MeshTest.cmake +++ b/scripts/cmake/test/MeshTest.cmake @@ -17,7 +17,7 @@ # values should be taken from envinf1 serial job # ) # ~~~ - +# cmake-lint: disable=C0103,R0912,R0915 function (MeshTest) if(NOT OGS_BUILD_TESTING) return() @@ -28,7 +28,6 @@ function (MeshTest) set(multiValueArgs EXECUTABLE_ARGS DATA DIFF_DATA WRAPPER_ARGS REQUIREMENTS) cmake_parse_arguments(MeshTest "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - set(MeshTest_SOURCE_PATH "${Data_SOURCE_DIR}/${MeshTest_PATH}") set(MeshTest_BINARY_PATH "${Data_BINARY_DIR}/${MeshTest_PATH}") file(MAKE_DIRECTORY ${MeshTest_BINARY_PATH}) diff --git a/scripts/cmake/test/MoveDataToStore.cmake b/scripts/cmake/test/MoveDataToStore.cmake deleted file mode 100644 index 84d22d2f02f4ab4d172aee5395f46a2ff4525079..0000000000000000000000000000000000000000 --- a/scripts/cmake/test/MoveDataToStore.cmake +++ /dev/null @@ -1,7 +0,0 @@ -# Get all files matching .ExternalData_<algo>_<hash> -file(GLOB_RECURSE FILES "" ${ExternalData_SOURCE_ROOT}/.ExternalData_${ExternalData_LINK_CONTENT}_*) -foreach(HASH_FILE ${FILES}) - string(REGEX MATCH [^_]+$ HASH ${HASH_FILE}) - message("Copying ${HASH_FILE} to ${ExternalData_OBJECT_STORES}/${HASH}") - file(RENAME ${HASH_FILE} ${ExternalData_OBJECT_STORES}/${ExternalData_LINK_CONTENT}/${HASH}) -endforeach() diff --git a/scripts/cmake/test/OgsTest.cmake b/scripts/cmake/test/OgsTest.cmake index efc854e1698513fc2e880d1a7b1802946ff85c13..9b44e38c9b60819b94167af97c1af0e57d7efc02 100644 --- a/scripts/cmake/test/OgsTest.cmake +++ b/scripts/cmake/test/OgsTest.cmake @@ -1,3 +1,4 @@ +# cmake-lint: disable=C0103 function (OgsTest) if(NOT OGS_BUILD_CLI OR NOT OGS_BUILD_TESTING)