Commit e626ee5b authored by Julius Athenstaedt's avatar Julius Athenstaedt
Browse files

init fuse setup

parent 1167c20e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -248,6 +248,13 @@ gkfs_define_option(
    DEFAULT_VALUE ON
)

# use old resolve function
gkfs_define_option(
    GKFS_BUILD_FUSE
    HELP_TEXT "Build FUSE client"
    DEFAULT_VALUE ON
)

# use old resolve function
gkfs_define_option(
    GKFS_USE_LEGACY_PATH_RESOLVE
+5 −0
Original line number Diff line number Diff line
@@ -216,6 +216,11 @@ find_package(Threads REQUIRED)
# details transparently
find_package(Filesystem REQUIRED)

find_package(PkgConfig REQUIRED)
pkg_check_modules(FUSE3 REQUIRED fuse3)
include_directories(${FUSE3_INCLUDE_DIRS})
link_directories(${FUSE3_LIBRARY_DIRS})
add_definitions(${FUSE3_CFLAGS_OTHER})

# Search for 'source-only' dependencies
###############################################################################
+17 −0
Original line number Diff line number Diff line
#ifndef GKFS_CLIENT_FUSE_CONTEXT_HPP
#define GKFS_CLIENT_FUSE_CONTEXT_HPP

#include <string>
#include <unordered_map>
#include <atomic>
#include <memory>
#include <mutex>
#include <map>
#include <chrono>

extern "C" {
#define FUSE_USE_VERSION 31
#include <fuse3/fuse_lowlevel.h>
}

#endif //GKFS_CLIENT_FUSE_CONTEXT_HPP
+26 −3
Original line number Diff line number Diff line
@@ -108,6 +108,25 @@ target_sources(
)
endif ()

if (GKFS_BUILD_FUSE)
add_executable(fuse_client "")
target_sources(fuse_client
    PUBLIC
    ${CMAKE_CURRENT_LIST_DIR}/fuse/fuse_client.cpp
    PRIVATE
    ${INCLUDE_DIR}/client/fuse/fuse_client.hpp
    )

target_link_libraries(fuse_client
    ${FUSE3_LIBRARIES}
    gkfs_user_lib
    )

target_include_directories(fuse_client
    PRIVATE
    ${FUSE3_INCLUDE_DIRS}
    )
endif()

if (GKFS_BUILD_USER_LIB)
target_compile_definitions(gkfs_user_lib PUBLIC BYPASS_SYSCALL ENABLE_USER)
@@ -217,6 +236,10 @@ install(
)
endif ()

if (GKFS_BUILD_FUSE)
install(TARGETS fuse_client RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif ()

install(
    TARGETS gkfs_common
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+6 −0
Original line number Diff line number Diff line
#include <client/fuse/fuse_client.hpp>

int main(int argc, const char* argv[]) {
    return 0;
}