feat add spdlog
Some checks failed
sm-rpc / build (Debug, aarch64-linux-gnu) (push) Failing after 29s
sm-rpc / build (Debug, arm-linux-gnueabihf) (push) Failing after 16s
sm-rpc / build (Debug, host.gcc) (push) Failing after 11s
sm-rpc / build (Debug, mipsel-linux-gnu) (push) Failing after 12s
sm-rpc / build (Release, aarch64-linux-gnu) (push) Failing after 11s
sm-rpc / build (Release, arm-linux-gnueabihf) (push) Failing after 11s
sm-rpc / build (Release, host.gcc) (push) Failing after 12s
sm-rpc / build (Release, mipsel-linux-gnu) (push) Failing after 16s
Some checks failed
sm-rpc / build (Debug, aarch64-linux-gnu) (push) Failing after 29s
sm-rpc / build (Debug, arm-linux-gnueabihf) (push) Failing after 16s
sm-rpc / build (Debug, host.gcc) (push) Failing after 11s
sm-rpc / build (Debug, mipsel-linux-gnu) (push) Failing after 12s
sm-rpc / build (Release, aarch64-linux-gnu) (push) Failing after 11s
sm-rpc / build (Release, arm-linux-gnueabihf) (push) Failing after 11s
sm-rpc / build (Release, host.gcc) (push) Failing after 12s
sm-rpc / build (Release, mipsel-linux-gnu) (push) Failing after 16s
This commit is contained in:
200
third_party/prometheus/CMakeLists.txt
vendored
Normal file
200
third_party/prometheus/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,200 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
|
||||
if(POLICY CMP0091)
|
||||
cmake_policy(SET CMP0091 NEW) # recognize CMAKE_MSVC_RUNTIME_LIBRARY
|
||||
endif()
|
||||
|
||||
project(prometheus-cpp
|
||||
VERSION 1.3.0
|
||||
DESCRIPTION "Prometheus Client Library for Modern C++"
|
||||
HOMEPAGE_URL "https://github.com/jupp0r/prometheus-cpp"
|
||||
)
|
||||
|
||||
include(GenerateExportHeader)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
|
||||
option(BUILD_SHARED_LIBS "Build libraries as shared ones" OFF)
|
||||
option(ENABLE_PULL "Build prometheus-cpp pull library" ON)
|
||||
option(ENABLE_PUSH "Build prometheus-cpp push library" ON)
|
||||
option(ENABLE_COMPRESSION "Enable gzip compression" ON)
|
||||
option(ENABLE_TESTING "Build tests" ON)
|
||||
option(USE_THIRDPARTY_LIBRARIES "Use 3rdParty submodules" ON)
|
||||
option(THIRDPARTY_CIVETWEB_WITH_SSL "Enable SSL support for embedded civetweb source code")
|
||||
option(OVERRIDE_CXX_STANDARD_FLAGS "Force building with -std=c++11 even if the CXXFLAGS are configured differently" ON)
|
||||
option(GENERATE_PKGCONFIG "Generate and install pkg-config files" ${UNIX})
|
||||
option(RUN_IWYU "Run include-what-you-use" OFF)
|
||||
|
||||
if(OVERRIDE_CXX_STANDARD_FLAGS)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_EXTENSIONS Off)
|
||||
endif()
|
||||
|
||||
# Set default directory permissions until
|
||||
# https://gitlab.kitware.com/cmake/cmake/issues/15163
|
||||
# is fixed
|
||||
set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
||||
OWNER_READ
|
||||
OWNER_WRITE
|
||||
OWNER_EXECUTE
|
||||
GROUP_READ
|
||||
GROUP_EXECUTE
|
||||
WORLD_READ
|
||||
WORLD_EXECUTE)
|
||||
|
||||
# Put DLLs and binaries into same directory
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||
|
||||
# Hide things by default for shared libraries
|
||||
if(BUILD_SHARED_LIBS)
|
||||
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN YES)
|
||||
endif()
|
||||
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
find_package(Threads)
|
||||
|
||||
# include-what-you-use
|
||||
|
||||
if(RUN_IWYU)
|
||||
find_program(IWYU_EXECUTABLE NAMES include-what-you-use iwyu)
|
||||
if(NOT IWYU_EXECUTABLE)
|
||||
message(FATAL_ERROR "Include-what-you-use not found")
|
||||
endif()
|
||||
|
||||
set(IWYU_ARGS
|
||||
"${IWYU_EXECUTABLE}"
|
||||
"-Xiwyu" "--no_fwd_decls"
|
||||
"-Xiwyu" "--mapping_file=${CMAKE_CURRENT_SOURCE_DIR}/cmake/googletest.imp"
|
||||
)
|
||||
|
||||
set(CMAKE_C_INCLUDE_WHAT_YOU_USE ${IWYU_ARGS})
|
||||
set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${IWYU_ARGS})
|
||||
endif()
|
||||
|
||||
# check for required libatomic
|
||||
|
||||
include(CheckAtomic)
|
||||
|
||||
if(ENABLE_TESTING)
|
||||
if(USE_THIRDPARTY_LIBRARIES)
|
||||
find_package(googlemock-3rdparty CONFIG REQUIRED)
|
||||
else()
|
||||
find_package(GTest 1.8.1 CONFIG REQUIRED)
|
||||
endif()
|
||||
find_package(benchmark CONFIG)
|
||||
enable_testing()
|
||||
endif()
|
||||
|
||||
# build flags for CI system
|
||||
|
||||
if(ENABLE_WARNINGS_AS_ERRORS AND NOT MSVC)
|
||||
add_compile_options(
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:AppleClang>>:-Werror>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:AppleClang>>:-Wall>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:AppleClang>>:-Wextra>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:AppleClang>>:-pedantic-errors>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:GNU>>:-Werror>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:GNU>>:-Wall>
|
||||
$<$<AND:$<STREQUAL:$<COMPILE_LANGUAGE>,CXX>,$<CXX_COMPILER_ID:GNU>>:-pedantic-errors>
|
||||
)
|
||||
endif()
|
||||
|
||||
# pkgconfig
|
||||
|
||||
if(GENERATE_PKGCONFIG)
|
||||
# see https://github.com/jupp0r/prometheus-cpp/issues/587
|
||||
if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
set(PROMETHEUS_CPP_PKGCONFIG_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
else()
|
||||
set(PROMETHEUS_CPP_PKGCONFIG_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
endif()
|
||||
|
||||
if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
|
||||
set(PROMETHEUS_CPP_PKGCONFIG_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
else()
|
||||
set(PROMETHEUS_CPP_PKGCONFIG_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# prometheus-cpp
|
||||
|
||||
add_subdirectory(core)
|
||||
add_subdirectory(util)
|
||||
|
||||
if(ENABLE_PULL)
|
||||
add_subdirectory(pull)
|
||||
endif()
|
||||
|
||||
if(ENABLE_PUSH)
|
||||
add_subdirectory(push)
|
||||
endif()
|
||||
|
||||
# install
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
install(
|
||||
EXPORT ${PROJECT_NAME}-targets
|
||||
NAMESPACE ${PROJECT_NAME}::
|
||||
FILE ${PROJECT_NAME}-targets.cmake
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||
)
|
||||
|
||||
write_basic_package_version_file(
|
||||
"${PROJECT_NAME}-config-version.cmake"
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in"
|
||||
${PROJECT_NAME}-config.cmake
|
||||
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
PATH_VARS CMAKE_INSTALL_INCLUDEDIR
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
||||
)
|
||||
|
||||
# packaging
|
||||
|
||||
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
|
||||
set(CPACK_PACKAGE_CONTACT "prometheus-cpp@@noreply.github.com")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "${PROJECT_DESCRIPTION}")
|
||||
set(CPACK_PACKAGE_RELOCATABLE OFF)
|
||||
set(CPACK_PACKAGE_VENDOR "The prometheus-cpp authors")
|
||||
|
||||
if(CMAKE_VERSION VERSION_LESS "3.12")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
|
||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
|
||||
|
||||
set(CPACK_RPM_PACKAGE_AUTOREQPROV ON)
|
||||
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
|
||||
|
||||
include(CPack)
|
||||
endif()
|
||||
|
||||
# summary
|
||||
|
||||
include(FeatureSummary)
|
||||
add_feature_info("Pull" "${ENABLE_PULL}" "support for pulling metrics")
|
||||
add_feature_info("Push" "${ENABLE_PUSH}" "support for pushing metrics to a push-gateway")
|
||||
add_feature_info("Compression" "${ENABLE_COMPRESSION}" "support for zlib compression of metrics")
|
||||
add_feature_info("pkg-config" "${GENERATE_PKGCONFIG}" "generate pkg-config files")
|
||||
add_feature_info("IYWU" "${RUN_IWYU}" "include-what-you-use")
|
||||
feature_summary(WHAT ALL)
|
Reference in New Issue
Block a user