diff --git a/cmake/cmake.options b/cmake/cmake.options index 8eec896af1ec910936a800cb294ae26ae0fed199..44fa8c7e4b13bed3cf75a07c66c79054a0c253d0 100644 --- a/cmake/cmake.options +++ b/cmake/cmake.options @@ -44,6 +44,12 @@ option( OFF ) +option( + BUILD_WITH_UV + "If build with libuv" + OFF +) + option( BUILD_WITH_CRAFT "If build with canonical-raft" diff --git a/cmake/craft_CMakeLists.txt.in b/cmake/craft_CMakeLists.txt.in index a77fa679e015db7c7b78b3156ddb71358e5ca762..3a951c1c99abfb04e9bc7bb13aef55e7fb79a395 100644 --- a/cmake/craft_CMakeLists.txt.in +++ b/cmake/craft_CMakeLists.txt.in @@ -4,9 +4,10 @@ ExternalProject_Add(craft GIT_REPOSITORY https://github.com/canonical/raft.git GIT_TAG v0.11.2 SOURCE_DIR "${CMAKE_CONTRIB_DIR}/craft" - BINARY_DIR "${CMAKE_CONTRIB_DIR}/craft/.libs" + BINARY_DIR "${CMAKE_CONTRIB_DIR}/craft" #BUILD_IN_SOURCE TRUE - CONFIGURE_COMMAND "autoreconf -i && ./configure" + # https://answers.ros.org/question/333125/how-to-include-external-automakeautoconf-projects-into-ament_cmake/ + CONFIGURE_COMMAND COMMAND autoreconf -i COMMAND ./configure --enable-example BUILD_COMMAND "$(MAKE)" INSTALL_COMMAND "" TEST_COMMAND "" diff --git a/cmake/libuv_CMakeLists.txt.in b/cmake/libuv_CMakeLists.txt.in new file mode 100644 index 0000000000000000000000000000000000000000..ed406e089e0f641f0a87c1a80fd5a501acbaf490 --- /dev/null +++ b/cmake/libuv_CMakeLists.txt.in @@ -0,0 +1,12 @@ + +# libuv +ExternalProject_Add(libuv + GIT_REPOSITORY https://github.com/libuv/libuv.git + GIT_TAG v1.42.0 + SOURCE_DIR "${CMAKE_CONTRIB_DIR}/libuv" + BINARY_DIR "" + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "" + TEST_COMMAND "" + ) \ No newline at end of file diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 0aadaccfa15de6cf42e69d49486530523a321f55..041727b0f723996a37d321dc12bffaf5d159ce2e 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -37,12 +37,18 @@ endif(${BUILD_WITH_ROCKSDB}) # canonical-raft if(${BUILD_WITH_CRAFT}) cat("${CMAKE_SUPPORT_DIR}/craft_CMakeLists.txt.in" ${CONTRIB_TMP_FILE}) + option(BUILD_WITH_UV "" ON) endif(${BUILD_WITH_CRAFT}) +#libuv +if(${BUILD_WITH_UV}) + cat("${CMAKE_SUPPORT_DIR}/libuv_CMakeLists.txt.in" ${CONTRIB_TMP_FILE}) +endif(${BUILD_WITH_UV}) + # bdb if(${BUILD_WITH_BDB}) cat("${CMAKE_SUPPORT_DIR}/bdb_CMakeLists.txt.in" ${CONTRIB_TMP_FILE}) -endif(${BUILD_WITH_DBD}) +endif(${BUILD_WITH_BDB}) # sqlite if(${BUILD_WITH_SQLITE}) @@ -154,13 +160,18 @@ if(${BUILD_WITH_CRAFT}) add_library(craft STATIC IMPORTED GLOBAL) set_target_properties(craft PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/craft/.libs/libraft.a" - INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/craft" - ) - target_link_libraries(craft - INTERFACE pthread + INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/craft/include" ) + # target_link_libraries(craft + # INTERFACE pthread + # ) endif(${BUILD_WITH_CRAFT}) +# LIBUV +if(${BUILD_WITH_UV}) + add_subdirectory(libuv) +endif(${BUILD_WITH_UV}) + # BDB if(${BUILD_WITH_BDB}) add_library(bdb STATIC IMPORTED GLOBAL) diff --git a/contrib/test/CMakeLists.txt b/contrib/test/CMakeLists.txt index 0a333f604c1ac20edb166e386fcbf42b55572661..330fe8f70f8d9bfcd9e09e77611ae67794cc86a0 100644 --- a/contrib/test/CMakeLists.txt +++ b/contrib/test/CMakeLists.txt @@ -15,4 +15,8 @@ if(${BUILD_WITH_SQLITE}) add_subdirectory(sqlite) endif(${BUILD_WITH_SQLITE}) +if(${BUILD_WITH_CRAFT}) + add_subdirectory(craft) +endif(${BUILD_WITH_CRAFT}) + add_subdirectory(tdev) diff --git a/contrib/test/craft/CMakeLists.txt b/contrib/test/craft/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e0f6ae64bd3e9c998db15c1006cebf1b15702f5b --- /dev/null +++ b/contrib/test/craft/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(simulate_vnode "simulate_vnode.c") +target_link_libraries(simulate_vnode PUBLIC craft lz4 uv_a) \ No newline at end of file