Commit d5ddfc88 authored by Ramon Nou's avatar Ramon Nou
Browse files

Added Expand and Hercules fs

parent f7621c66
Loading
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -264,7 +264,23 @@ FetchContent_MakeAvailable(expected)
find_package(GekkoFS)
if (GekkoFS_FOUND)
  add_compile_definitions(GEKKOFS_PLUGIN)
  message(STATUS "[${PROJECT_NAME}] Found GekkoFS")
endif()

### Hercules: Optional for hercules
find_package(Hercules)
if (Hercules_FOUND)
  add_compile_definitions(HERCULES_PLUGIN)
  message(STATUS "[${PROJECT_NAME}] Found Hercules")
endif()

### Expand: Optional for expand
find_package(Expand)
if (Expand_FOUND)
  add_compile_definitions(EXPAND_PLUGIN)
  message(STATUS "[${PROJECT_NAME}] Found Expand")
endif()

### Threads: required by ASIO
find_package(Threads REQUIRED)

cmake/FindExpand.cmake

0 → 100644
+65 −0
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2023, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2023, Johannes Gutenberg Universitaet Mainz, Germany          #
#                                                                              #
# This software was partially supported by the                                 #
# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).    #
#                                                                              #
# This software was partially supported by the                                 #
# ADA-FS project under the SPPEXA project funded by the DFG.                   #
#                                                                              #
# This file is part of GekkoFS.                                                #
#                                                                              #
# GekkoFS is free software: you can redistribute it and/or modify              #
# it under the terms of the GNU General Public License as published by         #
# the Free Software Foundation, either version 3 of the License, or            #
# (at your option) any later version.                                          #
#                                                                              #
# GekkoFS is distributed in the hope that it will be useful,                   #
# but WITHOUT ANY WARRANTY; without even the implied warranty of               #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                #
# GNU General Public License for more details.                                 #
#                                                                              #
# You should have received a copy of the GNU General Public License            #
# along with GekkoFS.  If not, see <https://www.gnu.org/licenses/>.            #
#                                                                              #
# SPDX-License-Identifier: GPL-3.0-or-later                                    #
################################################################################


find_path(Expand_INCLUDE_DIR
  NAMES user_functions.hpp
  PREFIX gkfs
)

find_library(Expand_LIBRARY
  NAMES libexpand_user_lib.so
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
	Expand
	DEFAULT_MSG
	Expand_INCLUDE_DIR
	Expand_LIBRARY
)

if(Expand_FOUND)
  set(Expand_LIBRARIES ${Expand_LIBRARY})
  set(Expand_INCLUDE_DIRS ${Expand_INCLUDE_DIR})


  if(NOT TARGET Expand::Expand)
	  add_library(Expand::Expand UNKNOWN IMPORTED)
	  set_target_properties(Expand::Expand PROPERTIES
		IMPORTED_LOCATION "${Expand_LIBRARY}"
		INTERFACE_INCLUDE_DIRECTORIES "${Expand_INCLUDE_DIR}"
	  )
	endif()
endif()


mark_as_advanced(
	Expand_INCLUDE_DIR
	Expand_LIBRARY
)
+2 −2
Original line number Diff line number Diff line
@@ -45,8 +45,8 @@ find_package_handle_standard_args(
)

if(GekkoFS_FOUND)
  set(GekkoFS_LIBRARIES ${GekkoFS__LIBRARY})
  set(GekkoFS_INCLUDE_DIRS ${GekkoFS__INCLUDE_DIR})
  set(GekkoFS_LIBRARIES ${GekkoFS_LIBRARY})
  set(GekkoFS_INCLUDE_DIRS ${GekkoFS_INCLUDE_DIR})


  if(NOT TARGET GekkoFS::GekkoFS)
+65 −0
Original line number Diff line number Diff line
################################################################################
# Copyright 2018-2023, Barcelona Supercomputing Center (BSC), Spain            #
# Copyright 2015-2023, Johannes Gutenberg Universitaet Mainz, Germany          #
#                                                                              #
# This software was partially supported by the                                 #
# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).    #
#                                                                              #
# This software was partially supported by the                                 #
# ADA-FS project under the SPPEXA project funded by the DFG.                   #
#                                                                              #
# This file is part of GekkoFS.                                                #
#                                                                              #
# GekkoFS is free software: you can redistribute it and/or modify              #
# it under the terms of the GNU General Public License as published by         #
# the Free Software Foundation, either version 3 of the License, or            #
# (at your option) any later version.                                          #
#                                                                              #
# GekkoFS is distributed in the hope that it will be useful,                   #
# but WITHOUT ANY WARRANTY; without even the implied warranty of               #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                #
# GNU General Public License for more details.                                 #
#                                                                              #
# You should have received a copy of the GNU General Public License            #
# along with GekkoFS.  If not, see <https://www.gnu.org/licenses/>.            #
#                                                                              #
# SPDX-License-Identifier: GPL-3.0-or-later                                    #
################################################################################


find_path(Hercules_INCLUDE_DIR
  NAMES user_functions.hpp
  PREFIX hercules
)

find_library(Hercules_LIBRARY
  NAMES libhercules_user_lib.so
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
	Hercules
	DEFAULT_MSG
	Hercules_INCLUDE_DIR
	Hercules_LIBRARY
)

if(Hercules_FOUND)
  set(Hercules_LIBRARIES ${Hercules_LIBRARY})
  set(Hercules_INCLUDE_DIRS ${Hercules_INCLUDE_DIR})


  if(NOT TARGET Hercules::Hercules)
	  add_library(Hercules::Hercules UNKNOWN IMPORTED)
	  set_target_properties(Hercules::Hercules PROPERTIES
		IMPORTED_LOCATION "${Hercules_LIBRARY}"
		INTERFACE_INCLUDE_DIRECTORIES "${Hercules_INCLUDE_DIR}"
	  )
	endif()
endif()


mark_as_advanced(
	Hercules_INCLUDE_DIR
	Hercules_LIBRARY
)
+21 −2
Original line number Diff line number Diff line
@@ -26,8 +26,16 @@ add_library(posix_file STATIC)
set(GEKKO_INCLUDES "")

if (GEKKOFS_PLUGIN)
   set(GEKKO_INCLUDES posix_file/fs_plugin/gekko_plugin.cpp posix_file/fs_plugin/gekko_plugin.cpp)           
   set(GEKKO_INCLUDES posix_file/fs_plugin/gekko_plugin.hpp posix_file/fs_plugin/gekko_plugin.cpp)           
endif()
if (EXPAND_plugin)
   set(EXPAND_INCLUDES posix_file/fs_plugin/expand_plugin.hpp posix_file/fs_plugin/expand_plugin.cpp)
endif()
if (HERCULES_plugin)
   set(HERCULES_INCLUDES posix_file/fs_plugin/hercules_plugin.chpp posix_file/fs_plugin/hercules_plugin.cpp)
endif()


target_sources(
  posix_file
  PRIVATE posix_file/types.hpp
@@ -42,6 +50,8 @@ target_sources(
            posix_file/fs_plugin/fs_plugin.cpp
            posix_file/fs_plugin/posix_plugin.cpp
            ${GEKKO_INCLUDES}
            ${HERCULES_INCLUDES}
            ${EXPAND_INCLUDES}
            
)

@@ -52,8 +62,17 @@ set_property(TARGET posix_file PROPERTY POSITION_INDEPENDENT_CODE ON)
set(ADHOC "")

if (GEKKOFS_PLUGIN)
set(ADHOC ${$ADHOC} GekkoFS::GekkoFS)
   set(ADHOC ${ADHOC} GekkoFS::GekkoFS)
endif()

if (EXPAND_PLUGIN)
   set(ADHOC ${ADHOC} Expand::Expand)
endif()

if (HERCULES_PLUGIN)
   set(ADHOC ${ADHOC} Hercules::Hercules)
endif()


target_link_libraries(posix_file INTERFACE fmt::fmt tl::expected PRIVATE ${ADHOC})
Loading