diff --git a/Applications/ApplicationsLib/CMakeLists.txt b/Applications/ApplicationsLib/CMakeLists.txt index efef4eb9b177c737b44b50d709b5740c3a4e2935..8ba2d863897854de0f68fe85313814a91fcdc697 100644 --- a/Applications/ApplicationsLib/CMakeLists.txt +++ b/Applications/ApplicationsLib/CMakeLists.txt @@ -16,16 +16,14 @@ target_link_libraries( ProcessLib spdlog::spdlog $<$<BOOL:${OGS_USE_PYTHON}>:pybind11::pybind11> + $<$<BOOL:${OGS_USE_PETSC}>:petsc> ) if(OGS_USE_LIS) target_include_directories(ApplicationsLib PUBLIC ${LIS_INCLUDE_DIR}) endif() -target_compile_definitions( - ApplicationsLib PUBLIC $<$<BOOL:${USE_LIS}>:USE_LIS> - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> -) +target_compile_definitions(ApplicationsLib PUBLIC $<$<BOOL:${USE_LIS}>:USE_LIS>) # Set cpp definitions if the cmake option is enabled for the given process. foreach(process ${_processes_list}) diff --git a/Applications/CLI/CMakeLists.txt b/Applications/CLI/CMakeLists.txt index cfd5b09be80480d394bc2f9c2ead789cfa9cebcb..0bbbf41a4ed883532193bc6c7312a1d8ce0b362d 100644 --- a/Applications/CLI/CMakeLists.txt +++ b/Applications/CLI/CMakeLists.txt @@ -61,13 +61,11 @@ target_link_libraries( $<$<TARGET_EXISTS:ogs_embedded_python>:ogs_embedded_python> $<$<TARGET_EXISTS:MPI::MPI_CXX>:MPI::MPI_CXX> $<$<TARGET_EXISTS:InSituLib>:InSituLib> + $<$<TARGET_EXISTS:petsc>:petsc> tclap ) -target_compile_definitions( - ogs PRIVATE $<$<BOOL:${USE_INSITU}>:USE_INSITU> - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> -) +target_compile_definitions(ogs PRIVATE $<$<BOOL:${USE_INSITU}>:USE_INSITU>) # ---- Tests ---- add_test(NAME ogs_no_args COMMAND ogs) diff --git a/BaseLib/CMakeLists.txt b/BaseLib/CMakeLists.txt index 77d904ff5ebc578db6db12a629734959e947622b..be3eab56e93221baca3c909dcb9bffbe3896a08d 100644 --- a/BaseLib/CMakeLists.txt +++ b/BaseLib/CMakeLists.txt @@ -16,10 +16,10 @@ target_link_libraries( $<$<BOOL:${MSVC}>:WinMM> # needed for timeGetTime $<$<BOOL:${OGS_BUILD_GUI}>:Qt5::Xml> $<$<BOOL:${OGS_BUILD_GUI}>:Qt5::XmlPatterns> + $<$<BOOL:${OGS_USE_PETSC}>:petsc> PRIVATE xmlpatch ) target_compile_definitions( BaseLib PUBLIC $<$<BOOL:${OGS_FATAL_ABORT}>:OGS_FATAL_ABORT> - PRIVATE $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> ) diff --git a/MathLib/CMakeLists.txt b/MathLib/CMakeLists.txt index 224123d70f32811a0168f4b1d12c10e262a64b72..4f52278230d7a474e5289e4a2f5b3185c955375f 100644 --- a/MathLib/CMakeLists.txt +++ b/MathLib/CMakeLists.txt @@ -22,10 +22,6 @@ endif() # Create the library ogs_add_library(MathLib ${SOURCES}) -target_include_directories( - MathLib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} - $<$<BOOL:${OGS_USE_PETSC}>:${PETSC_INCLUDE_DIRS}> -) set_target_properties(MathLib PROPERTIES LINKER_LANGUAGE CXX) @@ -36,13 +32,11 @@ target_link_libraries( $<$<TARGET_EXISTS:LAPACK::LAPACK>:LAPACK::LAPACK> $<$<BOOL:${OGS_USE_LIS}>:${LIS_LIBRARIES}> $<$<BOOL:${OGS_USE_CVODE}>:CVODE::CVODE> + $<$<BOOL:${OGS_USE_PETSC}>:petsc> Eigen3::Eigen PRIVATE spdlog::spdlog ) -if(OGS_USE_PETSC) - target_link_libraries(MathLib PUBLIC ${PETSC_LIBRARIES}) -endif() if(OGS_USE_LIS) target_include_directories(MathLib PUBLIC ${LIS_INCLUDE_DIR}) endif() @@ -55,7 +49,6 @@ target_compile_definitions( MathLib PUBLIC $<$<BOOL:${USE_LIS}>:USE_LIS> - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> $<$<BOOL:${OGS_USE_CVODE}>:CVODE_FOUND> $<$<BOOL:${EIGEN_NO_DEBUG}>:EIGEN_NO_DEBUG> $<$<BOOL:${EIGEN_DONT_VECTORIZE}>:EIGEN_DONT_VECTORIZE> diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt index 04c4e50e1c3a7f63e816364e43b90c86daae4591..e88a2e9cfc44fc4b8f7e98d008207cb342bcb5a5 100644 --- a/MeshLib/CMakeLists.txt +++ b/MeshLib/CMakeLists.txt @@ -41,6 +41,7 @@ target_link_libraries( ${VTK_LIBRARIES} $<$<TARGET_EXISTS:OgsXdmf>:OgsXdmf> $<$<TARGET_EXISTS:MPI::MPI_CXX>:MPI::MPI_CXX> + $<$<TARGET_EXISTS:petsc>:petsc> PRIVATE spdlog::spdlog ) @@ -49,7 +50,6 @@ target_include_directories(MeshLib PUBLIC ${VTK_INCLUDE_DIRS}) target_compile_definitions( MeshLib PUBLIC - $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> $<$<AND:$<BOOL:$ENV{VTK_USE_64BIT_IDS}>,$<NOT:$<BOOL:VTK_ADDED>>>:VTK_USE_64BIT_IDS> PRIVATE $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF> ) diff --git a/NumLib/CMakeLists.txt b/NumLib/CMakeLists.txt index b846cf5cc004a3b26d3ff1a940df7abd72986fc9..6fd30aa6110a1e49bd2f69a6b7d6f078049d88db 100644 --- a/NumLib/CMakeLists.txt +++ b/NumLib/CMakeLists.txt @@ -15,12 +15,9 @@ append_source_files(SOURCES Extrapolation) # Create the library ogs_add_library(NumLib ${SOURCES}) -if(OGS_USE_PETSC) - target_compile_definitions(NumLib PUBLIC USE_PETSC) -endif() set_target_properties(NumLib PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries( - NumLib PUBLIC BaseLib GeoLib MathLib MeshLib PRIVATE MeshGeoToolsLib - spdlog::spdlog + NumLib PUBLIC BaseLib GeoLib MathLib MeshLib $<$<TARGET_EXISTS:petsc>:petsc> + PRIVATE MeshGeoToolsLib spdlog::spdlog ) diff --git a/ProcessLib/CMakeLists.txt b/ProcessLib/CMakeLists.txt index aec3f549ad967e498caeeb0115e3cef11e39750c..e9d496842f9affba359948c2197ea0c85176721c 100644 --- a/ProcessLib/CMakeLists.txt +++ b/ProcessLib/CMakeLists.txt @@ -33,6 +33,7 @@ target_link_libraries( NumLib $<$<TARGET_EXISTS:ProcessLibBoundaryConditionPython>:ProcessLibBoundaryConditionPython> $<$<TARGET_EXISTS:ProcessLibSourceTermPython>:ProcessLibSourceTermPython> + $<$<TARGET_EXISTS:petsc>:petsc> nlohmann_json PRIVATE ParameterLib GitInfoLib spdlog::spdlog $<$<TARGET_EXISTS:InSituLib>:InSituLib> @@ -40,8 +41,7 @@ target_link_libraries( target_compile_definitions( ProcessLib - PUBLIC $<$<BOOL:${OGS_USE_PETSC}>:USE_PETSC> - $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF> + PUBLIC $<$<BOOL:${OGS_USE_XDMF}>:OGS_USE_XDMF> # Enabled elements OGS_MAX_ELEMENT_DIM=${OGS_MAX_ELEMENT_DIM} OGS_MAX_ELEMENT_ORDER=${OGS_MAX_ELEMENT_ORDER} diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index d9b3e85e6d1501144c14fe3e2ec32dd7a9a5d25f..308443f97056f2cfe7aa5bc791403fd6d5ba445d 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -80,12 +80,9 @@ target_link_libraries( $<$<TARGET_EXISTS:MPI::MPI_CXX>:MPI::MPI_CXX> $<$<TARGET_EXISTS:SwmmInterface>:SwmmInterface> $<$<TARGET_EXISTS:InSituLib>:InSituLib> + $<$<TARGET_EXISTS:petsc>:petsc> ) -if(OGS_USE_PETSC) - target_link_libraries(testrunner PRIVATE ${PETSC_LIBRARIES}) -endif() - if(OGS_BUILD_GUI) target_compile_definitions(testrunner PUBLIC OGS_BUILD_GUI) target_link_libraries( diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake index c9cbd7f54ed3f3af5d2b6fd497da14c471d758f0..faac5224537537f452df9509c46b017b6ea35110 100644 --- a/scripts/cmake/Find.cmake +++ b/scripts/cmake/Find.cmake @@ -133,7 +133,10 @@ if(OGS_USE_PETSC) find_package(PETSc ${ogs.minimum_version.petsc} REQUIRED) - include_directories(SYSTEM ${PETSC_INCLUDES}) + add_library(petsc SHARED IMPORTED) + target_include_directories(petsc INTERFACE ${PETSC_INCLUDES}) + set_target_properties(petsc PROPERTIES IMPORTED_LOCATION ${PETSC_LIBRARIES}) + target_compile_definitions(petsc INTERFACE USE_PETSC) endif() # Check MPI package