From e11935f8ce62e104c6b27dc990b326a300a5a919 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Mon, 7 Oct 2024 11:20:36 -0600 Subject: [PATCH 1/5] cmake: add feature summary --- CMakeLists.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5e2437b3..736c627e4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,8 @@ option(CMAKE_VERBOSE_MAKEFILE "Generate verbose Makefiles" OFF) include(GNUInstallDirs) set(Cabana_INSTALL_PACKAGEDIR "${CMAKE_INSTALL_DATADIR}/cmake/Cabana" CACHE PATH "Install location of CMake target files") +include(FeatureSummary) + # point to cmake modules set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) @@ -77,12 +79,15 @@ if(Cabana_REQUIRE_HDF5) else() Cabana_add_dependency( PACKAGE MPI COMPONENTS CXX ) endif() +set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for parallization") # find ArborX Cabana_add_dependency( PACKAGE ArborX ) +set_package_properties(ArborX PROPERTIES TYPE OPTIONAL PURPOSE "Used in neighbor search") # find ALL Cabana_add_dependency( PACKAGE ALL ) +set_package_properties(ALL PROPERTIES TYPE OPTIONAL PURPOSE "Used for load balancing") # find Clang Format find_package( CLANG_FORMAT 14 ) @@ -92,9 +97,11 @@ Cabana_add_dependency( PACKAGE HYPRE VERSION 2.22.1 ) # find heffte Cabana_add_dependency( PACKAGE Heffte VERSION 2.3.0 ) +set_package_properties(Heffte PROPERTIES TYPE OPTIONAL PURPOSE "Used for fft calculations") # find Silo Cabana_add_dependency( PACKAGE SILO ) +set_package_properties(SILO PROPERTIES TYPE OPTIONAL PURPOSE "Used for I/O") if(SILO_FOUND) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindSILO.cmake @@ -118,6 +125,7 @@ if(CMAKE_VERSION VERSION_LESS 3.26) else() Cabana_add_dependency( PACKAGE HDF5 COMPONENTS C ) endif() +set_package_properties(HDF5 PROPERTIES TYPE RECOMMENDED PURPOSE "Used for I/O") if(Cabana_ENABLE_HDF5) if(NOT Cabana_ENABLE_MPI) @@ -237,6 +245,7 @@ endif() add_subdirectory(core) option(Cabana_ENABLE_GRID "Build grid and particle-grid capabilities" ${Cabana_ENABLE_MPI}) +add_feature_info(Cabana_ENABLE_GRID Cabana_ENABLE_GRID "Build grid and particle-grid capabilities (needs MPI)") if(Cabana_ENABLE_GRID) if(MPI_FOUND) add_subdirectory(grid) @@ -277,3 +286,5 @@ if(CLANG_FORMAT_FOUND) COMMAND ${CLANG_FORMAT_EXECUTABLE} -i -style=file ${FORMAT_SOURCES} DEPENDS ${FORMAT_SOURCES}) endif() + +feature_summary(INCLUDE_QUIET_PACKAGES WHAT ALL) From 4b21951877d2c806b9ce79b77170648a0f590bb6 Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Mon, 7 Oct 2024 16:54:11 -0600 Subject: [PATCH 2/5] Update CMakeLists.txt Co-authored-by: Damien L-G --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 736c627e4..0ff09fc8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,7 +79,7 @@ if(Cabana_REQUIRE_HDF5) else() Cabana_add_dependency( PACKAGE MPI COMPONENTS CXX ) endif() -set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for parallization") +set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for parallelization") # find ArborX Cabana_add_dependency( PACKAGE ArborX ) From 66ca6a6bd5f1056cb3aa9f7caef762a7316b878b Mon Sep 17 00:00:00 2001 From: Christoph Junghans Date: Tue, 8 Oct 2024 08:33:47 -0600 Subject: [PATCH 3/5] Update CMakeLists.txt Co-authored-by: Sam Reeve <6740307+streeve@users.noreply.github.com> --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ff09fc8c..6791dcf9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,7 +94,6 @@ find_package( CLANG_FORMAT 14 ) # find hypre Cabana_add_dependency( PACKAGE HYPRE VERSION 2.22.1 ) - # find heffte Cabana_add_dependency( PACKAGE Heffte VERSION 2.3.0 ) set_package_properties(Heffte PROPERTIES TYPE OPTIONAL PURPOSE "Used for fft calculations") From 62750c8fb93414eedf031b07c6bfc1b869b5315b Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Tue, 8 Oct 2024 10:52:05 -0400 Subject: [PATCH 4/5] fixup: cmake feature updates --- CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6791dcf9e..f99dd0641 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,7 +79,7 @@ if(Cabana_REQUIRE_HDF5) else() Cabana_add_dependency( PACKAGE MPI COMPONENTS CXX ) endif() -set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for parallelization") +set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for distributed parallelization") # find ArborX Cabana_add_dependency( PACKAGE ArborX ) @@ -94,6 +94,8 @@ find_package( CLANG_FORMAT 14 ) # find hypre Cabana_add_dependency( PACKAGE HYPRE VERSION 2.22.1 ) +set_package_properties(HYPRE PROPERTIES TYPE OPTIONAL PURPOSE "Used for structured solves") + # find heffte Cabana_add_dependency( PACKAGE Heffte VERSION 2.3.0 ) set_package_properties(Heffte PROPERTIES TYPE OPTIONAL PURPOSE "Used for fft calculations") @@ -124,7 +126,7 @@ if(CMAKE_VERSION VERSION_LESS 3.26) else() Cabana_add_dependency( PACKAGE HDF5 COMPONENTS C ) endif() -set_package_properties(HDF5 PROPERTIES TYPE RECOMMENDED PURPOSE "Used for I/O") +set_package_properties(HDF5 PROPERTIES TYPE OPTIONAL PURPOSE "Used for I/O") if(Cabana_ENABLE_HDF5) if(NOT Cabana_ENABLE_MPI) From 7697a17d8dbfbbc9126b2f0e0a318c6613fb5b51 Mon Sep 17 00:00:00 2001 From: Sam Reeve <6740307+streeve@users.noreply.github.com> Date: Tue, 8 Oct 2024 11:54:38 -0400 Subject: [PATCH 5/5] Add CMake feature info for examples/tests --- CMakeLists.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f99dd0641..c79cb5931 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,7 +83,7 @@ set_package_properties(MPI PROPERTIES TYPE RECOMMENDED PURPOSE "Used for distrib # find ArborX Cabana_add_dependency( PACKAGE ArborX ) -set_package_properties(ArborX PROPERTIES TYPE OPTIONAL PURPOSE "Used in neighbor search") +set_package_properties(ArborX PROPERTIES TYPE OPTIONAL PURPOSE "Used for neighbor search") # find ALL Cabana_add_dependency( PACKAGE ALL ) @@ -218,6 +218,7 @@ MESSAGE(STATUS "Cabana Revision = '${Cabana_GIT_COMMIT_HASH}'") #------------------------------------------------------------------------------# # enable unit tests option(Cabana_ENABLE_TESTING "Build tests" OFF) +add_feature_info(Tests Cabana_ENABLE_TESTING "Build unit tests (requires GTest)") if(Cabana_ENABLE_TESTING) find_package(GTest 1.10 REQUIRED) # Workaround for FindGTest module in CMake older than 3.20 @@ -246,7 +247,7 @@ endif() add_subdirectory(core) option(Cabana_ENABLE_GRID "Build grid and particle-grid capabilities" ${Cabana_ENABLE_MPI}) -add_feature_info(Cabana_ENABLE_GRID Cabana_ENABLE_GRID "Build grid and particle-grid capabilities (needs MPI)") +add_feature_info(Grid Cabana_ENABLE_GRID "Build grid and particle-grid capabilities (needs MPI)") if(Cabana_ENABLE_GRID) if(MPI_FOUND) add_subdirectory(grid) @@ -255,13 +256,15 @@ if(Cabana_ENABLE_GRID) endif() endif() -option(Cabana_ENABLE_EXAMPLES "Build examples" OFF) +option(Cabana_ENABLE_EXAMPLES "Build tutorial examples" OFF) +add_feature_info(Examples Cabana_ENABLE_EXAMPLES "Build tutorial examples") if(Cabana_ENABLE_EXAMPLES) add_subdirectory(example) endif() # enable performance tests option(Cabana_ENABLE_PERFORMANCE_TESTING "Build Performance Tests" OFF) +add_feature_info(PerformanceTests Cabana_ENABLE_PERFORMANCE_TESTING "Build performance benchmarks and tests") if(Cabana_ENABLE_PERFORMANCE_TESTING) add_subdirectory(benchmark) endif()