From 077bb31bbc30ad09a025e864e71aa9f44b3ea946 Mon Sep 17 00:00:00 2001 From: Dominik Thoennes <dominik.thoennes@fau.de> Date: Tue, 2 Apr 2024 14:48:17 +0200 Subject: [PATCH] cmake dep changes --- .gitlab-ci.yml | 31 +--------------------- CMakeLists.txt | 1 + cmake/waLBerlaFunctions.cmake | 3 +++ cmake/waLBerlaModuleDependencySystem.cmake | 6 +++-- src/vtk/VTKOutput.cpp | 2 +- 5 files changed, 10 insertions(+), 33 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0d4978398..aaf0b3baa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1539,35 +1539,6 @@ clang_17_hybrid_dbg_sp: - cuda11 - docker -############################################################################### -## ## -## STL Debug Build ## -## ## -############################################################################### - -gcc_10_stl_debug: - extends: .build_template - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-debug-stl:10 - before_script: - - rm -rf /opt/boost /usr/include/boost - variables: - CTEST_EXCLUDE_LABELS: "longrun" - WALBERLA_BUILD_WITH_MPI: "ON" - WALBERLA_BUILD_WITH_OPENMP: "ON" - OMP_NUM_THREADS: "4" - OMP_WAIT_POLICY: "PASSIVE" - CMAKE_BUILD_TYPE: "DebugOptimized" - WALBERLA_BUFFER_DEBUG: "OFF" - WALBERLA_DOUBLE_ACCURACY: "ON" - WALBERLA_BUILD_WITH_CUDA: "OFF" - WALBERLA_BUILD_WITH_METIS: "OFF" - WALBERLA_BUILD_WITH_PARMETIS: "OFF" - WALBERLA_BUILD_WITH_PYTHON: "OFF" - WALBERLA_STL_BOUNDS_CHECKS: "ON" - tags: - - docker - - ############################################################################### ## ## @@ -1576,7 +1547,7 @@ gcc_10_stl_debug: ############################################################################### doc: - image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc:9 + image: i10git.cs.fau.de:5005/walberla/buildenvs/gcc-13 script: - cmake --version - doxygen --version diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d21694af..8f16ad6af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -99,6 +99,7 @@ option ( WALBERLA_PROFILE_USE "Uses Profile to optimize" option ( WALBERLA_OPTIMIZE_FOR_LOCALHOST "Enable compiler optimizations spcific to localhost" ) option ( WALBERLA_LOG_SKIPPED "Log skipped cmake targets" ON ) +option ( WALBERLA_DEPS_ERROR "Fail if module dependencies are not met" OFF ) option ( WALBERLA_GIT_SUBMODULE_AUTO "Check submodules during cmake run" ON ) diff --git a/cmake/waLBerlaFunctions.cmake b/cmake/waLBerlaFunctions.cmake index 4962e18ca..e5914ed76 100644 --- a/cmake/waLBerlaFunctions.cmake +++ b/cmake/waLBerlaFunctions.cmake @@ -174,6 +174,9 @@ function ( waLBerla_add_executable ) foreach ( depMod ${ARG_DEPENDS} ) get_module_library_name ( depModLibraryName ${depMod} ) if( NOT TARGET ${depModLibraryName} ) + if( WALBERLA_DEPS_ERROR ) + message( FATAL_ERROR "Module ${depMod} is missing to build target ${ARG_NAME}" ) + endif() if( WALBERLA_LOG_SKIPPED ) message ( STATUS "Skipping ${ARG_NAME} since dependent module ${depMod} was not built" ) endif() diff --git a/cmake/waLBerlaModuleDependencySystem.cmake b/cmake/waLBerlaModuleDependencySystem.cmake index b955d81f4..88e0df42e 100644 --- a/cmake/waLBerlaModuleDependencySystem.cmake +++ b/cmake/waLBerlaModuleDependencySystem.cmake @@ -55,10 +55,12 @@ function ( get_current_module_name moduleNameOut ) foreach( moduleDir ${ARGN} ${WALBERLA_MODULE_DIRS} ) - get_filename_component( moduleNameShort ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE ) file( RELATIVE_PATH moduleFolder ${moduleDir} ${CMAKE_CURRENT_SOURCE_DIR} ) if ( NOT ${moduleFolder} MATCHES "\\.\\./.*" ) - set ( ${moduleNameOut} ${moduleFolder} PARENT_SCOPE ) + #append / to make cmake_path also work with one directory only + set( moduleFolder "${moduleFolder}/" ) + cmake_path(GET moduleFolder PARENT_PATH moduleNameOut) + set(moduleName ${moduleNameOut} PARENT_SCOPE) return() endif() endforeach() diff --git a/src/vtk/VTKOutput.cpp b/src/vtk/VTKOutput.cpp index 117ceca75..42d7d9ef4 100644 --- a/src/vtk/VTKOutput.cpp +++ b/src/vtk/VTKOutput.cpp @@ -1986,7 +1986,7 @@ void VTKOutput::writeVTHB( const uint_t collector ) const for( uint_t level = 0; level < files.size(); level++){ ofs << " <Block level=\"" << level << "\">\n"; - uint index = 0; + walberla::uint_t index = 0; for( auto file = files[level].begin(); file != files[level].end(); ++file ){ ofs << " <DataSet index=\"" << index << "\" file=\"" << executionFolder_ << "_" << collector << "/" << file->filename().string() << "\"/>\n"; index++; -- GitLab