From 4cae4e9d18a240e7462a38e09ef65719c342d5c7 Mon Sep 17 00:00:00 2001
From: Stephane Del Pino <stephane.delpino44@gmail.com>
Date: Mon, 7 Apr 2025 00:11:06 +0200
Subject: [PATCH] Fix installation and plugin generation for Almalinux

---
 CMakeLists.txt                                |  4 +++
 tools/plugin-template/CMakeLists.txt-template | 32 +++++++++++--------
 2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3306db95..3159d9471 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,10 @@ cmake_minimum_required (VERSION 3.19)
 # CMake utils
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 
+set(CMAKE_INSTALL_LIBDIR "lib")
+set(CMAKE_INSTALL_INCLUDEDIR "include")
+set(CMAKE_INSTALL_BINDIR "bin")
+
 # Forbids in-source builds
 include(CheckNotInSources)
 
diff --git a/tools/plugin-template/CMakeLists.txt-template b/tools/plugin-template/CMakeLists.txt-template
index 9c6478b07..369887ba7 100644
--- a/tools/plugin-template/CMakeLists.txt-template
+++ b/tools/plugin-template/CMakeLists.txt-template
@@ -23,14 +23,21 @@ find_package(Pugs REQUIRED)
 list(APPEND CMAKE_MODULE_PATH "${PUGS_PREFIX_PATH}/lib/cmake/Kokkos")
 include(KokkosConfig)
 
-set(HDF5_PREFER_PARALLEL TRUE)
-list(APPEND CMAKE_MODULE_PATH "${PUGS_PREFIX_PATH}/lib/cmake/HighFive")
-include(HighFiveConfig)
-
 list(APPEND CMAKE_MODULE_PATH "${PUGS_PREFIX_PATH}/lib/cmake/pugs")
-include(PugsTargets)
 include(PugsCompileFlags)
 
+if (${PUGS_HAS_MPI})
+  set(HDF5_PREFER_PARALLEL TRUE)
+  list(APPEND CMAKE_MODULE_PATH "${PUGS_PREFIX_PATH}/lib/cmake/HighFive")
+
+  include(HighFiveConfig)
+  if (TARGET HighFive)
+    set(HIGHFIVE_TARGET HighFive::HighFive)
+  endif()
+endif()
+
+include(PugsTargets)
+
 #------------------------------------------------------
 
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PUGS_CMAKE_CXX_FLAGS}")
@@ -77,16 +84,11 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
 include_directories(SYSTEM "${PUGS_PREFIX_PATH}/include")
 include_directories(SYSTEM "${PUGS_PREFIX_PATH}/include/kokkos")
 include_directories(SYSTEM "${PUGS_PREFIX_PATH}/include/tao/")
+if (${PUGS_HAS_MPI})
 include_directories(SYSTEM "${MPI_CXX_INCLUDE_DIRS}")
+endif()
 
-get_target_property(_prop Pugs::PugsAlgebra INTERFACE_INCLUDE_DIRECTORIES)
-set(PUGS_INC_DIR "${PUGS_INC_DIR};${_prop}")
-get_target_property(_prop Pugs::PugsUtils INTERFACE_INCLUDE_DIRECTORIES)
-set(PUGS_INC_DIR "${PUGS_INC_DIR};${_prop}")
-get_target_property(_prop Pugs::pugs INTERFACE_INCLUDE_DIRECTORIES)
-set(PUGS_INC_DIR "${PUGS_INC_DIR};${_prop}")
-
-include_directories(SYSTEM ${PUGS_INC_DIR})
+include_directories(SYSTEM "${PUGS_PREFIX_PATH}/include")
 link_directories(${PUGS_PREFIX_PATH}/lib)
 
 #------------------------------------------------------
@@ -143,6 +145,10 @@ add_library(_PLUGIN_NAME_
   # add cpp sources files here
 )
 
+target_link_libraries(_PLUGIN_NAME_
+  ${HIGHFIVE_TARGET}
+)
+
 #------------------------------------------------------
 
 add_subdirectory(tests)
-- 
GitLab