mirror of
https://github.com/ceph/ceph
synced 2025-01-13 06:22:51 +00:00
cfa20c33a7
git warns us when the repo is in 'detached HEAD' state, like: You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. ... Turn off this advice by setting config variable advice.detachedHead to false Signed-off-by: Kefu Chai <kchai@redhat.com>
50 lines
1.7 KiB
CMake
50 lines
1.7 KiB
CMake
function(build_pmem)
|
|
include(ExternalProject)
|
|
set(PMDK_SRC "${CMAKE_BINARY_DIR}/src/pmdk/src")
|
|
set(PMDK_INCLUDE "${PMDK_SRC}/include")
|
|
|
|
# Use debug PMDK libs in debug lib/rbd builds
|
|
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
|
set(PMDK_LIB_DIR "debug")
|
|
else()
|
|
set(PMDK_LIB_DIR "nondebug")
|
|
endif()
|
|
set(PMDK_LIB "${PMDK_SRC}/${PMDK_LIB_DIR}")
|
|
|
|
include(FindMake)
|
|
find_make("MAKE_EXECUTABLE" "make_cmd")
|
|
|
|
ExternalProject_Add(pmdk_ext
|
|
GIT_REPOSITORY "https://github.com/ceph/pmdk.git"
|
|
GIT_TAG "1.7"
|
|
GIT_SHALLOW TRUE
|
|
GIT_CONFIG advice.detachedHead=false
|
|
SOURCE_DIR ${CMAKE_BINARY_DIR}/src/pmdk
|
|
CONFIGURE_COMMAND ""
|
|
# Explicitly built w/o NDCTL, otherwise if ndtcl is present on the
|
|
# build system tests statically linking to librbd (which uses
|
|
# libpmemobj) will not link (because we don't build the ndctl
|
|
# static library here).
|
|
BUILD_COMMAND ${make_cmd} CC=${CMAKE_C_COMPILER} NDCTL_ENABLE=n
|
|
BUILD_IN_SOURCE 1
|
|
BUILD_BYPRODUCTS "${PMDK_LIB}/libpmem.a" "${PMDK_LIB}/libpmemobj.a"
|
|
INSTALL_COMMAND "")
|
|
|
|
# libpmem
|
|
add_library(pmem::pmem STATIC IMPORTED)
|
|
add_dependencies(pmem::pmem pmdk_ext)
|
|
file(MAKE_DIRECTORY ${PMDK_INCLUDE})
|
|
set_target_properties(pmem::pmem PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES ${PMDK_INCLUDE}
|
|
IMPORTED_LOCATION "${PMDK_LIB}/libpmem.a"
|
|
INTERFACE_LINK_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
|
|
|
|
# libpmemobj
|
|
add_library(pmem::pmemobj STATIC IMPORTED)
|
|
add_dependencies(pmem::pmemobj pmdk_ext)
|
|
set_target_properties(pmem::pmemobj PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES ${PMDK_INCLUDE}
|
|
IMPORTED_LOCATION "${PMDK_LIB}/libpmemobj.a"
|
|
INTERFACE_LINK_LIBRARIES "pmem::pmem;${CMAKE_THREAD_LIBS_INIT}")
|
|
endfunction()
|