mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 12:28:22 +01:00
113 lines
3.2 KiB
CMake
113 lines
3.2 KiB
CMake
include(FetchContent)
|
|
FetchContent_Declare(
|
|
cli11
|
|
QUIET
|
|
GIT_REPOSITORY https://github.com/CLIUtils/CLI11.git
|
|
GIT_TAG v2.4.2
|
|
)
|
|
|
|
FetchContent_Declare(
|
|
highfive
|
|
QUIET
|
|
GIT_REPOSITORY https://github.com/highfive-devs/highfive.git
|
|
GIT_TAG v3.0.0
|
|
)
|
|
|
|
FetchContent_MakeAvailable(cli11)
|
|
FetchContent_MakeAvailable(highfive)
|
|
|
|
add_library(POETLib
|
|
Init/InitialList.cpp
|
|
Init/GridInit.cpp
|
|
Init/DiffusionInit.cpp
|
|
Init/ChemistryInit.cpp
|
|
IO/checkpoint.cpp
|
|
DataStructures/Field.cpp
|
|
Transport/DiffusionModule.cpp
|
|
Chemistry/ChemistryModule.cpp
|
|
Chemistry/MasterFunctions.cpp
|
|
Chemistry/WorkerFunctions.cpp
|
|
Chemistry/SurrogateModels/DHT_Wrapper.cpp
|
|
Chemistry/SurrogateModels/DHT.c
|
|
Chemistry/SurrogateModels/HashFunctions.cpp
|
|
Chemistry/SurrogateModels/InterpolationModule.cpp
|
|
Chemistry/SurrogateModels/ProximityHashTable.cpp
|
|
)
|
|
|
|
set(POET_TUG_APPROACH "Implicit" CACHE STRING "tug numerical approach to use")
|
|
set_property(CACHE POET_TUG_APPROACH PROPERTY STRINGS "Implicit" "Explicit")
|
|
|
|
if (POET_TUG_APPROACH STREQUAL "Implicit")
|
|
target_compile_definitions(POETLib PRIVATE POET_TUG_BTCS)
|
|
elseif (POET_TUG_APPROACH STREQUAL "Explicit")
|
|
target_compile_definitions(POETLib PRIVATE POET_TUG_FTCS)
|
|
endif()
|
|
|
|
target_include_directories(POETLib PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
|
target_link_libraries(
|
|
POETLib
|
|
PUBLIC RRuntime
|
|
PUBLIC IPhreeqcPOET
|
|
PUBLIC tug
|
|
PUBLIC MPI::MPI_C
|
|
PUBLIC HighFive::HighFive
|
|
)
|
|
|
|
|
|
# add_library(poetlib
|
|
# Base/Grid.cpp
|
|
# Base/SimParams.cpp
|
|
# Chemistry/ChemistryModule.cpp
|
|
# Chemistry/MasterFunctions.cpp
|
|
# Chemistry/WorkerFunctions.cpp
|
|
# Chemistry/SurrogateModels/DHT_Wrapper.cpp
|
|
# Chemistry/SurrogateModels/DHT.c
|
|
# Chemistry/SurrogateModels/HashFunctions.cpp
|
|
# Chemistry/SurrogateModels/InterpolationModule.cpp
|
|
# Chemistry/SurrogateModels/ProximityHashTable.cpp
|
|
# Transport/DiffusionModule.cpp
|
|
# )
|
|
|
|
# target_link_libraries(poetlib PUBLIC
|
|
# DataStructures
|
|
# Init
|
|
# MPI::MPI_C
|
|
# ${MATH_LIBRARY}
|
|
# RRuntime
|
|
# PhreeqcRM
|
|
# tug
|
|
# )
|
|
|
|
target_compile_definitions(POETLib PUBLIC STRICT_R_HEADERS OMPI_SKIP_MPICXX)
|
|
|
|
# mark_as_advanced(PHREEQCRM_BUILD_MPI PHREEQCRM_DISABLE_OPENMP)
|
|
# set(PHREEQCRM_DISABLE_OPENMP ON CACHE BOOL "" FORCE)
|
|
|
|
# option(POET_DHT_DEBUG "Build with DHT debug info" OFF)
|
|
|
|
# if(POET_DHT_DEBUG)
|
|
# target_compile_definitions(poetlib PRIVATE DHT_STATISTICS)
|
|
# endif()
|
|
|
|
# option(POET_PHT_ADDITIONAL_INFO "Enables additional information in the PHT" OFF)
|
|
|
|
# if (POET_PHT_ADDITIONAL_INFO)
|
|
# target_compile_definitions(poetlib PRIVATE POET_PHT_ADD)
|
|
# endif()
|
|
|
|
file(READ "${PROJECT_SOURCE_DIR}/R_lib/kin_r_library.R" R_KIN_LIB )
|
|
file(READ "${PROJECT_SOURCE_DIR}/R_lib/init_r_lib.R" R_INIT_LIB)
|
|
file(READ "${PROJECT_SOURCE_DIR}/R_lib/ai_surrogate_model.R" R_AI_SURROGATE_LIB)
|
|
|
|
configure_file(poet.hpp.in poet.hpp @ONLY)
|
|
|
|
add_executable(poet poet.cpp)
|
|
target_link_libraries(poet PRIVATE POETLib MPI::MPI_C RRuntime CLI11::CLI11)
|
|
target_include_directories(poet PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
|
|
|
add_executable(poet_init initializer.cpp)
|
|
target_link_libraries(poet_init PRIVATE POETLib RRuntime CLI11::CLI11)
|
|
target_include_directories(poet_init PRIVATE "${CMAKE_CURRENT_BINARY_DIR}")
|
|
|
|
install(TARGETS poet poet_init DESTINATION bin)
|