From 1867e083491cca8705203cdf199ce89d037ccfed Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 10:15:56 +0200 Subject: [PATCH 01/27] make NeoN installable --- CMakeLists.txt | 25 +++++++++++++++++++++++++ cmake/NeoN.cmake.in | 11 +++++++++++ include/CMakeLists.txt | 18 +++++++++--------- src/CMakeLists.txt | 8 ++++---- test/CMakeLists.txt | 1 + test/core/CMakeLists.txt | 2 +- test/core/runTimeSelectionFactory.cpp | 2 +- test/linearAlgebra/sparsityPattern.cpp | 1 - 8 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 cmake/NeoN.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cfa1ba168..f6c1843457 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,3 +180,28 @@ if(NeoN_ENABLE_IWYU) endif() include(cmake/banner.cmake) + +install( + TARGETS NeoN NeoN_public_api + EXPORT NeoN + INCLUDES + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +install( + EXPORT NeoN + FILE NeoN.cmake + NAMESPACE NeoN:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/NeoN/NeoN.hpp + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/NeoN) +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/NeoN/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/NeoN) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/NeoN.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/NeoN.cmake" + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) + +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NeoN.cmake" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) diff --git a/cmake/NeoN.cmake.in b/cmake/NeoN.cmake.in new file mode 100644 index 0000000000..e403c4b5ba --- /dev/null +++ b/cmake/NeoN.cmake.in @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: Unlicense +# SPDX-FileCopyrightText: 2025 NeoN authors + +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/NeoN.cmake") + +#check_required_components(NeoN) + +include(CMakeFindDependencyMacro) +#find_dependency(ZLIB REQUIRED) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index d466f21f0b..46739bd7ce 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -3,15 +3,12 @@ add_library(NeoN_public_api INTERFACE) # dummy target -set_property( - TARGET NeoN_public_api - APPEND - PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}") +# set_property( TARGET NeoN_public_api APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES +# "${CMAKE_CURRENT_BINARY_DIR}") -set_property( - TARGET NeoN_public_api - APPEND - PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}") +target_include_directories( + NeoN_public_api INTERFACE $ + $ $) if(NeoN_WITH_GINKGO) target_link_libraries(NeoN_public_api INTERFACE Ginkgo::ginkgo) @@ -55,7 +52,10 @@ if(NeoN_ENABLE_MPI_SUPPORT) endif() # Get list of some *.hpp files in folder include -file(GLOB_RECURSE include_files *.hpp) +file( + GLOB_RECURSE include_files + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/NeoN + *.hpp) # Convert the list of files into #includes foreach(include_file ${include_files}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4441fc3ed2..bf84b539db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,8 +64,10 @@ enable_sanitizers(NeoN NeoN_ENABLE_SANITIZE_ADDRESS NeoN_ENABLE_SANITIZE_LEAK NeoN_ENABLE_SANITIZE_UB NeoN_ENABLE_SANITIZE_THREAD NeoN_ENABLE_SANITIZE_MEMORY) target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options) -target_link_libraries(NeoN PUBLIC NeoN_public_api Kokkos::kokkos sundials_core sundials_arkode - sundials_nvecserial cpptrace::cpptrace) +target_link_libraries(NeoN PUBLIC Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial + cpptrace::cpptrace) + +target_link_libraries(NeoN PUBLIC NeoN_public_api) if(NeoN_ENABLE_MPI_SUPPORT) target_link_libraries(NeoN PUBLIC MPI::MPI_CXX) @@ -77,5 +79,3 @@ if(WIN32) LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/$<0:> ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/$<0:>) endif() - -install(TARGETS NeoN) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2e88aef0d3..27a7d20651 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,6 +27,7 @@ function(NeoN_unit_test TEST) endif() add_executable(${NeoN_COMMAND} "${TEST}.cpp") + install(TARGETS ${NeoN_COMMAND}) if(NeoN_WITH_PETSC) target_link_libraries(${NeoN_COMMAND} PRIVATE ${PETSc_LIBRARIES}) diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index 1799bf7982..6768090706 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -19,7 +19,7 @@ neon_unit_test(segmentedVector) add_executable(runTimeSelectionFactory "runTimeSelectionFactory.cpp") target_link_libraries(runTimeSelectionFactory PRIVATE Catch2::Catch2WithMain cpptrace::cpptrace - NeoN_public_api) + NeoN) if(WIN32) set_target_properties( runTimeSelectionFactory diff --git a/test/core/runTimeSelectionFactory.cpp b/test/core/runTimeSelectionFactory.cpp index 8d23bd5eec..985a5af5a8 100644 --- a/test/core/runTimeSelectionFactory.cpp +++ b/test/core/runTimeSelectionFactory.cpp @@ -9,7 +9,7 @@ #include #include -#include "NeoN/core/runtimeSelectionFactory.hpp" +#include "NeoN/NeoN.hpp" class BaseClass : public NeoN::RuntimeSelectionFactory> { diff --git a/test/linearAlgebra/sparsityPattern.cpp b/test/linearAlgebra/sparsityPattern.cpp index d53f1da134..e7b1339fc5 100644 --- a/test/linearAlgebra/sparsityPattern.cpp +++ b/test/linearAlgebra/sparsityPattern.cpp @@ -35,7 +35,6 @@ TEST_CASE("SparsityPattern") SECTION("has correct diagOffs" + execName) { - auto sp = SparsityPattern {mesh}; auto diagOffs = sp.diagOffset().copyToHost(); auto diagOffsS = diagOffs.view(); From f161dd72c4cb9403dc75a346587c27f6ea5867cb Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 08:36:07 +0000 Subject: [PATCH 02/27] fix NeoN.hpp relative paths --- include/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 46739bd7ce..7c4726c82f 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -54,7 +54,7 @@ endif() # Get list of some *.hpp files in folder include file( GLOB_RECURSE include_files - RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/NeoN + RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/ *.hpp) # Convert the list of files into #includes From ffeb5e9d6842a909f676b2b30bd3772b50ee46f5 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 11:26:42 +0200 Subject: [PATCH 03/27] add find_dependency --- CMakeLists.txt | 6 +++--- cmake/NeoN.cmake.in | 23 ++++++++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f6c1843457..2bd34de448 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -183,13 +183,13 @@ include(cmake/banner.cmake) install( TARGETS NeoN NeoN_public_api - EXPORT NeoN + EXPORT NeoNTargets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install( - EXPORT NeoN - FILE NeoN.cmake + EXPORT NeoNTargets + FILE NeoNTargets.cmake NAMESPACE NeoN:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) diff --git a/cmake/NeoN.cmake.in b/cmake/NeoN.cmake.in index e403c4b5ba..bf20ed1286 100644 --- a/cmake/NeoN.cmake.in +++ b/cmake/NeoN.cmake.in @@ -8,4 +8,25 @@ include("${CMAKE_CURRENT_LIST_DIR}/NeoN.cmake") #check_required_components(NeoN) include(CMakeFindDependencyMacro) -#find_dependency(ZLIB REQUIRED) + +set(NeoN_WITH_ADIOS2 @NeoN_WITH_ADIOS2@) +set(NeoN_WITH_GINKGO @NeoN_WITH_GINKGO@) +set(NeoN_WITH_SUNDIALS @NeoN_WITH_SUNDIALS@) +set(NeoN_WITH_PETSC @NeoN_WITH_PETSC@) + +find_dependency(Kokkos REQUIRED) +find_dependency(cpptrace REQUIRED) +find_dependency(nlohmann_json REQUIRED) +find_dependency(spdlog REQUIRED) + +if(${NeoN_WITH_GINKGO}) +find_dependency(Ginkgo REQUIRED) +endif() + +if(${NeoN_WITH_SUNDIALS}) +find_dependency(sundials REQUIRED) +endif() + +if(${NeoN_WITH_ADIOS2}) +find_dependency(adios2 REQUIRED) +endif() From 965b05855d2f330a71d7a69ece4b509831cda06d Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 13:51:03 +0200 Subject: [PATCH 04/27] add ginkgo export --- CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2bd34de448..f9bc162178 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -205,3 +205,15 @@ configure_package_config_file( install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NeoN.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) + +export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") + +# install internal ginkgo version +if(Ginkgo_POPULATED) + install( + TARGETS ginkgo + EXPORT GinkgoTargets + INCLUDES + DESTINATION include) + install(EXPORT GinkgoTargets NAMESPACE Ginkgo::) +endif() From d7ae64f665f0c13910b31a23198b8894ccedcd8a Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 14:09:44 +0200 Subject: [PATCH 05/27] fix NeoNTargets.cmake --- cmake/NeoN.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/NeoN.cmake.in b/cmake/NeoN.cmake.in index bf20ed1286..a241a333b3 100644 --- a/cmake/NeoN.cmake.in +++ b/cmake/NeoN.cmake.in @@ -3,7 +3,7 @@ @PACKAGE_INIT@ -include("${CMAKE_CURRENT_LIST_DIR}/NeoN.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/NeoNTargets.cmake") #check_required_components(NeoN) From 458feae8ad63df42b4d8b9659af38657cc361804 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Tue, 20 May 2025 16:41:16 +0200 Subject: [PATCH 06/27] rename NeoN.cmake -> NeoNConfig.cmake --- CMakeLists.txt | 5 +++-- cmake/{NeoN.cmake.in => NeoNConfig.cmake.in} | 0 2 files changed, 3 insertions(+), 2 deletions(-) rename cmake/{NeoN.cmake.in => NeoNConfig.cmake.in} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9bc162178..5850502d4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,10 +200,11 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/NeoN/ include(CMakePackageConfigHelpers) configure_package_config_file( - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/NeoN.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/NeoN.cmake" + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/NeoNConfig.cmake.in + "${CMAKE_CURRENT_BINARY_DIR}/NeoNConfig.cmake" INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NeoN.cmake" +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NeoNConfig.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") diff --git a/cmake/NeoN.cmake.in b/cmake/NeoNConfig.cmake.in similarity index 100% rename from cmake/NeoN.cmake.in rename to cmake/NeoNConfig.cmake.in From e40327e6706d3d43f3e7611fc510cf8ce3615365 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Wed, 21 May 2025 09:00:19 +0200 Subject: [PATCH 07/27] wip add external exports --- CMakeLists.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5850502d4c..02b521b9f6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -218,3 +218,12 @@ if(Ginkgo_POPULATED) DESTINATION include) install(EXPORT GinkgoTargets NAMESPACE Ginkgo::) endif() + +if(Kokkos_POPULATED) + install( + TARGETS kokkos + EXPORT KokkosTargets + INCLUDES + DESTINATION include) + install(EXPORT KokkosTargets NAMESPACE Kokkos::) +endif() From 9cb4ed3a52cdabc024d8d156fb8201d9a1d29ae4 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Wed, 21 May 2025 09:21:27 +0200 Subject: [PATCH 08/27] use private linkage for kokkos and others --- src/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bf84b539db..ee55cf30c5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,9 +63,9 @@ include(${CMAKE_SOURCE_DIR}/cmake/Sanitizer.cmake) enable_sanitizers(NeoN NeoN_ENABLE_SANITIZE_ADDRESS NeoN_ENABLE_SANITIZE_LEAK NeoN_ENABLE_SANITIZE_UB NeoN_ENABLE_SANITIZE_THREAD NeoN_ENABLE_SANITIZE_MEMORY) -target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options) -target_link_libraries(NeoN PUBLIC Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial - cpptrace::cpptrace) +target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options Kokkos::kokkos) +target_link_libraries(NeoN PRIVATE Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial + cpptrace::cpptrace) target_link_libraries(NeoN PUBLIC NeoN_public_api) From 85bf9085deeb8c930376cd2b6e5d53219854b77c Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Wed, 21 May 2025 09:43:52 +0200 Subject: [PATCH 09/27] use public linkage again --- src/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ee55cf30c5..48c0893bc6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,8 +64,8 @@ enable_sanitizers(NeoN NeoN_ENABLE_SANITIZE_ADDRESS NeoN_ENABLE_SANITIZE_LEAK NeoN_ENABLE_SANITIZE_UB NeoN_ENABLE_SANITIZE_THREAD NeoN_ENABLE_SANITIZE_MEMORY) target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options Kokkos::kokkos) -target_link_libraries(NeoN PRIVATE Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial - cpptrace::cpptrace) +target_link_libraries(NeoN PUBLIC Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial + cpptrace::cpptrace) target_link_libraries(NeoN PUBLIC NeoN_public_api) From 70c32383dc6365fe38e4142a5ef5f2b3f8a87eb9 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Wed, 21 May 2025 11:23:56 +0200 Subject: [PATCH 10/27] cleanup linkage, only export when kokkos is not bundled --- CMakeLists.txt | 15 +++++---------- cmake/CxxThirdParty.cmake | 2 +- src/CMakeLists.txt | 2 +- test/CMakeLists.txt | 3 +-- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 02b521b9f6..092a1251c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -207,10 +207,8 @@ configure_package_config_file( install(FILES "${CMAKE_CURRENT_BINARY_DIR}/NeoNConfig.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/NeoN) -export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") - # install internal ginkgo version -if(Ginkgo_POPULATED) +if(ginkgo_POPULATED) install( TARGETS ginkgo EXPORT GinkgoTargets @@ -219,11 +217,8 @@ if(Ginkgo_POPULATED) install(EXPORT GinkgoTargets NAMESPACE Ginkgo::) endif() -if(Kokkos_POPULATED) - install( - TARGETS kokkos - EXPORT KokkosTargets - INCLUDES - DESTINATION include) - install(EXPORT KokkosTargets NAMESPACE Kokkos::) +if(NOT kokkos_POPULATED) + export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") +else() + message(WARNING "Unable to create NeoNTargets.cmake with bundled Kokkos") endif() diff --git a/cmake/CxxThirdParty.cmake b/cmake/CxxThirdParty.cmake index c1629e6ffb..4d75beffba 100644 --- a/cmake/CxxThirdParty.cmake +++ b/cmake/CxxThirdParty.cmake @@ -36,7 +36,7 @@ endif() find_package(Kokkos ${NeoN_KOKKOS_CHECKOUT_VERSION} QUIET) -if(NOT ${Kokkos_FOUND}) +if(NOT Kokkos_FOUND) include(FetchContent) include(cmake/AutoEnableDevice.cmake) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 48c0893bc6..bf84b539db 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,7 +63,7 @@ include(${CMAKE_SOURCE_DIR}/cmake/Sanitizer.cmake) enable_sanitizers(NeoN NeoN_ENABLE_SANITIZE_ADDRESS NeoN_ENABLE_SANITIZE_LEAK NeoN_ENABLE_SANITIZE_UB NeoN_ENABLE_SANITIZE_THREAD NeoN_ENABLE_SANITIZE_MEMORY) -target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options Kokkos::kokkos) +target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options) target_link_libraries(NeoN PUBLIC Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial cpptrace::cpptrace) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 27a7d20651..4620bd4766 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -40,8 +40,7 @@ function(NeoN_unit_test TEST) target_include_directories(${NeoN_COMMAND} PRIVATE "${TEST_CATCH2_DIR}") set_target_properties(${NeoN_COMMAND} PROPERTIES OUTPUT_NAME ${TEST}) - target_link_libraries(${NeoN_COMMAND} PRIVATE NeoN_warnings NeoN_options Kokkos::kokkos NeoN - cpptrace::cpptrace) + target_link_libraries(${NeoN_COMMAND} PRIVATE NeoN_warnings NeoN_options NeoN cpptrace::cpptrace) if(NOT NeoN_MPI_SIZE) target_link_libraries(${NeoN_COMMAND} PRIVATE NeoN_catch_main) else() From 11f339ca8c51604452343b9682f9a8e42560a10a Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Wed, 21 May 2025 11:40:27 +0200 Subject: [PATCH 11/27] cleanup currently unused deps --- CMakeLists.txt | 12 +++++++++++- cmake/CxxThirdParty.cmake | 30 ++++++------------------------ cmake/NeoNConfig.cmake.in | 4 ++-- 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 092a1251c6..d89dbe3b04 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,7 +182,7 @@ endif() include(cmake/banner.cmake) install( - TARGETS NeoN NeoN_public_api + TARGETS NeoN NeoN_public_api NeoN_options NeoN_warnings EXPORT NeoNTargets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) @@ -217,6 +217,16 @@ if(ginkgo_POPULATED) install(EXPORT GinkgoTargets NAMESPACE Ginkgo::) endif() +# install internal ginkgo version +if(cpptrace_POPULATED) + install( + TARGETS cpptrace + EXPORT CpptraceTargets + INCLUDES + DESTINATION include) + install(EXPORT CpptraceTargets NAMESPACE cpptrace::) +endif() + if(NOT kokkos_POPULATED) export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") else() diff --git a/cmake/CxxThirdParty.cmake b/cmake/CxxThirdParty.cmake index 4d75beffba..757b988476 100644 --- a/cmake/CxxThirdParty.cmake +++ b/cmake/CxxThirdParty.cmake @@ -63,14 +63,8 @@ cpmaddpackage( 0.7.3 SYSTEM) -cpmaddpackage( - NAME - nlohmann_json - VERSION - 3.11.3 - URL - https://github.com/nlohmann/json/releases/download/v3.11.3/include.zip - SYSTEM) +# currently unused cpmaddpackage( NAME nlohmann_json VERSION 3.11.3 URL +# https://github.com/nlohmann/json/releases/download/v3.11.3/include.zip SYSTEM) if(${NeoN_WITH_ADIOS2}) @@ -153,23 +147,11 @@ if(${NeoN_WITH_SUNDIALS}) ${SUNDIALS_CUDA_OPTIONS}) endif() -cpmaddpackage( - NAME - spdlog - URL - https://github.com/gabime/spdlog/archive/refs/tags/v1.13.0.zip - VERSION - 1.13.0 - SYSTEM) +# currently not used cpmaddpackage( NAME spdlog URL +# https://github.com/gabime/spdlog/archive/refs/tags/v1.13.0.zip VERSION 1.13.0 SYSTEM) -cpmaddpackage( - NAME - cxxopts - URL - https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.2.0.zip - VERSION - 3.2.0 - SYSTEM) +# currently not used cpmaddpackage( NAME cxxopts URL +# https://github.com/jarro2783/cxxopts/archive/refs/tags/v3.2.0.zip VERSION 3.2.0 SYSTEM) if(${NeoN_WITH_GINKGO}) cpmaddpackage( diff --git a/cmake/NeoNConfig.cmake.in b/cmake/NeoNConfig.cmake.in index a241a333b3..811006b939 100644 --- a/cmake/NeoNConfig.cmake.in +++ b/cmake/NeoNConfig.cmake.in @@ -16,8 +16,8 @@ set(NeoN_WITH_PETSC @NeoN_WITH_PETSC@) find_dependency(Kokkos REQUIRED) find_dependency(cpptrace REQUIRED) -find_dependency(nlohmann_json REQUIRED) -find_dependency(spdlog REQUIRED) +#find_dependency(nlohmann_json REQUIRED) +#find_dependency(spdlog REQUIRED) if(${NeoN_WITH_GINKGO}) find_dependency(Ginkgo REQUIRED) From fb5518833d652077deaf54c9047514523561b9d6 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:10:24 +0000 Subject: [PATCH 12/27] update sundials version, change fetch_content path --- CMakeLists.txt | 12 +++++++++++- cmake/CxxThirdParty.cmake | 24 +++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d89dbe3b04..f9909817d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -217,7 +217,7 @@ if(ginkgo_POPULATED) install(EXPORT GinkgoTargets NAMESPACE Ginkgo::) endif() -# install internal ginkgo version +# install internal cpptrace version if(cpptrace_POPULATED) install( TARGETS cpptrace @@ -227,6 +227,16 @@ if(cpptrace_POPULATED) install(EXPORT CpptraceTargets NAMESPACE cpptrace::) endif() +# install internal sundials version +#if(sundials_POPULATED) +# install( +# TARGETS cvode nvec arkode sundials_core_shared +# EXPORT SundialsTargets +# INCLUDES + # DESTINATION include) + # install(EXPORT SundialsTargets NAMESPACE SUNDIALS::) + # endif() + if(NOT kokkos_POPULATED) export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") else() diff --git a/cmake/CxxThirdParty.cmake b/cmake/CxxThirdParty.cmake index 757b988476..7022bfa534 100644 --- a/cmake/CxxThirdParty.cmake +++ b/cmake/CxxThirdParty.cmake @@ -1,6 +1,8 @@ # SPDX-License-Identifier: Unlicense # SPDX-FileCopyrightText: 2023 NeoN authors +set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/cmake_packages) + set(NeoN_KOKKOS_CHECKOUT_VERSION "4.3.00" CACHE STRING "Use specific version of Kokkos") @@ -134,17 +136,17 @@ if(${NeoN_WITH_SUNDIALS}) endif() cpmaddpackage( - NAME - sundials - GITHUB_REPOSITORY - LLNL/sundials - VERSION - 7.1.1 - SYSTEM - YES - OPTIONS - ${SUNDIALS_OPTIONS} - ${SUNDIALS_CUDA_OPTIONS}) + NAME + SUNDIALS + GITHUB_REPOSITORY + LLNL/sundials + VERSION + 7.3.0 + SYSTEM + YES + OPTIONS + ${SUNDIALS_OPTIONS} + ${SUNDIALS_CUDA_OPTIONS}) endif() # currently not used cpmaddpackage( NAME spdlog URL From e3424b9a8e6c53ce4cf20576615d1b74e0c309e7 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:11:39 +0000 Subject: [PATCH 13/27] fix order --- cmake/NeoNConfig.cmake.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/NeoNConfig.cmake.in b/cmake/NeoNConfig.cmake.in index 811006b939..6a13fed4df 100644 --- a/cmake/NeoNConfig.cmake.in +++ b/cmake/NeoNConfig.cmake.in @@ -3,8 +3,6 @@ @PACKAGE_INIT@ -include("${CMAKE_CURRENT_LIST_DIR}/NeoNTargets.cmake") - #check_required_components(NeoN) include(CMakeFindDependencyMacro) @@ -24,9 +22,11 @@ find_dependency(Ginkgo REQUIRED) endif() if(${NeoN_WITH_SUNDIALS}) -find_dependency(sundials REQUIRED) +find_dependency(SUNDIALS REQUIRED) endif() if(${NeoN_WITH_ADIOS2}) find_dependency(adios2 REQUIRED) endif() + +include("${CMAKE_CURRENT_LIST_DIR}/NeoNTargets.cmake") From a805ad2faae9ad0f0aedf454d4d45b4653fa9a8f Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:12:52 +0000 Subject: [PATCH 14/27] move sundials linkage to public api --- include/CMakeLists.txt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 7c4726c82f..0bd9af26d5 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -8,7 +8,9 @@ add_library(NeoN_public_api INTERFACE) # dummy target target_include_directories( NeoN_public_api INTERFACE $ - $ $) + $ + $ + ) if(NeoN_WITH_GINKGO) target_link_libraries(NeoN_public_api INTERFACE Ginkgo::ginkgo) @@ -18,6 +20,12 @@ else() target_compile_definitions(NeoN_public_api INTERFACE NF_WITH_GINKGO=0) endif() +if(NeoN_WITH_SUNDIALS) +target_link_libraries(NeoN_public_api INTERFACE SUNDIALS::arkode SUNDIALS::nvecserial SUNDIALS::core) +endif() + +target_link_libraries(NeoN_public_api INTERFACE Kokkos::kokkos) + if(NeoN_WITH_PETSC) add_definitions(${PETSc_DEFINITIONS}) target_link_libraries(NeoN_public_api INTERFACE ${PETSc_LIBRARIES}) From f278f10334e72eeb71c5571fb8501cbfbcc66f2c Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:13:46 +0000 Subject: [PATCH 15/27] move linkage to public api --- src/CMakeLists.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bf84b539db..eff89ecf5f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -64,9 +64,6 @@ enable_sanitizers(NeoN NeoN_ENABLE_SANITIZE_ADDRESS NeoN_ENABLE_SANITIZE_LEAK NeoN_ENABLE_SANITIZE_UB NeoN_ENABLE_SANITIZE_THREAD NeoN_ENABLE_SANITIZE_MEMORY) target_link_libraries(NeoN PRIVATE NeoN_warnings NeoN_options) -target_link_libraries(NeoN PUBLIC Kokkos::kokkos sundials_core sundials_arkode sundials_nvecserial - cpptrace::cpptrace) - target_link_libraries(NeoN PUBLIC NeoN_public_api) if(NeoN_ENABLE_MPI_SUPPORT) From 9b034846c87a9ff91ba7169aa9510b6ead95ee7e Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:47:59 +0000 Subject: [PATCH 16/27] add cpptrace linkage --- include/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 0bd9af26d5..4ee7f60f04 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -24,7 +24,7 @@ if(NeoN_WITH_SUNDIALS) target_link_libraries(NeoN_public_api INTERFACE SUNDIALS::arkode SUNDIALS::nvecserial SUNDIALS::core) endif() -target_link_libraries(NeoN_public_api INTERFACE Kokkos::kokkos) +target_link_libraries(NeoN_public_api INTERFACE cpptrace::cpptrace Kokkos::kokkos) if(NeoN_WITH_PETSC) add_definitions(${PETSc_DEFINITIONS}) From 03f67504d621b012f3941aefdff997f26d8d0efa Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 11:59:54 +0000 Subject: [PATCH 17/27] add alias --- include/CMakeLists.txt | 1 + src/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 4ee7f60f04..36137af1bc 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -2,6 +2,7 @@ # SPDX-FileCopyrightText: 2023 NeoN authors add_library(NeoN_public_api INTERFACE) # dummy target +add_library(NeoN::NeoN_public_api ALIAS NeoN_public_api) # dummy target # set_property( TARGET NeoN_public_api APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES # "${CMAKE_CURRENT_BINARY_DIR}") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eff89ecf5f..7f7daf8584 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,7 @@ # SPDX-FileCopyrightText: 2023 NeoN authors add_library(NeoN ${NeoN_LIB_TYPE}) +add_library(NeoN::NeoN ALIAS NeoN) # dummy target include(GNUInstallDirs) From 924b0500cc9539204d9226737af146602e228fee Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 12:14:43 +0000 Subject: [PATCH 18/27] use public api in registry test --- test/core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index 6768090706..1799bf7982 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -19,7 +19,7 @@ neon_unit_test(segmentedVector) add_executable(runTimeSelectionFactory "runTimeSelectionFactory.cpp") target_link_libraries(runTimeSelectionFactory PRIVATE Catch2::Catch2WithMain cpptrace::cpptrace - NeoN) + NeoN_public_api) if(WIN32) set_target_properties( runTimeSelectionFactory From d8333a82d83adcb0e5c3e26664f94abdf03820cd Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 12:29:05 +0000 Subject: [PATCH 19/27] fixup --- test/core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index 1799bf7982..2d91135113 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -19,7 +19,7 @@ neon_unit_test(segmentedVector) add_executable(runTimeSelectionFactory "runTimeSelectionFactory.cpp") target_link_libraries(runTimeSelectionFactory PRIVATE Catch2::Catch2WithMain cpptrace::cpptrace - NeoN_public_api) + NeoN::NeoN) if(WIN32) set_target_properties( runTimeSelectionFactory From 22e79b8d55670b1de25cc832554719637a4c83a3 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 13:52:39 +0000 Subject: [PATCH 20/27] fix test by requiring all registered stuff to exist for now --- test/core/runTimeSelectionFactory.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/core/runTimeSelectionFactory.cpp b/test/core/runTimeSelectionFactory.cpp index 985a5af5a8..a9975c1fc3 100644 --- a/test/core/runTimeSelectionFactory.cpp +++ b/test/core/runTimeSelectionFactory.cpp @@ -9,7 +9,8 @@ #include #include -#include "NeoN/NeoN.hpp" +//#include "NeoN/NeoN.hpp" +#include "NeoN/core/runtimeSelectionFactory.hpp" class BaseClass : public NeoN::RuntimeSelectionFactory> { @@ -77,7 +78,7 @@ TEST_CASE("RunTimeSelectionFactory") SECTION("classes are registered") { - CHECK(NeoN::BaseClassDocumentation::docTable().size() == 2); + CHECK(NeoN::BaseClassDocumentation::docTable().size() == 10); for (const auto& it : NeoN::BaseClassDocumentation::docTable()) { std::string baseClassName = it.first; From 133f632722b1e186058e586806a7f5eed4c568e6 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Thu, 22 May 2025 15:02:06 +0000 Subject: [PATCH 21/27] fix test --- test/core/CMakeLists.txt | 2 +- test/core/runTimeSelectionFactory.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index 2d91135113..a2c38d83eb 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -19,7 +19,7 @@ neon_unit_test(segmentedVector) add_executable(runTimeSelectionFactory "runTimeSelectionFactory.cpp") target_link_libraries(runTimeSelectionFactory PRIVATE Catch2::Catch2WithMain cpptrace::cpptrace - NeoN::NeoN) + NeoN::NeoN_public_api) if(WIN32) set_target_properties( runTimeSelectionFactory diff --git a/test/core/runTimeSelectionFactory.cpp b/test/core/runTimeSelectionFactory.cpp index a9975c1fc3..4f52595b80 100644 --- a/test/core/runTimeSelectionFactory.cpp +++ b/test/core/runTimeSelectionFactory.cpp @@ -78,7 +78,7 @@ TEST_CASE("RunTimeSelectionFactory") SECTION("classes are registered") { - CHECK(NeoN::BaseClassDocumentation::docTable().size() == 10); + CHECK(NeoN::BaseClassDocumentation::docTable().size() == 2); for (const auto& it : NeoN::BaseClassDocumentation::docTable()) { std::string baseClassName = it.first; From d94d4af80e4f48cc33b2604eacbcb83c69c1173f Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 11:05:09 +0200 Subject: [PATCH 22/27] format files --- CMakeLists.txt | 12 +++--------- cmake/CxxThirdParty.cmake | 22 +++++++++++----------- include/CMakeLists.txt | 7 +++---- test/core/CMakeLists.txt | 2 +- test/core/runTimeSelectionFactory.cpp | 2 +- 5 files changed, 19 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9909817d7..a28deffaac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -227,15 +227,9 @@ if(cpptrace_POPULATED) install(EXPORT CpptraceTargets NAMESPACE cpptrace::) endif() -# install internal sundials version -#if(sundials_POPULATED) -# install( -# TARGETS cvode nvec arkode sundials_core_shared -# EXPORT SundialsTargets -# INCLUDES - # DESTINATION include) - # install(EXPORT SundialsTargets NAMESPACE SUNDIALS::) - # endif() +# install internal sundials version if(sundials_POPULATED) install( TARGETS cvode nvec arkode +# sundials_core_shared EXPORT SundialsTargets INCLUDES DESTINATION include) install(EXPORT +# SundialsTargets NAMESPACE SUNDIALS::) endif() if(NOT kokkos_POPULATED) export(EXPORT NeoNTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/NeoNTargets.cmake") diff --git a/cmake/CxxThirdParty.cmake b/cmake/CxxThirdParty.cmake index 7022bfa534..5cb67f0e06 100644 --- a/cmake/CxxThirdParty.cmake +++ b/cmake/CxxThirdParty.cmake @@ -136,17 +136,17 @@ if(${NeoN_WITH_SUNDIALS}) endif() cpmaddpackage( - NAME - SUNDIALS - GITHUB_REPOSITORY - LLNL/sundials - VERSION - 7.3.0 - SYSTEM - YES - OPTIONS - ${SUNDIALS_OPTIONS} - ${SUNDIALS_CUDA_OPTIONS}) + NAME + SUNDIALS + GITHUB_REPOSITORY + LLNL/sundials + VERSION + 7.3.0 + SYSTEM + YES + OPTIONS + ${SUNDIALS_OPTIONS} + ${SUNDIALS_CUDA_OPTIONS}) endif() # currently not used cpmaddpackage( NAME spdlog URL diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 36137af1bc..ac83bc9ac5 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -9,9 +9,7 @@ add_library(NeoN::NeoN_public_api ALIAS NeoN_public_api) # dummy target target_include_directories( NeoN_public_api INTERFACE $ - $ - $ - ) + $ $) if(NeoN_WITH_GINKGO) target_link_libraries(NeoN_public_api INTERFACE Ginkgo::ginkgo) @@ -22,7 +20,8 @@ else() endif() if(NeoN_WITH_SUNDIALS) -target_link_libraries(NeoN_public_api INTERFACE SUNDIALS::arkode SUNDIALS::nvecserial SUNDIALS::core) + target_link_libraries(NeoN_public_api INTERFACE SUNDIALS::arkode SUNDIALS::nvecserial + SUNDIALS::core) endif() target_link_libraries(NeoN_public_api INTERFACE cpptrace::cpptrace Kokkos::kokkos) diff --git a/test/core/CMakeLists.txt b/test/core/CMakeLists.txt index a2c38d83eb..9455a46287 100644 --- a/test/core/CMakeLists.txt +++ b/test/core/CMakeLists.txt @@ -19,7 +19,7 @@ neon_unit_test(segmentedVector) add_executable(runTimeSelectionFactory "runTimeSelectionFactory.cpp") target_link_libraries(runTimeSelectionFactory PRIVATE Catch2::Catch2WithMain cpptrace::cpptrace - NeoN::NeoN_public_api) + NeoN::NeoN_public_api) if(WIN32) set_target_properties( runTimeSelectionFactory diff --git a/test/core/runTimeSelectionFactory.cpp b/test/core/runTimeSelectionFactory.cpp index 4f52595b80..077970cbae 100644 --- a/test/core/runTimeSelectionFactory.cpp +++ b/test/core/runTimeSelectionFactory.cpp @@ -9,7 +9,7 @@ #include #include -//#include "NeoN/NeoN.hpp" +// #include "NeoN/NeoN.hpp" #include "NeoN/core/runtimeSelectionFactory.hpp" class BaseClass : public NeoN::RuntimeSelectionFactory> From 12e6bbfe19248c2b4835f264eba04424783b47d5 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 09:23:12 +0000 Subject: [PATCH 23/27] dont build benchmarks as part of integration test --- .github/workflows/build_adapter.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_adapter.yaml b/.github/workflows/build_adapter.yaml index 4303744346..ca9441e157 100644 --- a/.github/workflows/build_adapter.yaml +++ b/.github/workflows/build_adapter.yaml @@ -90,6 +90,7 @@ jobs: cmake --preset develop \ -DNeoN_DEVEL_TOOLS=OFF \ -DNeoN_BUILD_TESTS=OFF \ + -DFOAMADAPTER_BUILD_BENCHMARKS=OFF \ -DNeoN_ENABLE_MPI_WITH_THREAD_SUPPORT=OFF \ -DFOAMADAPTER_NEON_VERSION=${{env.checkout}} cmake --build --preset develop From f654511643d72bbceb8b688feda0fcfd0b244f61 Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 11:09:45 +0200 Subject: [PATCH 24/27] wo sundials for static checks --- .github/workflows/static_checks.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/static_checks.yaml b/.github/workflows/static_checks.yaml index f8f5bf5527..4aef0347cd 100644 --- a/.github/workflows/static_checks.yaml +++ b/.github/workflows/static_checks.yaml @@ -47,6 +47,7 @@ jobs: cmake --preset develop \ -DNeoN_DEVEL_TOOLS=OFF \ -DNeoN_WITH_GINKGO=OFF \ + -DNeoN_WITH_SUNDIALS=OFF \ -DCMAKE_CXX_COMPILER=clang++-18 \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DNeoN_ENABLE_MPI_WITH_THREAD_SUPPORT=OFF \ From 4442db9ba9fb50f623c80df1b75284751ad0a05e Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 12:12:37 +0200 Subject: [PATCH 25/27] make neon compile wo sundials --- include/CMakeLists.txt | 3 +++ include/NeoN/timeIntegration/rungeKutta.hpp | 4 ++++ include/NeoN/timeIntegration/sundials.hpp | 4 ++++ src/timeIntegration/rungeKutta.cpp | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index ac83bc9ac5..89d9a3cd89 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -20,8 +20,11 @@ else() endif() if(NeoN_WITH_SUNDIALS) + target_compile_definitions(NeoN_public_api INTERFACE NN_WITH_SUNDIALS=1) target_link_libraries(NeoN_public_api INTERFACE SUNDIALS::arkode SUNDIALS::nvecserial SUNDIALS::core) +else() + target_compile_definitions(NeoN_public_api INTERFACE NN_WITH_SUNDIALS=0) endif() target_link_libraries(NeoN_public_api INTERFACE cpptrace::cpptrace Kokkos::kokkos) diff --git a/include/NeoN/timeIntegration/rungeKutta.hpp b/include/NeoN/timeIntegration/rungeKutta.hpp index 21e7c5c6f5..1dae2a7afb 100644 --- a/include/NeoN/timeIntegration/rungeKutta.hpp +++ b/include/NeoN/timeIntegration/rungeKutta.hpp @@ -3,6 +3,8 @@ #pragma once +#if NF_WITH_SUNDIALS + #include #include @@ -192,3 +194,5 @@ class RungeKutta : }; } // namespace NeoN + +#endif diff --git a/include/NeoN/timeIntegration/sundials.hpp b/include/NeoN/timeIntegration/sundials.hpp index 7222ec2218..909d255474 100644 --- a/include/NeoN/timeIntegration/sundials.hpp +++ b/include/NeoN/timeIntegration/sundials.hpp @@ -3,6 +3,8 @@ #pragma once +#if NF_WITH_SUNDIALS + #include #include #include @@ -487,3 +489,5 @@ class SKVector SKVectorVariant vector_; /**< Variant storing executor-specific vector implementation */ }; } + +#endif diff --git a/src/timeIntegration/rungeKutta.cpp b/src/timeIntegration/rungeKutta.cpp index 84b7da3d0a..f146082fe4 100644 --- a/src/timeIntegration/rungeKutta.cpp +++ b/src/timeIntegration/rungeKutta.cpp @@ -3,6 +3,8 @@ #include "NeoN/timeIntegration/rungeKutta.hpp" +#if NF_WITH_SUNDIALS + namespace NeoN::timeIntegration { @@ -146,3 +148,5 @@ void RungeKutta::initODEMemory(const scalar t) template class RungeKutta>; } + +#endif From 344b2dc0187609c639152063ad11a4d7487f513d Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 12:24:15 +0200 Subject: [PATCH 26/27] fixup! --- include/NeoN/timeIntegration/rungeKutta.hpp | 2 +- include/NeoN/timeIntegration/sundials.hpp | 2 +- src/timeIntegration/rungeKutta.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/NeoN/timeIntegration/rungeKutta.hpp b/include/NeoN/timeIntegration/rungeKutta.hpp index 1dae2a7afb..f5b9b7e76c 100644 --- a/include/NeoN/timeIntegration/rungeKutta.hpp +++ b/include/NeoN/timeIntegration/rungeKutta.hpp @@ -3,7 +3,7 @@ #pragma once -#if NF_WITH_SUNDIALS +#if NN_WITH_SUNDIALS #include #include diff --git a/include/NeoN/timeIntegration/sundials.hpp b/include/NeoN/timeIntegration/sundials.hpp index 909d255474..2cc2332e5b 100644 --- a/include/NeoN/timeIntegration/sundials.hpp +++ b/include/NeoN/timeIntegration/sundials.hpp @@ -3,7 +3,7 @@ #pragma once -#if NF_WITH_SUNDIALS +#if NN_WITH_SUNDIALS #include #include diff --git a/src/timeIntegration/rungeKutta.cpp b/src/timeIntegration/rungeKutta.cpp index f146082fe4..5240c12779 100644 --- a/src/timeIntegration/rungeKutta.cpp +++ b/src/timeIntegration/rungeKutta.cpp @@ -3,7 +3,7 @@ #include "NeoN/timeIntegration/rungeKutta.hpp" -#if NF_WITH_SUNDIALS +#if NN_WITH_SUNDIALS namespace NeoN::timeIntegration { From 56024c930d1fdd3ccbc3307388df2e85715173cc Mon Sep 17 00:00:00 2001 From: Gregor Olenik Date: Fri, 23 May 2025 14:04:29 +0200 Subject: [PATCH 27/27] dont build RK test if wo sundials, use _deps path again --- cmake/CxxThirdParty.cmake | 2 +- test/timeIntegration/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/CxxThirdParty.cmake b/cmake/CxxThirdParty.cmake index 5cb67f0e06..e52dfb9f34 100644 --- a/cmake/CxxThirdParty.cmake +++ b/cmake/CxxThirdParty.cmake @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Unlicense # SPDX-FileCopyrightText: 2023 NeoN authors -set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/cmake_packages) +# set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/cmake_packages) set(NeoN_KOKKOS_CHECKOUT_VERSION "4.3.00" diff --git a/test/timeIntegration/CMakeLists.txt b/test/timeIntegration/CMakeLists.txt index 25af1925a6..caeac811f3 100644 --- a/test/timeIntegration/CMakeLists.txt +++ b/test/timeIntegration/CMakeLists.txt @@ -3,6 +3,6 @@ neon_unit_test(timeIntegration) neon_unit_test(implicitTimeIntegration) -if(NOT WIN32) +if(NOT WIN32 AND NeoN_WITH_SUNDIALS) neon_unit_test(rungeKutta) endif()