Skip to content

Commit

Permalink
Merge de2c9a4 into 779fad1
Browse files Browse the repository at this point in the history
  • Loading branch information
rbost committed Jun 9, 2021
2 parents 779fad1 + de2c9a4 commit 4f66c77
Show file tree
Hide file tree
Showing 65 changed files with 11,652 additions and 42 deletions.
2 changes: 1 addition & 1 deletion .clang-tidy
@@ -1,5 +1,5 @@
---
Checks: 'clang-diagnostic-*,-clang-diagnostic-#warnings,-clang-diagnostic-#pragma-messages,modernize-*,-modernize-use-auto,-modernize-make-unique,-modernize-raw-string-literal,-modernize-use-trailing-return-type,bugprone-*, readability-*,-readability-avoid-const-params-in-decls,-readability-magic-numbers,-readability-convert-member-functions-to-static,misc-*,-misc-unused-parameters,performance-*,cert-*,-cert-err60-cpp,google-*,-google-runtime-references,llvm-*,-llvm-header-guard'
Checks: 'clang-diagnostic-*,-clang-diagnostic-#warnings,-clang-diagnostic-#pragma-messages,modernize-*,-modernize-use-auto,-modernize-make-unique,-modernize-raw-string-literal,-modernize-use-trailing-return-type,bugprone-*, readability-*,-readability-avoid-const-params-in-decls,-readability-magic-numbers,-readability-convert-member-functions-to-static,misc-*,-misc-unused-parameters,performance-*,cert-*,-cert-err60-cpp,google-*,-google-runtime-references, -google-readability-todo,llvm-*,-llvm-header-guard'
WarningsAsErrors: ''
HeaderFilterRegex: 'sse/(runners|schemes)/.*'
AnalyzeTemporaryDtors: false
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Expand Up @@ -26,6 +26,7 @@ addons:
- autoconf
- libtool
- lcov
- libaio-dev
env:
global:
- ENABLE_COVERAGE=Off
Expand Down
42 changes: 26 additions & 16 deletions CMakeLists.txt
Expand Up @@ -2,13 +2,11 @@ cmake_minimum_required(VERSION 3.5.1)
project(opensse-schemes VERSION 0.3 DESCRIPTION "OpenSSE's Schemes Implementation")



list(
APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/CMake-codecov/cmake"
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/externals/CMake-codecov/cmake"
)
list(
APPEND
CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/externals/sanitizers-cmake/cmake"
list(APPEND CMAKE_MODULE_PATH
"${CMAKE_SOURCE_DIR}/externals/sanitizers-cmake/cmake"
)

# Build in Debug mode by default
Expand All @@ -35,13 +33,13 @@ include(CheckCXXCompilerFlag)
find_package(codecov)
list(
APPEND
LCOV_REMOVE_PATTERNS
'${CMAKE_CURRENT_SOURCE_DIR}/test/*'
'${CMAKE_CURRENT_SOURCE_DIR}/externals/*'
'${CMAKE_CURRENT_SOURCE_DIR}/third_party/*'
'*/deps/*' # For Travis
'*/usr/*' # For Travis
'*.pb.h'
LCOV_REMOVE_PATTERNS
'${CMAKE_CURRENT_SOURCE_DIR}/test/*'
'${CMAKE_CURRENT_SOURCE_DIR}/externals/*'
'${CMAKE_CURRENT_SOURCE_DIR}/third_party/*'
'*/deps/*' # For Travis
'*/usr/*' # For Travis
'*.pb.h'
)

# Find Sanitizers
Expand All @@ -67,7 +65,9 @@ endif()
if(opensse_ENABLE_WERROR)
check_cxx_compiler_flag("-Werror" COMPILER_OPT_WERROR_SUPPORTED)
if(COMPILER_OPT_WERROR_SUPPORTED)
add_compile_options(-Werror -Wno-error=unknown-pragmas)
add_compile_options(
-Werror -Wno-error=unknown-pragmas -Wno-error=unused-function
)
endif()
endif()

Expand All @@ -92,7 +92,10 @@ message(STATUS "GRPC plugin path: " ${GRPC_CPP_PLUGIN})
add_subdirectory(externals/spdlog)

# Disable memory locks because of race conditions.
set(ENABLE_MEMORY_LOCK OFF CACHE BOOL "Disable Memory Lock" FORCE)
set(ENABLE_MEMORY_LOCK
OFF
CACHE BOOL "Disable Memory Lock" FORCE
)
add_subdirectory(third_party/crypto/src)

add_subdirectory(third_party/db-parser/src)
Expand All @@ -110,13 +113,20 @@ foreach(runner ${runner_bins})
endforeach(runner ${runner_bins})

# Build googletest for the tests
set(BUILD_GMOCK OFF CACHE BOOL "Disable GMock" FORCE)
set(BUILD_GMOCK
OFF
CACHE BOOL "Disable GMock" FORCE
)
add_subdirectory(externals/googletest)
add_subdirectory(test)
add_coverage(check)
add_sanitizers(check)
add_sanitizers(sophos_debug)
add_sanitizers(diana_debug)
add_sanitizers(janus_debug)
# add_sanitizers(oceanus_debug)
add_sanitizers(tethys_core_debug)
add_sanitizers(tethys_debug)
add_sanitizers(pluto_debug)

coverage_evaluate()
46 changes: 46 additions & 0 deletions cmake/FindLibaio.cmake
@@ -0,0 +1,46 @@
# - Try to find Libaio
# Once done, this will define
#
# LIBAIO_FOUND - system has Libaio installed
# LIBAIO_INCLUDE_DIR - the Libaio include directories
# LIBAIO_LIBRARIES - link these to use Libaio
#
# The user may wish to set, in the CMake GUI or otherwise, this variable:
# LIBAIO_DIR - path to start searching for the module

find_path(LIBAIO_INCLUDE_DIR
libaio.h
HINTS
PATH_SUFFIXES
include
)

#IF(WIN32)
# SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
#ELSE(WIN32)
# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
#ENDIF(WIN32)


find_library(LIBAIO_LIBRARY
aio
HINTS
PATH_SUFFIXES
lib
)

mark_as_advanced(LIBAIO_INCLUDE_DIR LIBAIO_LIBRARY)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Libaio
DEFAULT_MSG
LIBAIO_INCLUDE_DIR
LIBAIO_LIBRARY)

if(LIBAIO_FOUND)
# add_definitions(-DHAS_LIBAIO)
set(LIBAIO_LIBRARIES "${LIBAIO_LIBRARY}") # Add any dependencies here
set(HAS_LIBAIO ON)
set(HAS_LIBAIO ${HAS_LIBAIO} PARENT_SCOPE)
endif()

16 changes: 16 additions & 0 deletions lib/CMakeLists.txt
@@ -1,16 +1,27 @@

# find_package(Libaio REQUIRED)
find_package(Libaio)

add_library(
schemes
SHARED
utils/logger.cpp
utils/rocksdb_wrapper.cpp
utils/utils.cpp
utils/db_generator.cpp
abstractio/scheduler.cpp
abstractio/linux_aio_scheduler.cpp
abstractio/thread_pool_aio_scheduler.cpp
sophos/sophos_common.cpp
sophos/sophos_client.cpp
sophos/sophos_server.cpp
diana/diana_common.cpp
janus/janus_client.cpp
janus/janus_server.cpp
oceanus/cuckoo.cpp
tethys/tethys_graph.cpp
tethys/tethys_allocator.cpp
pluto/rocksdb_store.cpp
)
# Add an alias
add_library(OpenSSE::schemes ALIAS schemes)
Expand All @@ -34,12 +45,16 @@ target_compile_features(
cxx_lambdas
)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/sse/configure.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/include/sse/configure.hpp)

target_include_directories(
schemes
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>
$<INSTALL_INTERFACE:include>
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/include/sse
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/sse/schemes
PUBLIC ${ROCKSDB_INCLUDE_DIRS}
)
Expand All @@ -50,6 +65,7 @@ target_link_libraries(
OpenSSE::dbparser
${ROCKSDB_LIBRARIES}
spdlog::spdlog
${LIBAIO_LIBRARIES}
)

set(PROTOS
Expand Down

0 comments on commit 4f66c77

Please sign in to comment.