diff --git a/CMakeLists.txt b/CMakeLists.txt index d87de2452..03f703c86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,18 +17,6 @@ include("cmake/Hunter/init.cmake") cmake_policy(SET CMP0048 NEW) project(libp2p VERSION 0.0.1 LANGUAGES C CXX) -include(cmake/print.cmake) -print("C flags: ${CMAKE_C_FLAGS}") -print("CXX flags: ${CMAKE_CXX_FLAGS}") -print("Using CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") - -include(CheckCXXCompilerFlag) -include(cmake/install.cmake) -include(cmake/libp2p_add_library.cmake) -include(cmake/dependencies.cmake) -include(cmake/functions.cmake) -include(cmake/san.cmake) - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) option(TESTING "Build tests" ON) @@ -44,6 +32,18 @@ option(TSAN "Enable thread sanitizer" OFF) option(UBSAN "Enable UB sanitizer" OFF) option(EXPOSE_MOCKS "Make mocks header files visible for child projects" OFF) +include(cmake/print.cmake) +print("C flags: ${CMAKE_C_FLAGS}") +print("CXX flags: ${CMAKE_CXX_FLAGS}") +print("Using CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") + +include(CheckCXXCompilerFlag) +include(cmake/install.cmake) +include(cmake/libp2p_add_library.cmake) +include(cmake/dependencies.cmake) +include(cmake/functions.cmake) +include(cmake/san.cmake) + ## setup compilation flags if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "^(AppleClang|Clang|GNU)$") diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index e9eb5b62d..7ccec4ec6 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -1,7 +1,14 @@ -# https://docs.hunter.sh/en/latest/packages/pkg/GTest.html -hunter_add_package(GTest) -find_package(GTest CONFIG REQUIRED) -find_package(GMock CONFIG REQUIRED) +# +# Copyright Soramitsu Co., Ltd. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# + +if (TESTING) + # https://docs.hunter.sh/en/latest/packages/pkg/GTest.html + hunter_add_package(GTest) + find_package(GTest CONFIG REQUIRED) + find_package(GMock CONFIG REQUIRED) +endif() # https://docs.hunter.sh/en/latest/packages/pkg/Boost.html hunter_add_package(Boost COMPONENTS random filesystem program_options) diff --git a/cmake/functions.cmake b/cmake/functions.cmake index 778eb16ff..f0c9a304e 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -45,8 +45,13 @@ function(add_flag flag) endfunction() function(compile_proto_to_cpp PROTO_LIBRARY_NAME PB_H PB_CC PROTO) - get_target_property(Protobuf_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) - get_target_property(Protobuf_PROTOC_EXECUTABLE protobuf::protoc IMPORTED_LOCATION_RELEASE) + if (NOT Protobuf_INCLUDE_DIR) + get_target_property(Protobuf_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) + endif() + if (NOT Protobuf_PROTOC_EXECUTABLE) + get_target_property(Protobuf_PROTOC_EXECUTABLE protobuf::protoc IMPORTED_LOCATION_RELEASE) + set(PROTOBUF_DEPENDS protobuf::protoc) + endif() if (NOT Protobuf_PROTOC_EXECUTABLE) message(FATAL_ERROR "Protobuf_PROTOC_EXECUTABLE is empty") @@ -78,7 +83,7 @@ function(compile_proto_to_cpp PROTO_LIBRARY_NAME PB_H PB_CC PROTO) COMMAND ${GEN_COMMAND} ARGS -I${PROJECT_SOURCE_DIR}/src -I${GEN_ARGS} --cpp_out=${SCHEMA_OUT_DIR} ${PROTO_ABS} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - DEPENDS protobuf::protoc + DEPENDS ${PROTOBUF_DEPENDS} VERBATIM ) diff --git a/src/common/literals.cpp b/src/common/literals.cpp index e1bb4cac6..3ddad5029 100644 --- a/src/common/literals.cpp +++ b/src/common/literals.cpp @@ -11,16 +11,18 @@ #include #include +#include + namespace libp2p::common { libp2p::common::Hash256 operator""_hash256(const char *c, size_t s) { libp2p::common::Hash256 hash{}; - std::copy_n(c, std::min(s, 32ul), hash.rbegin()); + std::copy_n(c, std::min(s, static_cast(32u)), hash.rbegin()); return hash; } libp2p::common::Hash512 operator""_hash512(const char *c, size_t s) { libp2p::common::Hash512 hash{}; - std::copy_n(c, std::min(s, 64ul), hash.rbegin()); + std::copy_n(c, std::min(s, static_cast(64u)), hash.rbegin()); return hash; } diff --git a/src/muxer/yamux/yamux_frame.cpp b/src/muxer/yamux/yamux_frame.cpp index be7f63066..897d9c012 100644 --- a/src/muxer/yamux/yamux_frame.cpp +++ b/src/muxer/yamux/yamux_frame.cpp @@ -100,7 +100,7 @@ namespace libp2p::connection { } boost::optional parseFrame(gsl::span frame_bytes) { - if (frame_bytes.size() < YamuxFrame::kHeaderLength) { + if (frame_bytes.size() < static_cast(YamuxFrame::kHeaderLength)) { return {}; }