oblogproxy/cmake/spdlog.cmake

39 lines
1.4 KiB
CMake

include(ExternalProject)
set(SPDLOG_SOURCES_DIR ${THIRD_PARTY_PATH}/spdlog)
set(SPDLOG_INSTALL_DIR ${THIRD_PARTY_PATH}/install/spdlog)
set(SPDLOG_LIBRARIES "${SPDLOG_INSTALL_DIR}/lib/libspdlog.a" CACHE FILEPATH "spdlog library." FORCE)
set(SPDLOG_INCLUDE_DIR "${SPDLOG_INSTALL_DIR}/include")
set(GIT_REPOSITORY https://github.com/gabime/spdlog.git)
set(GIT_TAG v1.11.0)
if (NOT EXISTS ${SPDLOG_INCLUDE_DIR})
execute_process(COMMAND mkdir -p ${SPDLOG_INCLUDE_DIR} COMMAND_ERROR_IS_FATAL ANY)
endif ()
ExternalProject_Add(
extern_spdlog
${EXTERNAL_PROJECT_LOG_ARGS}
PREFIX ${SPDLOG_SOURCES_DIR}
GIT_REPOSITORY ${GIT_REPOSITORY}
GIT_TAG ${GIT_TAG}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
COMMAND $(MAKE) --silent
INSTALL_COMMAND mkdir -p ${SPDLOG_INSTALL_DIR}/lib COMMAND cp -r include ${SPDLOG_INSTALL_DIR}/ COMMAND cp libspdlog.a ${SPDLOG_LIBRARIES}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${SPDLOG_INSTALL_DIR}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DSPDLOG_BUILD_EXAMPLE=OFF
-DSPDLOG_BUILD_EXAMPLE_HO=OFF
-DSPDLOG_BUILD_ALL=OFF
-DSPDLOG_PREVENT_CHILD_FD=ON
)
add_library(spdlog STATIC IMPORTED GLOBAL)
add_dependencies(spdlog extern_spdlog)
set_target_properties(spdlog PROPERTIES IMPORTED_LOCATION ${SPDLOG_LIBRARIES})
target_include_directories(spdlog INTERFACE ${SPDLOG_INCLUDE_DIR})