Loading .gitlab-ci.yml +10 −9 Original line number Diff line number Diff line Loading @@ -22,14 +22,14 @@ variables: GIT_SUBMODULE_STRATEGY: recursive # base image image: gekkofs/core:0.8.0 image: gekkofs/core:0.9.0 ################################################################################ ## Validating ################################################################################ check format: stage: lint image: gekkofs/linter:0.8.0 image: gekkofs/linter:0.9.0 needs: [] script: - ${SCRIPTS_DIR}/check_format.sh Loading @@ -43,7 +43,7 @@ check format: ################################################################################ gkfs: stage: build image: gekkofs/deps:0.8.0 image: gekkofs/deps:0.9.0 interruptible: true needs: [] script: Loading @@ -56,6 +56,7 @@ gkfs: -DGKFS_BUILD_TESTS:BOOL=ON -DGKFS_INSTALL_TESTS:BOOL=ON -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DGKFS_USE_GUIDED_DISTRIBUTION:BOOL=ON ${CI_PROJECT_DIR} - make -j$(nproc) install # reduce artifacts size Loading @@ -68,7 +69,7 @@ gkfs: gkfwd: stage: build image: gekkofs/deps:0.8.0 image: gekkofs/deps:0.9.0 interruptible: true needs: [] script: Loading Loading @@ -101,7 +102,7 @@ gkfwd: ## == tests for scripts ==================== scripts: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 needs: [] parallel: matrix: Loading @@ -119,7 +120,7 @@ scripts: ## == integration tests for gkfs =========== gkfs:integration: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 interruptible: true needs: ['gkfs'] parallel: Loading Loading @@ -164,7 +165,7 @@ gkfs:integration: ## == integration tests for gkfwd ========== gkfwd:integration: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 interruptible: true needs: ['gkfwd'] parallel: Loading Loading @@ -209,7 +210,7 @@ gkfwd:integration: ## == unit tests for gkfs ================== gkfs:unit: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 needs: ['gkfs'] script: ## run actual tests Loading Loading @@ -237,7 +238,7 @@ gkfs:unit: ################################################################################ coverage: stage: report image: gekkofs/coverage:0.8.0 image: gekkofs/coverage:0.9.0 needs: [ 'gkfs:integration', 'gkfwd:integration', 'gkfs:unit' ] script: - cd ${BUILD_PATH} Loading .gitmodules +3 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,6 @@ [submodule "tests/scripts/helpers/bats-file"] path = tests/scripts/helpers/bats-file url = https://github.com/bats-core/bats-file.git [submodule "external/spdlog"] path = external/spdlog url = https://github.com/gabime/spdlog CMake/gkfs-utils.cmake 0 → 100644 +148 −0 Original line number Diff line number Diff line ################################################################################ # Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain # # Copyright 2015-2021, 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 # ################################################################################ include(CMakeParseArguments) #[=======================================================================[.rst: get_cmake_variables(OUTPUT_VARIABLE [ REGEX <regular_expression> [EXCLUDE] ]) Initialize ``OUTPUT_VARIABLE`` to a list of all currently defined CMake variables. The function accepts a ``<regular_expression>`` to allow filtering the results. Furthermore, if the ``EXCLUDE`` flag is used, the function will return all variables NOT MATCHING the provided ``<regular_expression>``. #]=======================================================================] function(get_cmake_variables OUTPUT_VARIABLE) set(OPTIONS EXCLUDE) set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in get_cmake_variables(): " "this often indicates typos!\n" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() get_cmake_property(_var_names VARIABLES) if(NOT ARGS_REGEX) set(${OUTPUT_VARIABLE} ${_var_names} PARENT_SCOPE ) return() endif() if(ARGS_EXCLUDE) set(_mode EXCLUDE) else() set(_mode INCLUDE) endif() list(FILTER _var_names ${_mode} REGEX ${ARGS_REGEX}) set(${OUTPUT_VARIABLE} ${_var_names} PARENT_SCOPE ) endfunction() #[=======================================================================[.rst: dump_cmake_variables([ REGEX <regular_expression> [EXCLUDE] ]) Print all currently defined CMake variables. The function accepts a ``<regular_expression>`` to allow filtering the results. Furthermore, if the ``EXCLUDE`` flag is used, the function will print all variables NOT MATCHING the provided ``<regular_expression>``. #]=======================================================================] function(dump_cmake_variables) set(OPTIONS EXCLUDE) set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in dump_cmake_variables(): " "this often indicates typos!" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() if(ARGS_EXCLUDE AND NOT ARGS_REGEX) message(ERROR "EXCLUDE option doesn't make sense without REGEX.") endif() get_cmake_variables(_var_names REGEX ${ARGS_REGEX} ${ARGS_EXCLUDE}) foreach(_var ${_var_names}) message(STATUS "${_var}=${${_var}}") endforeach() endfunction() #[=======================================================================[.rst: mark_variables_as_advanced(REGEX <regular_expression>) Mark all CMake variables matching ``regular_expression`` as advanced. #]=======================================================================] function(mark_variables_as_advanced) set(OPTIONS) # no options for now set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in mark_variables_as_advanced(): " "this often indicates typos!\n" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() get_cmake_property(_var_names VARIABLES) list(FILTER _var_names INCLUDE REGEX ${ARGS_REGEX}) foreach(_var ${_var_names}) mark_as_advanced(${_var}) endforeach() endfunction() CMakeLists.txt +25 −22 Original line number Diff line number Diff line Loading @@ -65,6 +65,11 @@ set(CMAKE_C_FLAGS_MEMCHECK "${WARNINGS_FLAGS} -g -O0 -fsanitize=address -fno-omi set(CMAKE_C_FLAGS_MAINTAINER "${WARNINGS_FLAGS} -g -O0 -pg -no-pie") mark_as_advanced(CMAKE_CXX_FLAGS_MAINTAINER) # CMake and general includes include(CheckCXXSourceCompiles) include(CMakeDependentOption) include(GNUInstallDirs) # Project version set(GIT_VERSION_FOUND FALSE) if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) Loading Loading @@ -116,10 +121,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 0) # Rocksdb dependencies find_package(LZ4 REQUIRED) find_package(ZLIB REQUIRED) find_package(BZip2 REQUIRED) find_package(Snappy REQUIRED) find_package(ZStd REQUIRED) find_package(JeMalloc) # required if rocksdb has been build with jemalloc find_package(RocksDB REQUIRED) # margo dependencies Loading @@ -127,8 +128,6 @@ find_package(Mercury REQUIRED) find_package(Abt REQUIRED) find_package(Margo REQUIRED) find_package(Syscall_intercept REQUIRED) find_package(Threads REQUIRED) # some compilers need extra flags for std::filesystem, such as -lstdc++fs, this Loading @@ -138,6 +137,9 @@ find_package(Filesystem REQUIRED) find_package(Date REQUIRED) # Import some convenience functions include(gkfs-utils) option(CREATE_CHECK_PARENTS "Check parent directory existance before creating child node" ON) message(STATUS "[gekkofs] Create checks parents: ${CREATE_CHECK_PARENTS}") Loading Loading @@ -181,9 +183,11 @@ mark_as_advanced(CLIENT_LOG_MESSAGE_SIZE) option(GKFS_USE_GUIDED_DISTRIBUTION "Use guided data distributor " OFF) message(STATUS "[gekkofs] Guided data distributor: ${GKFS_USE_GUIDED_DISTRIBUTION}") if(GKFS_USE_GUIDED_DISTRIBUTION) set(GKFS_USE_GUIDED_DISTRIBUTION_PATH "/tmp/guided.txt" CACHE STRING "File Path for guided distributor") set_property(CACHE GKFS_USE_GUIDED_DISTRIBUTION_PATH PROPERTY STRINGS) message(STATUS "[gekkofs] Guided data distributor input file path: ${GKFS_USE_GUIDED_DISTRIBUTION_PATH}") endif() configure_file(include/common/cmake_configure.hpp.in include/common/cmake_configure.hpp) Loading @@ -193,10 +197,6 @@ target_link_libraries(RocksDB INTERFACE ${ROCKSDB_LIBRARIES} # rocksdb libs ${Snappy_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${ZStd_LIBRARIES} ${LZ4_LIBRARIES} ) Loading @@ -212,12 +212,6 @@ set_target_properties(RocksDB INTERFACE_INCLUDE_DIRECTORIES ${ROCKSDB_INCLUDE_DIRS} ) add_library(spdlog INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(spdlog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) add_library(CLI11 INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(CLI11 Loading Loading @@ -246,8 +240,6 @@ include_directories( ${CMAKE_BINARY_DIR}/include ) include(GNUInstallDirs) # Common components add_subdirectory(src/common) # Daemon Loading @@ -255,9 +247,13 @@ add_subdirectory(src/daemon) # Client library add_subdirectory(src/client) ### Mark any CMake variables imported from {fmt} and spdlog as advanced, so ### that they don't appear in cmake-gui or ccmake. Similarly for FETCHCONTENT ### variables. mark_variables_as_advanced(REGEX "^(FETCHCONTENT|fmt|FMT|spdlog|SPDLOG)_.*$") option(GKFS_BUILD_TESTS "Build GekkoFS self tests" OFF) include(CMakeDependentOption) cmake_dependent_option(GKFS_INSTALL_TESTS "Install GekkoFS self tests" OFF "GKFS_BUILD_TESTS" OFF) if (GKFS_BUILD_TESTS) Loading Loading @@ -289,6 +285,13 @@ if (GKFS_BUILD_TESTS) set(GKFS_TESTS_FORWARDING "OFF" CACHE STRING "Enable I/O forwarding tests (default: OFF)") endif () message(STATUS "[gekkofs] Forwarding tests: ${GKFS_TESTS_FORWARDING}") message(STATUS "[gekkofs] Check for guided distributor tests...") if (GKFS_USE_GUIDED_DISTRIBUTION) set(GKFS_TESTS_GUIDED_DISTRIBUTION "ON" CACHE STRING "Enable guided distributor tests (default: OFF)") else() set(GKFS_TESTS_GUIDED_DISTRIBUTION "OFF" CACHE STRING "Enable guided distributor tests (default: OFF)") endif() message(STATUS "[gekkofs] Guided distributor tests: ${GKFS_TESTS_GUIDED_DISTRIBUTION}") add_subdirectory(tests) add_subdirectory(examples/gfind) Loading README.md +114 −181 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
.gitlab-ci.yml +10 −9 Original line number Diff line number Diff line Loading @@ -22,14 +22,14 @@ variables: GIT_SUBMODULE_STRATEGY: recursive # base image image: gekkofs/core:0.8.0 image: gekkofs/core:0.9.0 ################################################################################ ## Validating ################################################################################ check format: stage: lint image: gekkofs/linter:0.8.0 image: gekkofs/linter:0.9.0 needs: [] script: - ${SCRIPTS_DIR}/check_format.sh Loading @@ -43,7 +43,7 @@ check format: ################################################################################ gkfs: stage: build image: gekkofs/deps:0.8.0 image: gekkofs/deps:0.9.0 interruptible: true needs: [] script: Loading @@ -56,6 +56,7 @@ gkfs: -DGKFS_BUILD_TESTS:BOOL=ON -DGKFS_INSTALL_TESTS:BOOL=ON -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} -DGKFS_USE_GUIDED_DISTRIBUTION:BOOL=ON ${CI_PROJECT_DIR} - make -j$(nproc) install # reduce artifacts size Loading @@ -68,7 +69,7 @@ gkfs: gkfwd: stage: build image: gekkofs/deps:0.8.0 image: gekkofs/deps:0.9.0 interruptible: true needs: [] script: Loading Loading @@ -101,7 +102,7 @@ gkfwd: ## == tests for scripts ==================== scripts: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 needs: [] parallel: matrix: Loading @@ -119,7 +120,7 @@ scripts: ## == integration tests for gkfs =========== gkfs:integration: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 interruptible: true needs: ['gkfs'] parallel: Loading Loading @@ -164,7 +165,7 @@ gkfs:integration: ## == integration tests for gkfwd ========== gkfwd:integration: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 interruptible: true needs: ['gkfwd'] parallel: Loading Loading @@ -209,7 +210,7 @@ gkfwd:integration: ## == unit tests for gkfs ================== gkfs:unit: stage: test image: gekkofs/testing:0.8.0 image: gekkofs/testing:0.9.0 needs: ['gkfs'] script: ## run actual tests Loading Loading @@ -237,7 +238,7 @@ gkfs:unit: ################################################################################ coverage: stage: report image: gekkofs/coverage:0.8.0 image: gekkofs/coverage:0.9.0 needs: [ 'gkfs:integration', 'gkfwd:integration', 'gkfs:unit' ] script: - cd ${BUILD_PATH} Loading
.gitmodules +3 −0 Original line number Diff line number Diff line Loading @@ -16,3 +16,6 @@ [submodule "tests/scripts/helpers/bats-file"] path = tests/scripts/helpers/bats-file url = https://github.com/bats-core/bats-file.git [submodule "external/spdlog"] path = external/spdlog url = https://github.com/gabime/spdlog
CMake/gkfs-utils.cmake 0 → 100644 +148 −0 Original line number Diff line number Diff line ################################################################################ # Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain # # Copyright 2015-2021, 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 # ################################################################################ include(CMakeParseArguments) #[=======================================================================[.rst: get_cmake_variables(OUTPUT_VARIABLE [ REGEX <regular_expression> [EXCLUDE] ]) Initialize ``OUTPUT_VARIABLE`` to a list of all currently defined CMake variables. The function accepts a ``<regular_expression>`` to allow filtering the results. Furthermore, if the ``EXCLUDE`` flag is used, the function will return all variables NOT MATCHING the provided ``<regular_expression>``. #]=======================================================================] function(get_cmake_variables OUTPUT_VARIABLE) set(OPTIONS EXCLUDE) set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in get_cmake_variables(): " "this often indicates typos!\n" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() get_cmake_property(_var_names VARIABLES) if(NOT ARGS_REGEX) set(${OUTPUT_VARIABLE} ${_var_names} PARENT_SCOPE ) return() endif() if(ARGS_EXCLUDE) set(_mode EXCLUDE) else() set(_mode INCLUDE) endif() list(FILTER _var_names ${_mode} REGEX ${ARGS_REGEX}) set(${OUTPUT_VARIABLE} ${_var_names} PARENT_SCOPE ) endfunction() #[=======================================================================[.rst: dump_cmake_variables([ REGEX <regular_expression> [EXCLUDE] ]) Print all currently defined CMake variables. The function accepts a ``<regular_expression>`` to allow filtering the results. Furthermore, if the ``EXCLUDE`` flag is used, the function will print all variables NOT MATCHING the provided ``<regular_expression>``. #]=======================================================================] function(dump_cmake_variables) set(OPTIONS EXCLUDE) set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in dump_cmake_variables(): " "this often indicates typos!" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() if(ARGS_EXCLUDE AND NOT ARGS_REGEX) message(ERROR "EXCLUDE option doesn't make sense without REGEX.") endif() get_cmake_variables(_var_names REGEX ${ARGS_REGEX} ${ARGS_EXCLUDE}) foreach(_var ${_var_names}) message(STATUS "${_var}=${${_var}}") endforeach() endfunction() #[=======================================================================[.rst: mark_variables_as_advanced(REGEX <regular_expression>) Mark all CMake variables matching ``regular_expression`` as advanced. #]=======================================================================] function(mark_variables_as_advanced) set(OPTIONS) # no options for now set(SINGLE_VALUE REGEX) set(MULTI_VALUE) # no multiple value args for now cmake_parse_arguments( ARGS "${OPTIONS}" "${SINGLE_VALUE}" "${MULTI_VALUE}" ${ARGN} ) if(ARGS_UNPARSED_ARGUMENTS) message(WARNING "Unparsed arguments in mark_variables_as_advanced(): " "this often indicates typos!\n" "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}" ) endif() get_cmake_property(_var_names VARIABLES) list(FILTER _var_names INCLUDE REGEX ${ARGS_REGEX}) foreach(_var ${_var_names}) mark_as_advanced(${_var}) endforeach() endfunction()
CMakeLists.txt +25 −22 Original line number Diff line number Diff line Loading @@ -65,6 +65,11 @@ set(CMAKE_C_FLAGS_MEMCHECK "${WARNINGS_FLAGS} -g -O0 -fsanitize=address -fno-omi set(CMAKE_C_FLAGS_MAINTAINER "${WARNINGS_FLAGS} -g -O0 -pg -no-pie") mark_as_advanced(CMAKE_CXX_FLAGS_MAINTAINER) # CMake and general includes include(CheckCXXSourceCompiles) include(CMakeDependentOption) include(GNUInstallDirs) # Project version set(GIT_VERSION_FOUND FALSE) if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git) Loading Loading @@ -116,10 +121,6 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS 0) # Rocksdb dependencies find_package(LZ4 REQUIRED) find_package(ZLIB REQUIRED) find_package(BZip2 REQUIRED) find_package(Snappy REQUIRED) find_package(ZStd REQUIRED) find_package(JeMalloc) # required if rocksdb has been build with jemalloc find_package(RocksDB REQUIRED) # margo dependencies Loading @@ -127,8 +128,6 @@ find_package(Mercury REQUIRED) find_package(Abt REQUIRED) find_package(Margo REQUIRED) find_package(Syscall_intercept REQUIRED) find_package(Threads REQUIRED) # some compilers need extra flags for std::filesystem, such as -lstdc++fs, this Loading @@ -138,6 +137,9 @@ find_package(Filesystem REQUIRED) find_package(Date REQUIRED) # Import some convenience functions include(gkfs-utils) option(CREATE_CHECK_PARENTS "Check parent directory existance before creating child node" ON) message(STATUS "[gekkofs] Create checks parents: ${CREATE_CHECK_PARENTS}") Loading Loading @@ -181,9 +183,11 @@ mark_as_advanced(CLIENT_LOG_MESSAGE_SIZE) option(GKFS_USE_GUIDED_DISTRIBUTION "Use guided data distributor " OFF) message(STATUS "[gekkofs] Guided data distributor: ${GKFS_USE_GUIDED_DISTRIBUTION}") if(GKFS_USE_GUIDED_DISTRIBUTION) set(GKFS_USE_GUIDED_DISTRIBUTION_PATH "/tmp/guided.txt" CACHE STRING "File Path for guided distributor") set_property(CACHE GKFS_USE_GUIDED_DISTRIBUTION_PATH PROPERTY STRINGS) message(STATUS "[gekkofs] Guided data distributor input file path: ${GKFS_USE_GUIDED_DISTRIBUTION_PATH}") endif() configure_file(include/common/cmake_configure.hpp.in include/common/cmake_configure.hpp) Loading @@ -193,10 +197,6 @@ target_link_libraries(RocksDB INTERFACE ${ROCKSDB_LIBRARIES} # rocksdb libs ${Snappy_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${ZStd_LIBRARIES} ${LZ4_LIBRARIES} ) Loading @@ -212,12 +212,6 @@ set_target_properties(RocksDB INTERFACE_INCLUDE_DIRECTORIES ${ROCKSDB_INCLUDE_DIRS} ) add_library(spdlog INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(spdlog PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/external" ) add_library(CLI11 INTERFACE) # we cannot use target_include_directories with CMake < 3.11 set_target_properties(CLI11 Loading Loading @@ -246,8 +240,6 @@ include_directories( ${CMAKE_BINARY_DIR}/include ) include(GNUInstallDirs) # Common components add_subdirectory(src/common) # Daemon Loading @@ -255,9 +247,13 @@ add_subdirectory(src/daemon) # Client library add_subdirectory(src/client) ### Mark any CMake variables imported from {fmt} and spdlog as advanced, so ### that they don't appear in cmake-gui or ccmake. Similarly for FETCHCONTENT ### variables. mark_variables_as_advanced(REGEX "^(FETCHCONTENT|fmt|FMT|spdlog|SPDLOG)_.*$") option(GKFS_BUILD_TESTS "Build GekkoFS self tests" OFF) include(CMakeDependentOption) cmake_dependent_option(GKFS_INSTALL_TESTS "Install GekkoFS self tests" OFF "GKFS_BUILD_TESTS" OFF) if (GKFS_BUILD_TESTS) Loading Loading @@ -289,6 +285,13 @@ if (GKFS_BUILD_TESTS) set(GKFS_TESTS_FORWARDING "OFF" CACHE STRING "Enable I/O forwarding tests (default: OFF)") endif () message(STATUS "[gekkofs] Forwarding tests: ${GKFS_TESTS_FORWARDING}") message(STATUS "[gekkofs] Check for guided distributor tests...") if (GKFS_USE_GUIDED_DISTRIBUTION) set(GKFS_TESTS_GUIDED_DISTRIBUTION "ON" CACHE STRING "Enable guided distributor tests (default: OFF)") else() set(GKFS_TESTS_GUIDED_DISTRIBUTION "OFF" CACHE STRING "Enable guided distributor tests (default: OFF)") endif() message(STATUS "[gekkofs] Guided distributor tests: ${GKFS_TESTS_GUIDED_DISTRIBUTION}") add_subdirectory(tests) add_subdirectory(examples/gfind) Loading