From 53f6462a0133c693edfc2f959769978a8faf2fba Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Tue, 15 Nov 2016 17:43:16 -0500 Subject: [PATCH] cmake: produce civetweb.h, again The recent change to do this logic with file copy (and in src/rgw) resolved the build problem, but now updates to the civetweb submodule were not reflected in the build. Move the copy into a custom target which will always source the current submodule version at build time. Avoid using the BYPRODUCTS option, as it is not supported in many older cmake versions (e.g., Centos 7). Signed-off-by: Matt Benjamin --- src/rgw/CMakeLists.txt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt index 9bd186117962e..768331ccb7418 100644 --- a/src/rgw/CMakeLists.txt +++ b/src/rgw/CMakeLists.txt @@ -17,6 +17,13 @@ install(TARGETS DESTINATION bin) endif(WITH_TESTS) +add_custom_target(civetweb_h + COMMAND ${CMAKE_COMMAND} -E make_directory + "${CMAKE_BINARY_DIR}/src/include/civetweb" + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h" + "${CMAKE_BINARY_DIR}/src/include/civetweb" + COMMENT "keep civetweb.h up-to-date") set(rgw_a_srcs rgw_acl.cc @@ -96,16 +103,12 @@ set(rgw_a_srcs add_library(rgw_a STATIC ${rgw_a_srcs}) +add_dependencies(rgw_a civetweb_h) + target_include_directories(rgw_a PUBLIC "../Beast/include" ${FCGI_INCLUDE_DIR}) -# we want to include civetweb.h as "civetweb/civetweb.h". Make it so. -file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/src/include/civetweb") -file(COPY - "${CMAKE_SOURCE_DIR}/src/civetweb/include/civetweb.h" - DESTINATION "${CMAKE_BINARY_DIR}/src/include/civetweb") - target_link_libraries(rgw_a librados cls_lock_client cls_rgw_client cls_refcount_client cls_log_client cls_statelog_client cls_timeindex_client cls_version_client cls_replica_log_client cls_user_client common common_utf8 global