@@ -142,6 +142,10 @@ option(ESPRESSO_INSIDE_DOCKER "Set this to ON when running inside Docker." OFF)
142142mark_as_advanced (ESPRESSO_INSIDE_DOCKER)
143143set (ESPRESSO_TEST_TIMEOUT "300"
144144 CACHE STRING "Timeout in seconds for each testsuite test" )
145+ if (ESPRESSO_BUILD_WITH_PYTHON)
146+ set (ESPRESSO_MODULE_INSTALL_PATH ""
147+ CACHE PATH "Install ESPResSo Python module in a custom location" )
148+ endif ()
145149
146150if (ESPRESSO_BUILD_WITH_CCACHE)
147151 find_program (CCACHE_PROGRAM ccache REQUIRED)
@@ -316,7 +320,7 @@ endif()
316320# Python interpreter and Cython interface library
317321if (ESPRESSO_BUILD_WITH_PYTHON)
318322 find_package (Python 3.11 REQUIRED COMPONENTS Interpreter Development NumPy)
319- find_package (Cython 3.0.4...<3.2 .0 REQUIRED)
323+ find_package (Cython 3.0.4...<4.0 .0 REQUIRED)
320324 if (CYTHON_VERSION VERSION_LESS 3.0.8)
321325 message (WARNING "We strongly recommend using Cython 3.0.8 or later" )
322326 endif ()
@@ -358,7 +362,7 @@ set(ESPRESSO_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
358362
359363set (ESPRESSO_OLD_CMAKE_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR} " )
360364
361- # python site-packages, can be overriden with CMake options
365+ # python site-packages, can be overridden with CMake options
362366if (ESPRESSO_BUILD_WITH_PYTHON)
363367 if (NOT ESPRESSO_INSTALL_PYTHON)
364368 if (CMAKE_INSTALL_PREFIX STREQUAL "/" )
@@ -369,7 +373,10 @@ if(ESPRESSO_BUILD_WITH_PYTHON)
369373 )
370374 endif ()
371375 endif ()
372- # override: package C++, CUDA and Cython shared objects together
376+ if (NOT ESPRESSO_MODULE_INSTALL_PATH STREQUAL "" )
377+ set (ESPRESSO_INSTALL_PYTHON "${ESPRESSO_MODULE_INSTALL_PATH} " )
378+ endif ()
379+ # install shared objects in the Python folder
373380 set (ESPRESSO_INSTALL_LIBDIR "${ESPRESSO_INSTALL_PYTHON} /espressomd" )
374381 add_custom_target (espresso_packaging_dependencies)
375382endif ()
@@ -633,14 +640,14 @@ if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
633640 find_package (OpenMP REQUIRED COMPONENTS CXX)
634641
635642 if (NOT EXISTS ${FETCHCONTENT_BASE_DIR} /kokkos-src)
636- find_package (Kokkos 4.3 QUIET )
643+ find_package (Kokkos 4.6 QUIET )
637644 endif ()
638645 if (NOT DEFINED Kokkos_FOUND OR NOT ${Kokkos_FOUND} )
639646 # cmake-format: off
640647 FetchContent_Declare(
641648 kokkos
642649 GIT_REPOSITORY https://github.com/kokkos/kokkos.git
643- GIT_TAG 18b830e # version 4.6.1 with patches
650+ GIT_TAG 5.0.2
644651 OVERRIDE_FIND_PACKAGE
645652 )
646653 # cmake-format: on
@@ -652,6 +659,7 @@ if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
652659 set (Kokkos_ENABLE_COMPLEX_ALIGN ON CACHE BOOL "" )
653660 set (Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION ON CACHE BOOL "" )
654661 set (Kokkos_ENABLE_HWLOC ON CACHE BOOL "" )
662+ set (Kokkos_ENABLE_DEPRECATED_CODE_5 OFF CACHE BOOL "" )
655663 set (Kokkos_ARCH_NATIVE ON CACHE BOOL "" )
656664 FetchContent_MakeAvailable(kokkos)
657665 set (BUILD_SHARED_LIBS ${ESPRESSO_BUILD_SHARED_LIBS_DEFAULT} )
@@ -711,7 +719,7 @@ if(ESPRESSO_BUILD_WITH_HDF5)
711719 FetchContent_Declare(
712720 HighFive
713721 GIT_REPOSITORY https://github.com/highfive-devs/highfive.git
714- GIT_TAG v3.2 .0
722+ GIT_TAG v3.3 .0
715723 )
716724 # cmake-format: on
717725 FetchContent_MakeAvailable(HighFive)
@@ -893,6 +901,8 @@ if(ESPRESSO_BUILD_TESTS)
893901 "Extra arguments to give to ctest calls (separated by semicolons)" )
894902 set (ESPRESSO_TEST_NP "4" CACHE STRING
895903 "Maximal number of MPI ranks to use per test" )
904+ set (ESPRESSO_TEST_NT "4"
905+ CACHE STRING "Maximal number of OpenMP threads to use per test" )
896906 add_library (espresso_tests_compiler_flags INTERFACE )
897907 add_library (espresso::tests::compiler_flags ALIAS
898908 espresso_tests_compiler_flags)
@@ -923,13 +933,14 @@ if(ESPRESSO_BUILD_WITH_WALBERLA)
923933 FetchContent_Declare(
924934 walberla
925935 GIT_REPOSITORY https://i10git.cs.fau.de/walberla/walberla.git
926- GIT_TAG 17fc54c8 # v7.2 with patches
936+ GIT_TAG 3247aa73 # v7.2 with patches
927937 )
928938 # cmake-format: on
929939 string (REGEX REPLACE "([/\\ ]walberla)-src$" "\\ 1-build" walberla_BINARY_DIR
930940 "${walberla_SOURCE_DIR} " )
931941 set (WALBERLA_BUILD_TESTS off CACHE BOOL "" )
932942 set (WALBERLA_BUILD_TOOLS off CACHE BOOL "" )
943+ set (WALBERLA_BUILD_LEGACY_LBM off CACHE BOOL "" )
933944 set (WALBERLA_BUILD_BENCHMARKS off CACHE BOOL "" )
934945 set (WALBERLA_BUILD_TUTORIALS off CACHE BOOL "" )
935946 set (WALBERLA_BUILD_SHOWCASES off CACHE BOOL "" )
@@ -972,14 +983,21 @@ if(ESPRESSO_BUILD_WITH_WALBERLA)
972983 endfunction ()
973984 espresso_enable_avx2_support(espresso_avx_flags_callback)
974985 endif ()
986+ add_library (espresso_walberla_sqlite_compiler_flags INTERFACE )
987+ target_compile_options (
988+ espresso_walberla_sqlite_compiler_flags
989+ INTERFACE $<$<COMPILE_LANG_AND_ID:C,GNU>:-Wno-discarded-qualifiers>
990+ -Wno-misleading-indentation -Wno-unused-but-set-variable )
991+ target_link_libraries (walberla_sqlite
992+ PRIVATE espresso_walberla_sqlite_compiler_flags)
975993endif ()
976994
977995if (ESPRESSO_BUILD_WITH_CALIPER)
978996 # cmake-format: off
979997 FetchContent_Declare(
980998 caliper
981999 GIT_REPOSITORY https://github.com/LLNL/Caliper.git
982- GIT_TAG v2.13 .0
1000+ GIT_TAG v2.14 .0
9831001 )
9841002 # cmake-format: on
9851003 set (CALIPER_OPTION_PREFIX on CACHE BOOL "" )
@@ -995,10 +1013,14 @@ if(ESPRESSO_BUILD_WITH_CALIPER)
9951013 set (BUILD_SHARED_LIBS ${ESPRESSO_BUILD_SHARED_LIBS_DEFAULT} )
9961014 set (CMAKE_INSTALL_LIBDIR "${ESPRESSO_OLD_CMAKE_INSTALL_LIBDIR} " )
9971015 set (CMAKE_SHARED_LIBRARY_PREFIX "${ESPRESSO_SHARED_LIBRARY_PREFIX} " )
1016+ add_library (espresso_caliper_compiler_flags INTERFACE )
9981017 target_compile_options (
999- caliper-common
1000- PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-free-nonheap-object
1001- -Wno-deprecated-enum-enum-conversion -Wno-volatile>)
1018+ espresso_caliper_compiler_flags
1019+ INTERFACE $<$<COMPILE_LANG_AND_ID:CXX,GNU>:-Wno-free-nonheap-object
1020+ -Wno-deprecated-enum-enum-conversion -Wno-volatile
1021+ -Wno-maybe-uninitialized>)
1022+ target_link_libraries (caliper-common PRIVATE espresso_caliper_compiler_flags)
1023+ target_link_libraries (caliper-runtime PRIVATE espresso_caliper_compiler_flags)
10021024endif ()
10031025
10041026#
@@ -1028,6 +1050,17 @@ function(espresso_set_common_target_properties)
10281050 elseif (CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" )
10291051 set_target_properties (${TARGET_NAME} PROPERTIES LINKER_LANGUAGE "CXX" )
10301052 endif ()
1053+ # handle builds with different GCC versions for C++ and CUDA
1054+ # (https://github.com/espressomd/espresso/issues/5256)
1055+ if (CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND CMAKE_CXX_COMPILER_ID
1056+ STREQUAL "GNU"
1057+ AND NOT "$ENV{CUDAHOSTCXX} " STREQUAL "$ENV{CXX} "
1058+ AND "$ENV{CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES_EXCLUDE} " MATCHES
1059+ "^/usr/lib/gcc/[^/]+/1[4-9]\$ " )
1060+ target_link_directories (
1061+ ${TARGET_NAME} BEFORE PUBLIC
1062+ "$ENV{CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES_EXCLUDE} " )
1063+ endif ()
10311064 endif ()
10321065 endif ()
10331066endfunction ()
0 commit comments