Skip to content

Commit 75b95a3

Browse files
committed
CMake: Improve encapsulation
1 parent 37aed73 commit 75b95a3

File tree

5 files changed

+46
-46
lines changed

5 files changed

+46
-46
lines changed

CMakeLists.txt

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
511511
FetchContent_Declare(
512512
kokkos
513513
GIT_REPOSITORY https://github.com/kokkos/kokkos.git
514-
GIT_TAG 4.3.00
514+
GIT_TAG b4f7c84 # version 4.6.1 with patches
515515
OVERRIDE_FIND_PACKAGE
516516
)
517517
# cmake-format: on
@@ -530,25 +530,6 @@ if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
530530
endif()
531531
endforeach()
532532
endif()
533-
if(ESPRESSO_BUILD_WITH_CLANG_TIDY)
534-
set(KOKKOS_CXX_CLANG_TIDY "${ESPRESSO_CXX_CLANG_TIDY}")
535-
set(SKIP_CLANG_TIDY_CHECKS "")
536-
set(SKIP_CLANG_TIDY_CHECKS_CXX "")
537-
# silence heFFTe diagnostics
538-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-modernize-*")
539-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-readability-*")
540-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-clang-diagnostic-float-conversion")
541-
list(APPEND SKIP_CLANG_TIDY_CHECKS
542-
"-clang-diagnostic-implicit-int-float-conversion")
543-
list(APPEND SKIP_CLANG_TIDY_CHECKS
544-
"-bugprone-return-const-ref-from-parameter")
545-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-narrowing-conversions")
546-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-sizeof-expression")
547-
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-fold-init-type")
548-
espresso_override_clang_tidy_checks(
549-
KOKKOS_CXX_CLANG_TIDY "${SKIP_CLANG_TIDY_CHECKS}"
550-
"${SKIP_CLANG_TIDY_CHECKS_CXX}")
551-
endif()
552533

553534
if(NOT EXISTS ${FETCHCONTENT_BASE_DIR}/cabana-src)
554535
find_package(Cabana 0.7.0 QUIET)
@@ -559,11 +540,38 @@ if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
559540
cabana
560541
GIT_REPOSITORY https://github.com/ECP-copa/Cabana.git
561542
GIT_TAG 6647fed3 # 0.7.0 with patches
543+
PATCH_COMMAND patch -p0 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cabana.patch
562544
)
563545
# cmake-format: on
564546
set(Cabana_REQUIRE_HEFFTE ${ESPRESSO_BUILD_WITH_FFTW} CACHE BOOL "")
565547
FetchContent_MakeAvailable(cabana)
566548
endif()
549+
550+
if(ESPRESSO_BUILD_WITH_CLANG_TIDY)
551+
# silence Kokkos and Cabana diagnostics
552+
set(CABANA_CXX_CLANG_TIDY "${ESPRESSO_CXX_CLANG_TIDY}")
553+
set(CABANA_CUDA_CLANG_TIDY "${ESPRESSO_CUDA_CLANG_TIDY}")
554+
unset(SKIP_CLANG_TIDY_CHECKS)
555+
unset(SKIP_CLANG_TIDY_CHECKS_CXX)
556+
unset(SKIP_CLANG_TIDY_CHECKS_CUDA)
557+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-modernize-*")
558+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-readability-*")
559+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-clang-diagnostic-float-conversion")
560+
list(APPEND SKIP_CLANG_TIDY_CHECKS
561+
"-clang-diagnostic-implicit-int-float-conversion")
562+
list(APPEND SKIP_CLANG_TIDY_CHECKS
563+
"-bugprone-return-const-ref-from-parameter")
564+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-narrowing-conversions")
565+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-sizeof-expression")
566+
list(APPEND SKIP_CLANG_TIDY_CHECKS "-bugprone-fold-init-type")
567+
list(APPEND SKIP_CLANG_TIDY_CHECKS_CUDA "-bugprone-branch-clone")
568+
espresso_override_clang_tidy_checks(
569+
CABANA_CXX_CLANG_TIDY "${SKIP_CLANG_TIDY_CHECKS}"
570+
"${SKIP_CLANG_TIDY_CHECKS_CXX}")
571+
espresso_override_clang_tidy_checks(
572+
CABANA_CUDA_CLANG_TIDY "${SKIP_CLANG_TIDY_CHECKS}"
573+
"${SKIP_CLANG_TIDY_CHECKS_CUDA}")
574+
endif()
567575
endif()
568576

569577
# We need the parallel hdf5 version!

cmake/cabana.patch

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,6 @@
1-
https://github.com/ECP-copa/Cabana/pull/815
21
--- CMakeLists.txt
32
+++ CMakeLists.txt
4-
@@ -216,12 +216,6 @@
5-
enable_testing()
3+
@@ -56,3 +56,2 @@ endforeach()
4+
if(Kokkos_ENABLE_CUDA)
5+
- kokkos_check(OPTIONS CUDA_LAMBDA)
66
endif()
7-
8-
-# enable doxygen
9-
-find_package(Doxygen)
10-
-if(Doxygen_FOUND)
11-
- doxygen_add_docs(doxygen core/src grid/src)
12-
-endif()
13-
-
14-
##---------------------------------------------------------------------------##
15-
## Libraries and Examples
16-
##---------------------------------------------------------------------------##

src/core/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ if(ESPRESSO_BUILD_WITH_CLANG_TIDY)
5353
"${ESPRESSO_CXX_CLANG_TIDY}")
5454
if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
5555
set_target_properties(espresso_core PROPERTIES CXX_CLANG_TIDY
56-
"${KOKKOS_CXX_CLANG_TIDY}")
56+
"${CABANA_CXX_CLANG_TIDY}")
5757
endif()
5858
endif()
5959

@@ -75,6 +75,10 @@ if(ESPRESSO_BUILD_WITH_CUDA)
7575
${CMAKE_CURRENT_SOURCE_DIR}/magnetostatics)
7676
set_target_properties(espresso_cuda PROPERTIES CUDA_CLANG_TIDY
7777
"${ESPRESSO_CUDA_CLANG_TIDY}")
78+
if(ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM)
79+
set_target_properties(espresso_cuda PROPERTIES CUDA_CLANG_TIDY
80+
"${CABANA_CUDA_CLANG_TIDY}")
81+
endif()
7882
target_link_libraries(espresso_core PUBLIC espresso::cuda)
7983
install(TARGETS espresso_cuda
8084
LIBRARY DESTINATION ${ESPRESSO_INSTALL_PYTHON}/espressomd)
@@ -102,8 +106,8 @@ if(ESPRESSO_BUILD_WITH_WALBERLA)
102106
endif()
103107

104108
if(ESPRESSO_BUILD_WITH_FFTW)
105-
add_subdirectory(fft)
106109
add_subdirectory(p3m)
110+
add_subdirectory(fft)
107111
endif()
108112

109113
add_subdirectory(accumulators)

src/core/fft/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
#
1919

20-
if(FFTW3_FOUND)
21-
target_link_libraries(espresso_core PUBLIC FFTW3::FFTW3)
20+
if(ESPRESSO_BUILD_WITH_FFTW)
21+
target_link_libraries(espresso_p3m PRIVATE FFTW3::FFTW3)
22+
target_sources(espresso_p3m PRIVATE fft.cpp)
2223
endif()
23-
24-
target_sources(espresso_core PRIVATE fft.cpp)

src/core/p3m/CMakeLists.txt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,11 @@
1717
# along with this program. If not, see <http://www.gnu.org/licenses/>.
1818
#
1919

20-
target_sources(
21-
espresso_core PRIVATE common.cpp send_mesh.cpp TuningAlgorithm.cpp
22-
FFTBackendLegacy.cpp FFTBuffersLegacy.cpp)
23-
2420
if(ESPRESSO_BUILD_WITH_FFTW)
2521
add_library(espresso_p3m OBJECT)
2622
add_library(espresso::p3m ALIAS espresso_p3m)
23+
target_include_directories(espresso_p3m
24+
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..)
2725
if(ESPRESSO_BUILD_WITH_CLANG_TIDY)
2826
set_target_properties(espresso_p3m PROPERTIES CXX_CLANG_TIDY
2927
"${HEFFTE_CXX_CLANG_TIDY}")
@@ -44,7 +42,8 @@ if(ESPRESSO_BUILD_WITH_FFTW)
4442
$<$<BOOL:${ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM}>:Kokkos::kokkos>
4543
$<$<BOOL:${ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM}>:Cabana::Core>)
4644
set_target_properties(espresso_p3m PROPERTIES POSITION_INDEPENDENT_CODE ON)
47-
target_link_libraries(espresso_core PUBLIC espresso_p3m)
48-
install(TARGETS espresso_p3m
49-
LIBRARY DESTINATION ${ESPRESSO_INSTALL_PYTHON}/espressomd)
45+
target_link_libraries(espresso_core PRIVATE espresso_p3m)
46+
target_sources(
47+
espresso_p3m PRIVATE common.cpp send_mesh.cpp TuningAlgorithm.cpp
48+
FFTBackendLegacy.cpp FFTBuffersLegacy.cpp)
5049
endif()

0 commit comments

Comments
 (0)